feat: bidirectional screen status with right-click menus#46
Merged
trmquang93 merged 2 commits intomainfrom Apr 27, 2026
Merged
Conversation
updateScreenStatus and markAllExisting were missing pushHistory calls, so single-screen status edits and the bulk "All existing" action were invisible to Cmd/Ctrl+Z. Mirrors the existing pattern used by updateScreenNotes / renameScreen. Refs backlog 8.2.
The canvas status chip is now always visible (previously hidden for status="new") and is clickable: left-click cycles, right-click opens a 3-option menu to jump directly to New/Modify/Existing. The right Sidebar's Build status pill gains the same right-click menu and now honors isReadOnly. Both popovers render via React portals so they escape the transformed canvas ancestor and use Z_INDEX.contextMenu. Read-only viewers see a plain status chip with no interactions. User guide updated with a Build status subsection covering the three statuses, the click vs right-click affordances, and the undoable bulk "All existing" action. Refs backlog 8.2.
625ad83 to
439deb9
Compare
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
Refs backlog 8.2 — Cannot revert screen status from existing back to new/modified.
After investigation, the perceived "one-way trip" turned out to be three small bugs/affordances rather than a missing feature:
updateScreenStatusandmarkAllExistinginuseScreenManager.jswere not callingpushHistory, so single-screen and bulk status edits were invisible to undo. Now both push history matching theupdateScreenNotes/renameScreenpattern.status === "new"non-scope-root screens) and interactive: left-click cyclesNew → Modify → Existing → New, right-click opens a 3-option menu that jumps directly to any status. PlumbedonUpdateStatusthroughCanvasAreatoScreenNode.isReadOnly(was a latent bug — the pill was clickable in viewer mode).### Build statussubsection inuserGuide.mdcovering the three statuses, click-vs-right-click affordances, the bulk "All existing" header button, undo coverage, and the read-only behavior.Both popovers render via
createPortalso they escape the transformed canvas ancestor and useZ_INDEX.contextMenufromtheme.js. Read-only viewers see a plain<span>chip with no interactions.Test plan
new → modify → existing → newnew-status screensCmd/Ctrl+ZrevertsCmd/Ctrl+Zrestores prior per-screen statusesexisting, generate instructions: appears as context only