refactor(data-table): CU-86akejaw4 prep for removing the legacy Table - #2113
Open
romanivan-flamingo wants to merge 1 commit into
Open
romanivan-flamingo wants to merge 1 commit into
romanivan-flamingo wants to merge 1 commit into
Conversation
Step 1 of CU-86ak94xr2 (delete `ui/table` once multi-platform-hub is on DataTable). Additive only: no consumer sees a change. - `TableFilters` moves to `data-table/types.ts` and is exported from `data-table` (so from `components/ui`); the legacy `table/types.ts` re-exports it, `filter-modal`, `list-page-layout` and the FilterModal story import the new location. - `QueryReportTable` renders `DataTableEmpty` instead of `TableEmptyState`, the last runtime import of the legacy module. Same two-vocabulary rule as `DataTable.Body`: a caller-supplied `emptyMessage` is the title alone. - The opt-in `animateRowReorder` FLIP moves from the legacy table into DataTable: `use-table-motion` lives in `data-table/`, `DataTable.Body` takes the prop and wraps the real rows (not the pad rows) in `LayoutGroup`, `DataTable.Row` renders its card as the lazily-loaded `motion.div` with `layout="position"`. Off by default, framer-motion is fetched only when set, whole-card link rows stay plain. The hub's performance dashboard needs it to leave the legacy table. - `ListPageLayout` and `PageLayout` stories show a `DataTable` as their page body; a `WithRowReorderAnimation` story exercises the new prop. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
romanivan-flamingo
enabled auto-merge (squash)
September 8, 2026 13:13
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.
Step 1 of CU-86ak94xr2 (remove the legacy
ui/tablefrom the core lib once multi-platform-hub is onDataTable). Subtask: CU-86akejaw4.Additive only: no consumer sees a change. It clears every in-lib import of the legacy module except the two re-export blocks in
ui/index.tsand the two stories that go with the deletion PR.What changes
TableFiltersmoves todata-table/types.tsand is exported fromdata-table(so fromcomponents/ui). The legacytable/types.tsre-exports it;filter-modal.tsx,layout/list-page-layout.tsxandFilterModal.storiesimport the new location.QueryReportTablerendersDataTableEmptyinstead ofTableEmptyState, the last runtime import of the legacy module. Same two-vocabulary rule asDataTable.Body: a caller-suppliedemptyMessageis the title alone, no default hint under it. Only consumer today: the monitoring query page in openframe-frontend.animateRowReorderported toDataTable.use-table-motion.ts(lazyimport('framer-motion')) moves intodata-table/;DataTable.Bodytakes the opt-in prop and wraps the real rows (not the pad rows) inLayoutGroup;DataTable.Rowrenders its card asmotion.divwithlayout="position". Off by default, framer-motion is fetched only when set,React.memoon rows is untouched (the new props areundefinedeverywhere else), whole-card link rows stay plain. The JSDoc spells out thegetRowIdrequirement. The hub's performance dashboard is the only user of the legacy prop and needs this to migrate.ListPageLayoutandPageLayoutshow aDataTableas their page body (ListPageLayoutmapsTableFilterstoColumnFiltersStateso the mobile filter modal and the header funnels edit one state); newDataTable/WithRowReorderAnimationstory.Verification
npm run lint,npm run type-check, Prettier, type-aware ESLint over the touched source files,npm run test:run(100 files, 5175 tests),npm run build: green.MotionDOMComponentinsideLayoutGroup).src/storiesis excluded fromtsconfig.json; an ad-hoc tsc over it shows no errors in the touched stories (the 8 pre-existingfilterFnerrors inDataTable.storiesare untouched).Follow-ups (separate subtasks)
ui/table, its two re-export blocks,Table.stories,TableColumnFilterDropdown.storiesand the legacy test: CU-86akejb15.🤖 Generated with Claude Code