🤖 fix: use functional updates in ReviewControls to avoid stale closures #1894
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.
Summary
Fix a regression where changing the diff base in the Review tab doesn't update the UI. The handlers were capturing stale
filtersprops in closures.Background
When calling
setFilters({ ...filters, diffBase: value }), thefiltersobject is captured at render time. While React Compiler should handle this, using functional updates is the idiomatic and safer approach that guarantees correct behavior.Implementation
onFiltersChangetype to accept functional updates:(filters: ReviewFilters | ((prev: ReviewFilters) => ReviewFilters)) => voiddata-testidprops for testingValidation
updatePersistedStateTEST_INTEGRATION=1 bun x jest tests/ui/reviewBaseSelector.integration.test.tsGenerated with
mux• Model:anthropic:claude-opus-4-5• Thinking:high• Cost:$13.69