You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 222755e
Browse filesBrowse the repository at this point in the historyBrowse files
refactor(plugin-grid): move ObjectGrid's host-facing props types and FooterSummaryReport into sibling modules (slice 2) (#26354)
<!-- claude-projects-attribution: {"github_login":"os-steve"} -->
_Requested by **Steve** · [project
thread](https://claude.ai/code/project/chan_01FdL1XeUyvVNxLreh3F4Qi9?thread=cmsg_01FdL1XeUyvVNxLreh3F4Qi94Cr2fbhp665MVvsYFfqYFe)_
Part of #25994 (slice 2 of the move-only split; the card stays open for
the later slices).
Clause-②: no
Metadata-protocol: none
## What moved
Base `71580254` (main with slice 1, #26323). This slice finishes the
module-level part of `ui/packages/plugin-grid/src/ObjectGrid.tsx` that
no test pins. It moves two groups, verbatim, into two new sibling
modules:
- `objectGridProps.ts`: `ObjectGridColumnState`,
`ObjectGridFooterSummary` and `ObjectGridExternalPaginationProps`, with
their docblocks. These are the host-facing props types that
`ObjectGridComponentProps` builds on.
- `objectGridFooterSummaryReport.tsx`: `FooterSummaryReport`, the
renderless component that reports the grid's column summaries to a host.
144 lines move, and `ObjectGrid.tsx` goes from 6781 to 6637 lines.
`FooterSummaryReport` gains the `export` keyword in its new module.
`ObjectGrid.tsx` imports the moved names back and re-exports the three
types, so every name it exported is still importable from the same path.
The package entry (`index.tsx`) is untouched. No identifier is renamed,
no logic or DOM changes, and no new name is exported from
`ObjectGrid.tsx`.
Move-only proof: the multiset of non-blank lines of the base
`ObjectGrid.tsx` equals the new `ObjectGrid.tsx` plus the two modules
(each module's header comment dropped, the added `export` keyword
normalised). Nothing is missing. The only other lines are the import
lines and the one type re-export line.
## Changeset correction from slice 1
Slice 1's changeset (`.changeset/25994-objectgrid-helpers-split.md`,
still unreleased) listed "the record-source ladder" among the moved
query helpers, but `getDataConfig` stayed in `ObjectGrid.tsx`: exported,
it would have become a shared reader for `check:doc-example-readers`.
The correction lives as one sentence in this slice's own changeset
(`.changeset/25994-objectgrid-props-split.md`). Slice 1's note is
untouched, so `check-empty-changeset` has nothing to refuse.
## What module-level code stays in `ObjectGrid.tsx`, and why
- `parseSchemaSort` and its sibling `toOrderByClause`:
`gridArrayArmOrderby-8973.test.tsx` asserts `export function
parseSchemaSort` is in the file, and `toOrderByClause`'s docblock is
written about the call sites beside it.
- `ObjectGridComponentProps`: `bulkExecutorDataSourceFace-9722.test.ts`
asserts `export interface ObjectGridComponentProps` is in the file. Its
docblock sits above `ObjectGridRowOperations`, so
`ObjectGridRowOperations` stays too: moving it would re-attach that
docblock to a different declaration.
- `getDataConfig`, which stays file-local (see above).
- The schema-slot types (`RemoveIndexSignature` and the rest):
`cellClassNameCensusProse-6921.test.ts` reads the census prose in their
docblock from `ObjectGrid.tsx`.
- The relational-copy-set docblock, which is prose about code in this
file.
- The group-heading date region (`TemporalGroupFace`,
`temporalGroupHeading`): #26341 (#25884) is editing it.
So after this slice, the remaining work on the card is the component
body.
## Test edits
None.
## Verification
Run on head `f1e4df4c` (tree identical to the commits the tests ran on;
only the commit messages were reworded before the push):
- `pnpm --dir ui exec vitest run packages/plugin-grid/ --maxWorkers=2`,
the whole package suite, under the verification lock: 251 of 251 files
and 2247 of 2247 tests passed after the move. The before reading is the
same suite on slice 1's head (`8fe81ee9`, whose tree is `main`
`71580254` for this package): 251 of 251 files, 2247 of 2247 tests,
locally and in CI.
- The 52 test files outside plugin-grid that read sources (the same list
slice 1 used): 52 of 52 files, 2257 of 2257 tests passed.
- `pnpm --filter @object-ui/plugin-grid type-check` exit 0.
- eslint on the three files: 0 errors.
- `pnpm --dir ui run check:doc-example-readers` exit 0.
- `node scripts/gen-sdui-manifest-node.mjs`: the manifest is
byte-identical (sha256 `1f6e1ccb…`). Only
`scripts/sdui-manifest.sources/plugin-grid.json` is re-recorded. `node
scripts/check-sdui-manifest.mjs` exit 0.
- `node scripts/pm/dispatch-gates.mjs --commands`: 41 derived gates;
`--ran` reconciles 41 of 41 (0 NOT-MEASURED, 0 UNRUN). All 41 exit 0;
`check-empty-changeset` was re-run on `ba1445b9`.
## Landing
Seat 2's #26307 and #26341 land first on the plugin-grid line, so this
stays a draft. Expect a merge of `main` and a re-record of
`plugin-grid.json` before it lands.
Changesets: `.changeset/25994-objectgrid-props-split.md` (patch,
`@object-ui/plugin-grid`).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01Bdrd2yH4eqnz2QobtN3haE
---------
Co-authored-by: Claude <noreply@anthropic.com>
refactor(plugin-grid): `ObjectGrid`'s host-facing props types and its footer-summary reporter move into sibling modules
6
+
7
+
Clause-②: no
8
+
Metadata-protocol: none
9
+
10
+
`ObjectGridColumnState`, `ObjectGridFooterSummary` and `ObjectGridExternalPaginationProps` move verbatim out of `ObjectGrid.tsx` into `objectGridProps.ts`, and the renderless `FooterSummaryReport` moves into `objectGridFooterSummaryReport.tsx`. No logic, name or rendered output changes. `ObjectGrid.tsx` re-exports the three types, so every name it exported before is still importable from the same path, and the package entry is unchanged.
11
+
12
+
Correction to the slice 1 note: the record-source ladder (`getDataConfig`) stayed in `ObjectGrid.tsx`; it moved in neither slice.
0 commit comments