refactor(Checkbox): set indeterminate via ref callback instead of layout effect#8122
Draft
adierkens wants to merge 1 commit into
Draft
refactor(Checkbox): set indeterminate via ref callback instead of layout effect#8122adierkens wants to merge 1 commit into
adierkens wants to merge 1 commit into
Conversation
…out effect Replace the useLayoutEffect that imperatively set the DOM `.indeterminate` property (and the useEffect that set `aria-checked`) with a single ref callback merged into the forwarded ref via useMergedRefs. The callback runs synchronously during commit, preserving the previous timing and behavior while removing two effects per Checkbox instance. Internal-only refactor; no public API change. Closes #7764 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
🦋 Changeset detectedLatest commit: beaceba The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
|
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.
Closes #7764
Replaces the
useLayoutEffectthat imperatively set the DOM.indeterminateproperty (and theuseEffectthat setaria-checked) with a single ref callback merged into the forwarded ref viauseMergedRefs. The callback runs synchronously during commit, so the timing and behavior are preserved while removing two effects perCheckboxinstance.This is an internal-only refactor with no public API change and is behavior-preserving.
Changelog
New
Changed
Checkboxnow sets the native.indeterminateDOM property (and the matchingaria-checkedvalue) from a ref callback instead of auseLayoutEffect+useEffect, eliminating two effects per instance.useProvidedRefOrCreateto an internaluseRefmerged with the forwarded ref viauseMergedRefs.Removed
useLayoutEffect(indeterminate) anduseEffect(aria-checked) inCheckbox.Rollout strategy
Testing & Reviewing
Behavior is unchanged.
aria-checkedstill resolves totrue/false/mixedand.indeterminateis applied with the same commit timing as before. Verified locally:aria-checkedtrue/false/mixed assertions).useMergedRefs: 31/31 pass.tsc --noEmit: no new errors.Merge checklist