Right-click context menus across the UI (0285) - #424
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: xNet Test <test@xnet.dev>
…0285) Wrap the already-installed @base-ui/react/context-menu module in a themed ContextMenu primitive mirroring Menu.tsx, plus an ActionMenu composed layer whose declarative Action[] descriptors render into either a right-click context menu or a click-anchored kebab dropdown — one source of truth per object type. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: xNet Test <test@xnet.dev>
Signed-off-by: xNet Test <test@xnet.dev>
…285) Wrap ExplorerRow in the new ContextMenu and add a hover kebab, both mounting a shared useNodeActions list lazily on open: Open, Rename (inline), Pin to Desk, Pin/Unpin sidebar, Move to workspace/folder submenus, and Delete (soft-delete to Trash). Replaces the individual hover move/pin buttons. Signed-off-by: xNet Test <test@xnet.dev>
…ive (0285) Replace the hand-rolled fixed-position overlay (manual open state, outside-click and Escape listeners, non-portaled div, inline SVG icons, raw gray styling) with the themed ContextMenu primitive: portaled, collision-flipping, keyboard- and token-consistent. Same actions (copy/edit/clear/comment/delete row); lucide icons. Signed-off-by: xNet Test <test@xnet.dev>
Channel/DM rows gain a right-click + kebab menu (Open, Mark as read via markChannelRead, Archive via the channel archived flag — which useChannels already hides). Messages gain a right-click menu (Copy text, Reply in thread, Edit and Delete for your own — Delete wires the previously-unused redactMessage service through ChannelChat -> ChannelMessageList -> MessageRow). Signed-off-by: xNet Test <test@xnet.dev>
TabBar tabs gain a right-click menu: Close, Close others, Close to the right (all pin-aware — pinned tabs are preserved), Pin/Unpin, and Open in split (splitWith). Complements the existing middle-click-close and hover pin/close. Signed-off-by: xNet Test <test@xnet.dev>
Add RowContextMenu, a small shared wrapper driven by the onRowClick/onDeleteRow callbacks every view already receives, and wire it into the List, Gallery, Timeline and Board card views (threading onDeleteRow through the board columns) plus a task-row menu (Open, toggle done). Grid keeps its reducer/keymap-driven model for now — a distinct follow-up. Signed-off-by: xNet Test <test@xnet.dev>
Signed-off-by: xNet Test <test@xnet.dev>
Signed-off-by: xNet Test <test@xnet.dev>
crs48
force-pushed
the
claude/0285-right-click-context-menus-across-the-ui
branch
from
July 9, 2026 03:40
62246b8 to
3ba61ef
Compare
Contributor
|
Preview removed for PR #424. |
Contributor
🖼️ UI changes in this PRComponentsScreensInteractionsAuto-captured by CI · run. Informational — not a blocking check. |
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.






Implements exploration 0285: a single, themed right-click menu system built on the already-installed-but-unused
@base-ui/react/context-menu, rolled out across the app.What landed
Foundation (
@xnetjs/ui)ContextMenuprimitive (packages/ui/src/primitives/ContextMenu.tsx) — pointer-anchored, portaled, collision-flipping, keyboard + long-press, mirroringMenu.tsx's tokens and motion.ActionMenu(packages/ui/src/composed/ActionMenu.tsx) — a declarativeAction[]descriptor that renders into either a right-click menu or a click-anchored kebab dropdown, so both paths share one source of truth. Unit-tested + Storybook story.Surfaces wired
useNodeActionshook.redactMessage).RowContextMenuon List, Gallery, Timeline, Board cards + a task-row menu (Open, toggle done).Verified
@xnetjs/ui,@xnetjs/views,xnet-web.Deferred (follow-ups)
CanvasV3.tsxis a ~6k-line renderer under the view-drift tripwire (0276/0277), and wiring command-registry actions through it safely warrants its own change. A background task chip is flagged. This is why the exploration doc stays[_].No changeset: only private packages (
@xnetjs/ui,@xnetjs/views) and the app changed (assert-coveragepasses).🤖 Generated with Claude Code