Skip to content

Add global header and sesh settings drawer#874

Open
marcodejongh wants to merge 1 commit intomainfrom
feature/global-header-sesh-settings
Open

Add global header and sesh settings drawer#874
marcodejongh wants to merge 1 commit intomainfrom
feature/global-header-sesh-settings

Conversation

@marcodejongh
Copy link
Owner

Summary

  • Unified persistent global header across all pages (home, board, notifications, library, profile, settings, etc.) with UserDrawer, search pill, and context-aware Sesh button
  • New SeshSettingsDrawer with session info (name, participants, duration, goal), angle selector, and stop session button
  • Elevated session ending to root-level PersistentSessionContext so ending a session works from any page (not just board routes)
  • Simplified board page header by removing UserDrawer and fixed positioning (now a contextual toolbar)
  • Added onAngleChange callback prop to AngleSelector for non-URL-based angle changes

Key Changes

File Change
global-header/global-header.tsx New persistent header component
global-header/global-header.module.css Header styles
sesh-settings/sesh-settings-drawer.tsx New sesh settings drawer
persistent-session-context.tsx Added endSessionWithSummary, sessionSummary, dismissSessionSummary
persistent-session-wrapper.tsx Renders GlobalHeader + root SessionSummaryDialog
home-page-content.tsx Removed inline header, drawers, boardConfigs prop
board-page/header.tsx Removed UserDrawer, AngleSelector; simplified to toolbar
board-page/angle-selector.tsx Added optional onAngleChange prop
Board route layouts Removed unused boardConfigs fetch
All page layouts/CSS Added paddingTop for fixed global header

Test plan

  • Global header appears on /, board pages, notifications, library, profile, settings
  • Search pill opens UnifiedSearchDrawer (climbs on board routes, boards elsewhere)
  • Sesh button is blue with no session, opens StartSeshDrawer
  • Start a session, Sesh button turns sage green
  • Tap sage green Sesh, opens SeshSettingsDrawer with angle selector
  • Stop session from drawer, session saved, summary dialog appears
  • Navigate between pages, header persists, bottom tab bar still works
  • Test on mobile viewport (responsive behavior, safe area insets)
  • Board page contextual toolbar still shows back button, search pill, angle selector, create button

🤖 Generated with Claude Code

Unify all pages under a single persistent global header with UserDrawer,
search pill, and context-aware Sesh button (sage green when session active).
Move angle selector into a new sesh settings drawer. Elevate session ending
to root level so it works from any page.

- Create GlobalHeader component rendered at root level
- Create SeshSettingsDrawer with session info, angle selector, stop button
- Add endSessionWithSummary/sessionSummary to PersistentSessionContext
- Remove inline headers from home page and simplify board page header
- Add paddingTop for fixed header across all page layouts
- Add onAngleChange callback prop to AngleSelector

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@vercel
Copy link

vercel bot commented Feb 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
boardsesh Building Building Preview, Comment Feb 28, 2026 0:26am

Request Review

@claude
Copy link

claude bot commented Feb 28, 2026

Claude Review

Ready to merge - Minor issues noted below, but nothing blocking.

Issues

  1. Duplicated magic padding value across 10+ files - The expression calc(max(8dvh, 48px) + env(safe-area-inset-top, 0px)) is hardcoded in CSS modules and inline styles throughout the PR. Consider extracting to a CSS custom property (e.g., --global-header-height) in theme config for maintainability.

  2. Unused state variable - packages/web/app/home-page-content.tsx:41 - _selectedBoard is renamed with underscore prefix but never used. If the value isn't needed, consider removing the destructured state entirely.

  3. No tests for new components - SeshSettingsDrawer and GlobalHeader are new components with user-facing functionality (session ending, navigation) but lack test coverage. The new context methods (endSessionWithSummary, sessionSummary, dismissSessionSummary) are also untested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant