feat: use right click - #18
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
There are a couple of concrete fixups requested in changed code (CSS clamp fallback) and the PR scope/title mismatch should be addressed to make review and rollback safer.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR broadens desktop UX around pointer-driven menus by introducing a shared right-click context menu mechanism and wiring it into multiple shell surfaces (desktop, windows, Deskbar, Tracker). It also adds a persisted 12/24-hour clock preference, refreshes Coffee Shop’s UI (artwork-first browse + installed inventory) with a new “About Packages” help window, and includes supporting tests/docs/screenshots plus Coffee Shop backend deploy workflows.
Changes:
- Add
useContextMenu()and integrate right-click menus across the desktop shell (workspace Be menu, window tab menu, Deskbar app menu, desktop icons, Tracker items/background). - Add persisted Deskbar clock format (
12h/24h) with Preferences UI and test coverage. - Redesign Coffee Shop listing UI, add “Help → About Packages…” window, and update docs/tests/screenshots + backend deployment workflows.
File summaries
| File | Description |
|---|---|
| tests/shell.test.tsx | Updates shell expectations for the added Coffee Shop desktop icon. |
| tests/setup.ts | Resets new persisted clock setting between tests. |
| tests/preferences.test.tsx | Adds tests for Deskbar clock format switching + persistence. |
| tests/contextmenu.test.tsx | New suite covering right-click menu behavior and routing. |
| tests/coffeeshop.test.tsx | Updates tests for Coffee Shop’s new browse/installed layouts and sanitised listing artwork; adds Help test. |
| src/wm/BWindow.tsx | Adds window-tab context menu (Zoom/Hide/Close via existing handlers). |
| src/widgets/Menu.tsx | Introduces useContextMenu() for pointer-anchored menus. |
| src/styles/shell.css | Changes desktop icon labels to wrap (2-line clamp) instead of ellipsising. |
| src/store/settings.ts | Adds persisted clock format with locale-derived default. |
| src/shell/DesktopIcons.tsx | Adds Coffee Shop to the fixed desktop icon column and adds icon context menus. |
| src/shell/Desktop.tsx | Adds desktop workspace right-click Be menu via shared app menu items. |
| src/shell/Deskbar.tsx | Deskbar clock formatting respects settings; adds per-window context menu and shares Be menu list. |
| src/shell/appMenu.ts | Centralizes Be menu item construction for Deskbar + desktop. |
| src/lib/icons.tsx | Adds PackageHelpIcon for the new help window. |
| src/apps/Tracker.tsx | Adds context menus for items and background; fixes trash action to target the right-clicked item. |
| src/apps/Preferences.tsx | Adds Clock settings box with 12/24-hour radios and adjusts window size. |
| src/apps/PackageHelp.tsx | New “About Packages” help window explaining package sandbox/security model. |
| src/apps/packagehelp.css | Styling for the new Package Help window. |
| src/apps/index.ts | Registers the new PackageHelp app module. |
| src/apps/CoffeeShop.tsx | Adds Help menu item, adds banner, and redesigns Browse/Installed panes to card/row layouts. |
| src/apps/coffeeshop.css | Implements new Coffee Shop banner + browse grid + installed rows styling. |
| README.md | Updates Coffee Shop feature description and cross-links to About Packages and pkgs examples. |
| docs/screenshot2.png | Updates screenshot (LFS pointer). |
| docs/screenshot1.png | Updates screenshot (LFS pointer). |
| docs/screenshot_coffeeshop.png | Adds a Coffee Shop screenshot (LFS pointer). |
| docs/packages.md | Cross-references PackageHelp as the user-facing version of the sandbox/permission story. |
| coffeeshop/Dockerfile | Updates Coffee Shop backend base image. |
| coffeeshop/docker-compose.yml | Makes published port configurable and adjusts scan interval. |
| CLAUDE.md | Documents new UI/behavior conventions added in this PR. |
| .github/workflows/deploy-coffeeshop-test.yml | Adds a test-environment deploy workflow for Coffee Shop backend. |
| .github/workflows/deploy-coffeeshop-reusable.yml | Adds reusable deploy workflow for Coffee Shop backend. |
| .github/workflows/deploy-coffeeshop-prod.yml | Adds a prod deploy workflow for Coffee Shop backend. |
Review details
- Files reviewed: 32/32 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
No description provided.