(workspace-morph) File queue as a companion tab behind the image viewer in Review#243
Merged
Conversation
Extend the pane-spec format so a step column can be a tab GROUP
({ tabs, active, weight }) rather than only a single module, and teach the
morph engine to build/diff grouped columns non-destructively (preserved node
ids, idempotent fast path, keepMounted tabs pinned to enableRenderOnDemand:false
so a hidden companion stays mounted). Per-step memory snapshots and restores
grouped tabs incl. the active tab, and a one-time migrateReviewMemoryShape folds
an old three-column review memory into the new companion-tab form.
…ace viewer on load Wire migrateReviewMemoryShape into workspace init so existing installs adopt the new review default, and surface the Image Viewer tab on image-loaded when it is hidden behind the File Queue companion tab (programmatic selectTab, no DOM-focus steal) so a queue-driven load is always shown.
…es being the hidden companion tab The queue's n/p (next/previous file) were gated on tab visibility, which breaks the owner's primary review gesture the moment the Image Viewer tab is raised over the hidden File Queue companion. Gate n/p on mounted-and-not-parked (parent is a tabset, not a background border) instead; a queue parked under a different step stays inert. Focus-dependent keys (Cmd+F, Cmd+A, /) remain visibility-gated.
…p gate, memory migration Update the review-shape assertions to the new review-module | [image-viewer, file-queue] form, and add coverage for the pane-shape helpers, grouped-column build/idempotence, the hidden File-Queue staying mounted (React mount level), the mounted-not-parked n/p gate, grouped-tab snapshot/restore and migrateReviewMemoryShape.
…mpanion invariant CHANGELOG Changed entry; ROADMAP marks the n/p companion-gate item done; ux-principles gains navigation rule 9 (companion drivers stay mounted, keys gate on mounted-not-parked, surface the partner on load) and a grouped-tabs memory note; workspace-guide describes the new Granska layout, Cmd+Shift+U and n/p.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Extract the inline image-loaded effect body into a behavior-neutral pure helper revealHiddenModuleTab(model, moduleId) in workspaceMorph.js (selects a module's tab only when it is hidden behind another tab in a real tabset) and call it from the workspace effect, so the behavior is unit-testable. Add two rendered-Layout tests: (a) viewer hidden behind the File Queue tab is surfaced on image-loaded; (b) an already-visible viewer is a no-op (no extra selectTab).
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.
Summary
Owner decision from the visual pass: the Review step should not devote a permanent column to the file queue.
review-module (15) | main tabset (85)where the main tabset holds Bildvisare (active) and Filkö as tabs. The queue is out of sight by default but one click/Cmd+Shift+U away.{tabs, active, weight}) — built minimally for exactly this shape, not general 2D nesting. Idempotent fast-path recognizes the group form (the queue triggersenterStep('review')on every file load, so no churn).enableRenderOnDemand:falseeven as a hidden group tab; a headless mount test proves the queue stays mounted, keeps state, and keeps reacting to events behind the viewer.Testing
npm test: 90 files / 869 tests passed (rebased onto dev incl. (useReviewKeyboard) Guard bare-key review shortcuts against Cmd/Ctrl/Alt #241/(landing) Always-visible workflow bar, first-run welcome card and Help fix #242)npm run build:workspace: OK