Repository navigation
perf(mosaic): re-render only the table rows whose selection changes - #10624
alexcarpenter wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
🦋 Changeset detectedLatest commit: 401320e The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
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 |
|
Closing: this was built on the store from #10621, which was replaced with context + memo. A Table version needs selection split out of the context |


Description
Selecting a
Tablerow re-rendered every row, because each row read the selection and expanded state from the table context, which changed on every click. Rows now read that state from a store throughuseStore(added in #10621), and the context value stays stable, so only the rows whose state changed re-render.Time from a row checkbox click to the next frame, in Chromium at 4× CPU (median):
The feature tables (organization members, requests and invitations, API keys) show 10 rows per page, so they already missed a frame on every selection.
Event handlers that only need the current selection read it with
store.get()when the event fires, so they don't subscribe.Stacked on #10621.
Checklist
pnpm testruns as expected (@clerk/mosaic).pnpm buildruns as expected.Type of change