Keep artifact names out of slot selection - #94
Merged
Conversation
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
EvmArtifactslot selection fixed to its named slotsartifactNameslot prop_@1001-digital/components.evmWhy
On a Vue
<slot>,nameselects which slot to render. Binding bothname="static"and:name="resolvedName"therefore made the artwork name replace the intended slot selector instead of becoming a slot prop. An artwork named_then selected Vue’s internal$slots._marker, which is not a function, and crashed SSR withTypeError: slot is not a function.The old
nameslot prop could never be delivered correctly because Vue consumed it as the selector. This change gives that value an unambiguous public API asartifactName, so custom renderers receive the artwork name while the component always rendersanimation,static, orfallback. The corrected slot API is released as a minor change rather than preserving the broken binding through a compiler-specific workaround.Testing
corepack pnpm --filter @1001-digital/components.evm testcorepack pnpm exec prettier --check packages/components.evm/src/components/EvmArtifact.vue packages/components.evm/test/artifact.test.ts .changeset/calm-artifacts-render.mdFull workspace typechecking still reaches unrelated existing errors in
packages/layers.base(allowImportingTsExtensionsand a missing@vueuse/coredeclaration).