Repository navigation
refactor(app-shell): move ObjectView's leaf pieces into objectViewChrome.tsx (slice 3) - #26310
Merged
Merged
Conversation
…tViewOptions.ts (slice 2) The timeline/calendar/gantt/gallery/kanban ViewOptions, storedLegacyOptions, isSameOptionsValue and dispatchViewPatches move verbatim out of views/ObjectView.tsx into views/objectViewOptions.ts. ObjectView.tsx imports them back and re-exports every name it exported before. Test edits forced by the move: the four source scans that read the ObjectView face (calendarBinding-7029, galleryBinding-7547, ganttBinding-7070, titleFieldConvergence) now read ObjectView.tsx plus objectViewOptions.ts, and the writeRefusalCensus-11583 LEDGER row for dispatchViewPatches is keyed by its new file. Claude-Session: https://claude.ai/code/session_01QciHBvFJXnhZqXmdqpDtpz Co-authored-by: Claude <noreply@anthropic.com>
…ome.tsx (slice 3) ObjectNotFoundState, the saved-view tab strip's viewport check (VIEW_TABS_MIN_WIDTH, viewTabsFitNow, useViewTabsFit) and keepInlineEditModeForTheSession move verbatim out of views/ObjectView.tsx into views/objectViewChrome.tsx. ObjectView.tsx imports them back and re-exports ObjectNotFoundState, the one name it exported. No test edits. Claude-Session: https://claude.ai/code/session_01QciHBvFJXnhZqXmdqpDtpz Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
席位核对 · ACCEPT · seat
|
This was referenced Oct 26, 2026
refactor(app-shell): move ObjectView's list toolbar affordances into a sibling hook (slice 7)
#26374
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 #25992 (slice 3 of the move-only split, under the standing claim and the seat's continuation note; slices 1 and 2 landed as #26152 and #26233, and the card stays open for the component body).
Clause-②: no
Metadata-protocol: none
Seam table (measured on
main96635f5)ui/packages/app-shell/src/views/ObjectView.tsxwas 3254 lines. What was still module-level besides imports and the slice 1-2 re-exports:ConsoleObjectViewPropsObjectView/ObjectViewInner,views/index.tstype re-export, 4 tests by pathObjectNotFoundStateObjectViewwrapper,console/AppContent.tsx(imports it fromviews/ObjectView.js)VIEW_TABS_MIN_WIDTH,viewTabsFitNow,useViewTabsFitObjectViewInner(the tab strip decision)keepInlineEditModeForTheSession(with its docblock)ObjectViewInner(the list's inline-edit toggle)ObjectView,ObjectViewInnerNo test reads any of the moved lines out of
ObjectView.tsxas source text (checked over every test that readsObjectView.tsx), so this slice needs no test edit at all.What moved
The contiguous block from the
ObjectNotFoundStatedocblock throughkeepInlineEditModeForTheSessionmoves verbatim, in its original order, into a new siblingui/packages/app-shell/src/views/objectViewChrome.tsx.ObjectView.tsximportsObjectNotFoundState,useViewTabsFitandkeepInlineEditModeForTheSessionback and re-exportsObjectNotFoundState, the one moved name it exported, from the same path.useViewTabsFitandkeepInlineEditModeForTheSessiongain theexportkeyword in the new module because the component still calls them;ObjectView.tsxdoes not re-export them, so it publishes no new name.Table as TableIconleavesObjectView.tsx's lucide import with its only reader. The package entry is untouched.ObjectView.tsxgoes from 3254 to 3171 lines.Move-only proof: the multiset of non-blank lines of the base
ObjectView.tsxequals newObjectView.tsxplusobjectViewChrome.tsx, after normalising the two addedexportkeywords. The only differing lines are imports, the re-export and its comment, and the new module's header.Test edits
None.
Verification
At 668d82f, under the shared verify lock:
pnpm install --frozen-lockfile; app-shell dependency closure build;pnpm --filter @object-ui/app-shell type-check(src andtsconfig.test.json); 117 test files (everyviews/ObjectView.*test, everyconsole/__tests__/AppContent*test, and every other test that readsObjectView.tsxas source) passed, 1425 tests; Console build (turbo, 71/71 tasks). eslint on both source files: 0 errors. The 30 derived dispatch gates: all exit 0. The rest of the app-shell suite is left to CITest UI: it reaches these names only through the unchanged import path.Acceptance notes
ObjectNotFoundState's docblock still says "this module'sObjectViewdraws it for an absence"; the wrapper that draws it is now in the sibling file. Kept verbatim because the slice is move-only.ObjectView.tsx; the order is unchanged.Changeset:
.changeset/25992-objectview-chrome-split.md(patch,@object-ui/app-shell).Generated by Claude Code