Summary
Consolidating the recurring requests for a properly controlled selection model. Today selection is effectively uncontrolled: syncing it from outside (via setSelection/selectMulti + onSelect) is fragile and prone to feedback loops, and onSelect fires on programmatic changes too.
Desired outcome
- A controlled selection prop (e.g. a
selected/selection map) that is the single source of truth.
onSelect reports user-driven changes only, not changes the consumer caused.
- No infinite loops when mirroring selection into external state.
Rolls up
Closing the above against this issue once an API lands.
Summary
Consolidating the recurring requests for a properly controlled selection model. Today selection is effectively uncontrolled: syncing it from outside (via
setSelection/selectMulti+onSelect) is fragile and prone to feedback loops, andonSelectfires on programmatic changes too.Desired outcome
selected/selectionmap) that is the single source of truth.onSelectreports user-driven changes only, not changes the consumer caused.Rolls up
Closing the above against this issue once an API lands.