Fix editor crash caused by missing type conversion in EditorStyles component#49882
Merged
talldan merged 2 commits intoApr 19, 2023
Merged
Conversation
|
Size Change: +12 B (0%) Total Size: 1.37 MB
ℹ️ View Unchanged
|
scruffian
approved these changes
Apr 18, 2023
scruffian
left a comment
Contributor
There was a problem hiding this comment.
Thanks for looking at this. The fix looks good to me.
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.
What?
It looks like a recent change to the
EditorStylesin the PR from #49239 can cause an editor crash. That code attempts to callfilteron thestylesvariable, but that variable can sometimes be an object instead of an array (though I don't know why that can happen).We can see this was previously handled by the
transformStylesfunction where it converts astylesobject to an array usingObject.values:https://github.com/WordPress/gutenberg/blob/trunk/packages/block-editor/src/utils/transform-styles/index.js#L21
But the new filtering code added in #49239 doesn't handle object types, only arrays, and that causes the error
styles.filter is not a function.How?
Ensure the value is converted to an array before attempting to filter.
I've also updated the doc block for
transformStylesto match what the function does.Testing Instructions
I'm not sure how to reproduce the issue, I've just observed the problem on a private site and diagnosed the issue.