Components: refactor useFlex
to pass exhaustive-deps
#45528
Merged
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?
Updates the
useFlex
hook to pass theexhaustive-deps
eslint rule.Why?
Part of the effort in #41166 to apply
exhuastive-deps
to the Components packageHow?
Removing
isReverse
from the dependency array, and then because it isn't used anywhere else in the hook, removing the variable entirely.When this dependency was added,
isReverse
was used in several places for the creation of theclasses
object, but the hook has been refactored since then, removing any use of theisReverse
variable in the hook.Based on that, I think this dependency and variable just got left in - removing them doesn't cause any unexpected changes that I can see in Storybook.
cc @sarayourfriend: do you have any thoughts on drawbacks to this approach? If we do, in fact, still need to watch this variable and update the
useMemo
value when it changes, we'll need to either disable theexhuastive-deps
check, or find another approach. Curious what you think 🙂Testing Instructions
npx eslint --rule 'react-hooks/exhaustive-deps: warn' packages/components/src/flex
navigation
unit tests still passFlex
component stories and/or docs still work as expected