-
Notifications
You must be signed in to change notification settings - Fork 4.4k
refactor: convert createColorHOC
to functional component.
#70408
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
base: trunk
Are you sure you want to change the base?
refactor: convert createColorHOC
to functional component.
#70408
Conversation
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.
To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
👋 Thanks for your first Pull Request and for helping build the future of Gutenberg and WordPress, @USERSATOSHI! In case you missed it, we'd love to have you join us in our Slack community. If you want to learn more about WordPress development in general, check out the Core Handbook full of helpful information. |
What?
See #22890
This PR refactors
createColorHOC
from class based component syntax to newer functional component syntax.Why?
Class based components are no longer the recommended approach & instead functional syntax with hooks is more recommended.
The code becomes more readable & easier to maintain.
How?
useState
to manage internal derived color state.getDerivedStateFromProps
with auseEffect
that recalculates color state when attributes or colors change.useMemo
to match the dynamic method generation in the original class.colorUtils.getMostReadableColor
withuseCallback
to preserve referential integrity.Testing Instructions
Featured Post Image
block which uses this internally.Screenshots or screencast