[react-interactions] Refactor TabFocusController #16768
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.
After speaking to @gaearon today, he mentioned that we can extract the internal interface of
TabFocusController
so that it's exposed as an import rather than as an internal interface on the functional component (thus removing the need to useuseImperativeMethods
hook). This should improve the performance, memory and overall explicitness quite a bit – plus making more sense as a general way of handling tab focus across other scopes.I made the module
ReactTabFocus
as this is more like a bucket of methods + component needed for handling browser tab focus.