Repository navigation
refactor(plugin-grid): move ObjectGrid's host-facing props types and FooterSummaryReport into sibling modules (slice 2) - #26354
Merged
Conversation
…FooterSummaryReport into sibling modules (slice 2) Move-only: ObjectGridColumnState, ObjectGridFooterSummary and ObjectGridExternalPaginationProps go verbatim to objectGridProps.ts, and the renderless FooterSummaryReport to objectGridFooterSummaryReport.tsx. ObjectGrid.tsx imports them back and re-exports the three types, so its exported names and the package entry do not move. Also corrects slice 1's changeset: getDataConfig (the record-source ladder) stayed in ObjectGrid.tsx, so it is no longer listed as moved. Claude-Session: https://claude.ai/code/session_01Bdrd2yH4eqnz2QobtN3haE Co-authored-by: Claude <noreply@anthropic.com>
… 2 move Claude-Session: https://claude.ai/code/session_01Bdrd2yH4eqnz2QobtN3haE Co-authored-by: Claude <noreply@anthropic.com>
…in slice 2's note Claude-Session: https://claude.ai/code/session_01Bdrd2yH4eqnz2QobtN3haE Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
席位核对 · ACCEPT · seat
|
os-steve
pushed a commit
that referenced
this pull request
Oct 26, 2026
Merged origin/main (main's record taken at the merge); node scripts/gen-sdui-manifest-node.mjs re-recorded plugin-grid alone, the artefact did not move. node scripts/check-sdui-manifest.mjs exit 0. Claude-Session: https://claude.ai/code/session_01SMps7wq7rBTk53e8KTSEup Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Oct 27, 2026
Merged
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.
Requested by Steve · project thread
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 ofui/packages/plugin-grid/src/ObjectGrid.tsxthat no test pins. It moves two groups, verbatim, into two new sibling modules:objectGridProps.ts:ObjectGridColumnState,ObjectGridFooterSummaryandObjectGridExternalPaginationProps, with their docblocks. These are the host-facing props types thatObjectGridComponentPropsbuilds on.objectGridFooterSummaryReport.tsx:FooterSummaryReport, the renderless component that reports the grid's column summaries to a host.144 lines move, and
ObjectGrid.tsxgoes from 6781 to 6637 lines.FooterSummaryReportgains theexportkeyword in its new module.ObjectGrid.tsximports 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 fromObjectGrid.tsx.Move-only proof: the multiset of non-blank lines of the base
ObjectGrid.tsxequals the newObjectGrid.tsxplus the two modules (each module's header comment dropped, the addedexportkeyword 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, butgetDataConfigstayed inObjectGrid.tsx: exported, it would have become a shared reader forcheck: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, socheck-empty-changesethas nothing to refuse.What module-level code stays in
ObjectGrid.tsx, and whyparseSchemaSortand its siblingtoOrderByClause:gridArrayArmOrderby-8973.test.tsxassertsexport function parseSchemaSortis in the file, andtoOrderByClause's docblock is written about the call sites beside it.ObjectGridComponentProps:bulkExecutorDataSourceFace-9722.test.tsassertsexport interface ObjectGridComponentPropsis in the file. Its docblock sits aboveObjectGridRowOperations, soObjectGridRowOperationsstays too: moving it would re-attach that docblock to a different declaration.getDataConfig, which stays file-local (see above).RemoveIndexSignatureand the rest):cellClassNameCensusProse-6921.test.tsreads the census prose in their docblock fromObjectGrid.tsx.TemporalGroupFace,temporalGroupHeading): fix(fields,plugin-grid): a grid date column reads in one absolute face #26341 (list grid: a date column mixes relative and absolute formats in the same column ("昨天 / 3天前 / 7天前 / 9月25日 / 2025年9月20日"), so a sorted column cannot be read as sorted #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 ismain71580254for 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-checkexit 0.eslint on the three files: 0 errors.
pnpm --dir ui run check:doc-example-readersexit 0.node scripts/gen-sdui-manifest-node.mjs: the manifest is byte-identical (sha2561f6e1ccb…). Onlyscripts/sdui-manifest.sources/plugin-grid.jsonis re-recorded.node scripts/check-sdui-manifest.mjsexit 0.node scripts/pm/dispatch-gates.mjs --commands: 41 derived gates;--ranreconciles 41 of 41 (0 NOT-MEASURED, 0 UNRUN). All 41 exit 0;check-empty-changesetwas re-run onba1445b9.Landing
Seat 2's #26307 and #26341 land first on the plugin-grid line, so this stays a draft. Expect a merge of
mainand a re-record ofplugin-grid.jsonbefore it lands.Changesets:
.changeset/25994-objectgrid-props-split.md(patch,@object-ui/plugin-grid).🤖 Generated with Claude Code
https://claude.ai/code/session_01Bdrd2yH4eqnz2QobtN3haE