fix: refactor radio group to better manage disabled state and interactions #6601
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.
Pull Request
📖 Description
This PR proposes a slight refactor of radio group in order to support the disabling of the radiogroup without modifying the state of individual radio children. This PR does a few things:
Removes click handling behavior for the radio itself and manages via the group. Per the APG, radios which are not selected (primarily on page-load scenarios) can be selected via "Space" so that behavior remains in tact.
Removes behavior modifying each disabled items
disabled
state. For the sake of ensuring we don't break with future changes to the disabledChanged method, I've left this enumerated as protected for now.Assigns a tabindex of -1 to prevent focus from being brought to the element and its children.
To ensure that focus does not pass to the radiogroup when clicked, a mousedown event has been added to prevent focus when disabled.
🎫 Issues
fixes #6567
👩💻 Reviewer Notes
📑 Test Plan
Tests have been added for most all pertinent scenarios
✅ Checklist
General
$ yarn change
Component-specific
⏭ Next Steps