fix(Presence): handle escape characters in animation names correctly #3466
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.
Fixes #2763.
Using CSS.escape.
As I checked, this API is supported in all browsers even in the 2022 browserslist targets of this project.
Further explanation of the bug:
getComputedStyle()
returns aCSSStyleDeclaration
, which is serialized according to the spec.Meanwhile, the values from
AnimationEvent
are not required to be serialized (which makes sense, as it's intended for JavaScript usage, where escaping for CSS syntax is unnecessary). Therefore theanimationName
is returned as-is in the event handler, causing the mismatch.Preview of the bug fix based on the original reproduction: https://stackblitz.com/edit/vitejs-vite-dm8pji1o
I'd like to add a test for this case if it's required—but I don't see any similar tests in Cypress or Storybook, so I don't know what kind of test it should be.