Precompiled 2026-06-26-903b8b9
Pre-release
Pre-release
·
6 commits
to main
since this release
Defer per-cell interaction listeners in the data table (#53457) Each `DataCell` unconditionally mounted ~20 event listeners (8 `useHotkeys` pairs, a `window` paste listener, a right-click context-menu trigger, an editor click-away) plus the editor popper. Because the windowed cell count is rows × columns, scrolling a wide table churned thousands of listener registrations on every row mount/unmount, pinning the CPU (hiding columns helped precisely because it cut the cell count). These only do anything while a cell is engaged, so they're now deferred: the keyboard shortcuts + paste handler mount only while the cell is **focused** (so only the single focused cell can respond — which also fixes arrow-key navigation + Enter opening two editors at once), the right-click context menu is wired via a React `onContextMenu` handler (no per-cell native listener, and works on the first right-click without a prior hover), and the editor popper + click-away mount only while editing. Idle cells render as just a button + value, so cost no longer scales with column count. GitOrigin-RevId: a3179f6ca2f8ef98d8b6173c1681fd8de25e42c9