Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(vue): components have correct name in Vue Dev Tools #27180

Merged
merged 10 commits into from
Apr 12, 2023
Merged

Conversation

liamdebeasi
Copy link
Contributor

@liamdebeasi liamdebeasi commented Apr 12, 2023

What is the current behavior?

Issue URL: resolves #25199

Vue components show up as "Anonymous Component" in Vue Dev Tools. This is caused by our use of displayName instead of name. This required a fix in the Vue Output Target package. See ionic-team/stencil-ds-output-targets#257 for more info.

What is the new behavior?

  • Updates the Vue Output Target dependency
  • Functional components created manually in Ionic Vue now set name instead of displayName. Note: Non-functional components were never impacted by this bug.

Does this introduce a breaking change?

  • Yes
  • No

Other information

Dev build: 7.0.2-dev.11681308435.141a05de

@stackblitz
Copy link

stackblitz bot commented Apr 12, 2023

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@liamdebeasi liamdebeasi changed the title fix(vue): manual components have name fix(vue): app, nav, and back button have correct name in Vue Dev Tools Apr 12, 2023
@github-actions github-actions bot added the package: core @ionic/core package label Apr 12, 2023
@liamdebeasi liamdebeasi changed the title fix(vue): app, nav, and back button have correct name in Vue Dev Tools fix(vue): components have correct name in Vue Dev Tools Apr 12, 2023
@liamdebeasi liamdebeasi marked this pull request as ready for review April 12, 2023 14:16
@liamdebeasi liamdebeasi requested a review from a team as a code owner April 12, 2023 14:16
@@ -16,6 +16,8 @@ export const IonApp = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
};
});

IonApp.name = "IonApp";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed that other components set the name as part of the initial defineComponent call: https://github.com/ionic-team/ionic-framework/blob/main/packages/vue/src/components/IonPage.ts#L4 Is it possible to do that here, or is there a blocking difference in how the components are set up? I'm just wary of this line being missed if we have to copy-paste this setup in the future. (Ditto for IonBackButton and IonNav)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That only applies to non-functional components which were never impacted by this bug. App, BackButton, and Nav are functional components so they don't have access to that "name" field in the object like the other components do.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gotcha, thanks 👍

@liamdebeasi liamdebeasi added this pull request to the merge queue Apr 12, 2023
Merged via the queue into main with commit 07941a5 Apr 12, 2023
44 checks passed
@liamdebeasi liamdebeasi deleted the FW-1403 branch April 12, 2023 17:10
liamdebeasi added a commit that referenced this pull request Apr 17, 2023
<!-- Please refer to our contributing documentation for any questions on
submitting a pull request, or let us know here if you need any help:
https://ionicframework.com/docs/building/contributing -->

<!-- Some docs updates need to be made in the `ionic-docs` repo, in a
separate PR. See
https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#modifying-documentation
for details. -->

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->


<!-- Issues are required for both bug fixes and features. -->
Issue URL: resolves #25199

Vue components show up as "Anonymous Component" in Vue Dev Tools. This
is caused by our use of `displayName` instead of `name`. This required a
fix in the Vue Output Target package. See
ionic-team/stencil-ds-output-targets#257 for
more info.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Updates the Vue Output Target dependency
- Functional components created manually in Ionic Vue now set `name`
instead of `displayName`. Note: Non-functional components were never
impacted by this bug.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->


Dev build: `7.0.2-dev.11681308435.141a05de`
liamdebeasi added a commit that referenced this pull request Apr 19, 2023
<!-- Please refer to our contributing documentation for any questions on
submitting a pull request, or let us know here if you need any help:
https://ionicframework.com/docs/building/contributing -->

<!-- Some docs updates need to be made in the `ionic-docs` repo, in a
separate PR. See
https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#modifying-documentation
for details. -->

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->


<!-- Issues are required for both bug fixes and features. -->
Issue URL: resolves #25199

Vue components show up as "Anonymous Component" in Vue Dev Tools. This
is caused by our use of `displayName` instead of `name`. This required a
fix in the Vue Output Target package. See
ionic-team/stencil-ds-output-targets#257 for
more info.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Updates the Vue Output Target dependency
- Functional components created manually in Ionic Vue now set `name`
instead of `displayName`. Note: Non-functional components were never
impacted by this bug.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->


Dev build: `7.0.2-dev.11681308435.141a05de`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package: core @ionic/core package package: vue @ionic/vue package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

bug: Ionic Vue components show as Anonymous Component in Vue 3 Dev tools
2 participants