Replace dual-bar with queue bridge for flash-free bottom bar#842
Replace dual-bar with queue bridge for flash-free bottom bar#842marcodejongh wants to merge 3 commits intomainfrom
Conversation
…tion The bottom bar previously used two separate instances (root-level and board-route-level) with useEffect-based registration toggling between them, causing visible flashing during route transitions. This replaces that with a single persistent bottom bar at the root level that uses a "bridge" context to read queue state from whichever provider is active. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Claude Review✅ Ready to merge - Minor issues noted below, but nothing blocking. Issues
DocumentationNo documentation updates required - the bottom bar architecture is not currently documented in |
The backend reads NEXTAUTH_SECRET to validate NextAuth JWTs but had no checked-in env file providing it. Creates .env.development (not gitignored) with the same dummy secret used by the web package, and updates the dev script to load it. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude ReviewReady to merge - Minor issues noted below, but nothing blocking. Issues
Test CoverageNo tests added for the new queue-bridge-context.tsx (349 lines). The queue bridge pattern involves complex state synchronization and would benefit from unit tests for:
|
The useLayoutEffect cleanup was setting injectedContext to null on every queue context change (since queueContext was in the dep array), then the setup would set it back. This cleanup/setup cycle could cause the bridge to briefly see null state, hiding the bar. Fix: use a ref for the context value (no cleanup needed on updates), split injection into initial mount (useLayoutEffect) and context updates (useEffect), and only clear on unmount. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude Review✅ Ready to merge - Minor issues noted below, but nothing blocking. Issues
|
Summary
GraphQLQueueProviderwhen on board pages, or a thinPersistentSessionadapter on non-board pagesuseLayoutEffectfor synchronous injection/cleanup, eliminating the flash caused by timing gaps during route transitionsKey changes
queue-bridge-context.tsx—QueueBridgeProvider,QueueBridgeInjector, andusePersistentSessionQueueAdapterpersistent-session-wrapper.tsx— always renders bottom bar, wraps with necessary providersQueueBridgeInjectorqueue-control-bar.tsx— guardeduseParams()fallback for root-level renderingbottom-bar-wrapper.module.css— merged board-route styling (mobile inset, border-radius)board-route-bottom-bar-context.tsx,persistent-queue-control-bar.tsx, bothlayout.module.cssTest plan
🤖 Generated with Claude Code