feat(web): unified two-row TYPO3-style docheader across page/edit/media/view modules #76
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/deckle!76
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "afk/74"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Replaces the four bespoke module headers —
.page-docheader,.edit-pane__header,.media-toolbar,.preview-pane__head— with one shared two-row, TYPO3-styleDocheadercomponent (web/src/components/Docheader.tsx), migrating all four modules onto it end-to-end per the decision record in the issue.What's in here
Docheadershell (buttons-left / reserved buttons-right / context-left / context-right slots; row 2 collapses when empty) plusDocheaderButton(icon + text, single green primary per bar),DocheaderToggle(joined-border segmented control,aria-pressed), and crumb primitives. One.docheaderCSS family consuming the #72 design tokens; all four legacy header CSS families deleted.Publish (green) / Properties / Undo / Discard… / View; props mode swaps the left group toClose / Save (green)with the Saved note moving to row 2 right, no disabled leftovers. Row 2 shows the file path as crumbs — directory segments resolving to real ancestor pages are clickable and navigate like the tree (synthesized sections stay static) — with title + git-state badge right.Close / Save (green) / Save & Close; element icon + label + Saved note in row 2 right; the docheader is now pinned above the scrolling form body.New folder / Upload (green); the folder crumbs moved into row 2 keeping their exact navigation; hidden upload input unchanged.data-testids survive verbatim; the reserved right button group renders (empty) in every module.Verification
tsc --noEmitclean; web suite 36 files / 736 tests green (baseline 726 + 10 new: docheader primitives unit tests and page-crumb navigation tests);vite buildOK;go test ./...all green.harness serveon a git-initialized copy oftestdata/site): page normal + props mode incl. Saved note, crumb navigation to an ancestor section, full publish flow (badge flip, Publish/Discard removal, real commit), edit save/close flows, media new-folder dialog + upload, viewport toggle with mobile class — all pass, no console errors.scaffold/site/AGENTS.mdis unaffected (admin-UI-only change).Closes #74
🤖 Generated with Claude Code
Land-PR audit — verdict: PASS
ci / build-and-test (pull_request)— success (5m9s). Not re-run.mainis already an ancestor ofafk/74— merges cleanly, no conflict.feat(web): …); AFK contract satisfied — body carries a workingCloses #74.Docheadershell +DocheaderButton/DocheaderToggle/ crumb primitives; row 2 collapses when empty; reserved (empty) right button group present in every module.Publish(green) / Properties / Undo / Discard… / View; props-mode swaps left toClose / Save(green)with the Saved note relocated to row 2 right. Row-2 crumbs navigate only to real ancestor pages (ancestorChain/nodeDir); synthesized sections stay static.Close / Save(green) / Save & Close; icon+label+Saved in row 2 right. Media:New folder / Upload(green); folder crumbs preserved. View: Desktop/Mobile segmented toggle, row 2 collapsed..page-docheader,.edit-pane__header,.media-toolbar,.preview-pane__head) removed from styles.css and JSX; existingdata-testids preserved verbatim.Docheader.tsxs top comment still reads no module has been migrated onto it yet — stale after this PR migrates all fourLand-PR audit — verdict: PASS
ci / build-and-test (pull_request)— success (5m9s). Not re-run.mainis already an ancestor ofafk/74— merges cleanly, no conflict.feat(web): …); AFK contract satisfied — body carries a workingCloses #74.Docheadershell +DocheaderButton/DocheaderToggle/ crumb primitives; row 2 collapses when empty; reserved (empty) right button group present in every module.Publish(green) / Properties / Undo / Discard… / View; props-mode swaps left toClose / Save(green)with the Saved note relocated to row 2 right. Row-2 crumbs navigate only to real ancestor pages (ancestorChain/nodeDir); synthesized sections stay static.Close / Save(green) / Save & Close; icon+label+Saved in row 2 right. Media:New folder / Upload(green); folder crumbs preserved. View: Desktop/Mobile segmented toggle, row 2 collapsed..page-docheader,.edit-pane__header,.media-toolbar,.preview-pane__head) removed from styles.css and JSX; existingdata-testids preserved verbatim.Docheader.tsxstill reads "no module has been migrated onto it yet" — stale after this PR migrates all four; worth a one-line follow-up but not a blocker.No blockers found. Awaiting the human's free-text go-ahead to merge.