Skip to content

feat(web): add dedicated settings sidebar and billing entry#10

Open
jeresrc wants to merge 1 commit intomainfrom
feat/web-settings-initial-pr
Open

feat(web): add dedicated settings sidebar and billing entry#10
jeresrc wants to merge 1 commit intomainfrom
feat/web-settings-initial-pr

Conversation

@jeresrc
Copy link
Copy Markdown
Contributor

@jeresrc jeresrc commented Mar 2, 2026

Summary

  • Add a dedicated settings sidebar layout in dashboard shell and route settings pages through it on desktop/mobile.
  • Introduce grouped settings navigation (Workspace and Administration), move Team under Administration, and add a new Billing settings entry.
  • Add new settings assets/pages: left-chevron + billing icons and an initial /dashboard/settings/billing page scaffold.
  • Refresh settings index cards to render from shared grouped navigation metadata for sidebar/page parity.

Validation

  • pnpm --filter web run lint

Notes

  • This is an initial PR; follow-up refinements for feedback/public pages will be added in subsequent commits.

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 2, 2026

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

Project Deployment Actions Updated (UTC)
runbase-web Ready Ready Preview, Comment Mar 2, 2026 0:44am

Request Review

@greptile-apps
Copy link
Copy Markdown

greptile-apps bot commented Mar 2, 2026

Greptile Summary

Introduces a dedicated settings sidebar that replaces the main dashboard sidebar when users navigate to settings pages, providing better navigation for settings-specific routes.

  • Added grouped settings navigation structure (Workspace and Administration sections)
  • Moved Team settings to Administration group and added new Billing entry
  • Created shared navigation config (settings-nav.ts) used by both sidebar and index page for consistency
  • Added three new icon components (IconBilling, IconBookBookmark, IconChevronLeft) following repository SVG icon conventions
  • Implemented conditional sidebar rendering in dashboard-shell.tsx based on current route
  • Added billing page scaffold as placeholder for future implementation
  • Refactored settings index to render cards from shared navigation metadata

All changes follow repository conventions for styling (Tailwind CSS), client components, and icon structure. No breaking changes or backend modifications.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • Clean UI additions with proper type safety, consistent patterns, and no backend changes. All new components follow documented conventions (SVG icons, Tailwind styling). Path normalization logic is consistent across components. No logic errors or security concerns identified.
  • No files require special attention

Important Files Changed

Filename Overview
apps/web/features/dashboard/lib/settings-nav.ts Created shared settings navigation config with grouped workspace and administration items
apps/web/features/dashboard/components/settings-sidebar.tsx Added dedicated settings sidebar with grouped navigation and active state handling
apps/web/app/s/[subdomain]/dashboard/settings/billing/page.tsx Added billing settings page scaffold with placeholder content
apps/web/app/s/[subdomain]/dashboard/settings/page.tsx Refactored to render grouped settings cards from shared navigation metadata
apps/web/features/dashboard/components/dashboard-shell.tsx Added conditional rendering to show SettingsSidebar on settings routes

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    Start([User navigates to dashboard route]) --> GetPath[Get current pathname]
    GetPath --> Normalize[Normalize path: remove /s/subdomain prefix]
    Normalize --> CheckRoute{Is settings route?<br/>/dashboard/settings<br/>or /dashboard/settings/*}
    
    CheckRoute -->|Yes| SettingsSidebar[Render SettingsSidebar]
    CheckRoute -->|No| DashboardSidebar[Render DashboardSidebar]
    
    SettingsSidebar --> LoadNav[Load settingsNavGroups]
    LoadNav --> GroupedNav[Display grouped navigation:<br/>- Workspace section<br/>- Administration section]
    GroupedNav --> ActiveState[Highlight active route]
    
    DashboardSidebar --> RegularNav[Display regular dashboard nav:<br/>- Organization info<br/>- Workspace switcher<br/>- Main nav items]
    
    ActiveState --> Render[Render page content]
    RegularNav --> Render
    Render --> End([Page displayed])
Loading

Last reviewed commit: 657d2e3

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