prototype(groups): explore active-scope switcher variants - #288
Conversation
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Adds a throwaway /prototype/active-scope TanStack Router route to explore three UI variants for a unified “Active Group + Vote Scope” switcher concept using mock, in-memory state (no Supabase / schema / production behavior changes intended).
Changes:
- Registers a new
/prototype/active-scoperoute in the generated router tree. - Adds a prototype page implementing variants A/B/C for pinned-default vs transient-override scope switching.
- Adds internal prototype notes documenting the question, variants, and cleanup plan.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/routeTree.gen.ts | Registers the new prototype route in the generated TanStack Router tree/types. |
| src/routes/prototype/NOTES.md | Documents the prototype goal, variants, and intended deletion plan. |
| src/routes/prototype/active-scope.tsx | Implements the prototype route UI and variant switcher logic using mock state. |
Address Copilot review on #288: block the route in production via beforeLoad, and skip attaching the keydown listener (with correct deps) when PROD instead of relying on a post-effect early return.
Playwright test resultsDetails
|
The PROD block on beforeLoad was addressing a real-production-risk concern, but this is a throwaway prototype PR that won't land on main — the guard just breaks the shareable Vercel preview link.
Same reasoning as the route guard revert — this PR never merges to main, so hiding the variant switcher in PROD only breaks the shareable preview link instead of protecting anything.
…menu
Model per feedback: two independent settings ("active group" — which
group; "active scope" — group/everyone/me) instead of one flat pin
target. Header dropdown reordered to a compact, mobile-friendly
grouping: active group + pinned scope context lines, then groups,
then everyone/me, each separated.
Variant A won: single flat dropdown + two independent Settings controls. Refined per feedback — the pinned scope always sorts first in the list (still starred) so reverting to it never requires scanning past groups/Everyone/Me in their natural order.
Adds a throwaway
/prototype/active-scoperoute with 3 UI variants exploring a unified Active Group + Vote Scope model (Settings-pinned default, transient header override), following a grill session on issue #124's null-overloading bug and epic #122/#125.No schema or production code touched — mock data only, gated out of prod builds.
Verification
pnpm run dev, visit/prototype/active-scope?variant=A(andB,C), or use the floating bottom-bar arrows /←/→keys to cycle.import.meta.env.PRODguard on the switcher bar) and not linked from any nav.Generated by Claude Code