Fix handling of style scoping and class:
with spread scopes
#3792
+59
−24
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.
Fixed #3790 (which also fixes #2721 in a better way than I mentioned on that ticket).
In DOM mode for elements that need the scoping class and have spread attributes, this adds
toggle_class(node, "svelte-xyz", true);
calls to the hydrate and update blocks, rather than trying to add or update aclass=
attribute in the element's AST. This prevents the scoping class and the spread class from clobbering one another.In SSR mode for elements that need the scoping class and/or have
class:
directives and have spread attributes, this combines the scoping class and/or theclass:
directives into a string of classes that need to be added to the element after all of the spreading. This string is passed as a new second argument tospread()
, which uses it to update or set theclass
attribute it's been given. This prevents multipleclass=
attributes from being emitted by the code.