fase(15): reporting module with pdf generation
This commit is contained in:
46
frontend/src/pages/settings/SettingsLayout.tsx
Normal file
46
frontend/src/pages/settings/SettingsLayout.tsx
Normal file
@@ -0,0 +1,46 @@
|
||||
import { NavLink, Outlet } from 'react-router-dom'
|
||||
import { User, Building, Key, Sliders, Bell, Palette, Shield } from 'lucide-react'
|
||||
import { cn } from '@/lib/utils'
|
||||
|
||||
const navItems = [
|
||||
{ label: 'Profile', href: '/settings/profile', icon: User },
|
||||
{ label: 'Organization', href: '/settings/organization', icon: Building },
|
||||
{ label: 'API Keys', href: '/settings/api-keys', icon: Key },
|
||||
{ label: 'Exploration Defaults', href: '/settings/defaults', icon: Sliders },
|
||||
{ label: 'Notifications', href: '/settings/notifications', icon: Bell },
|
||||
{ label: 'Appearance', href: '/settings/appearance', icon: Palette },
|
||||
{ label: 'License', href: '/settings/license', icon: Shield },
|
||||
]
|
||||
|
||||
export function SettingsLayout() {
|
||||
return (
|
||||
<div className="flex gap-8">
|
||||
<nav className="w-48 shrink-0 space-y-1">
|
||||
<h2 className="text-xs font-semibold text-muted-foreground uppercase tracking-wide px-3 mb-3">
|
||||
Settings
|
||||
</h2>
|
||||
{navItems.map(item => (
|
||||
<NavLink
|
||||
key={item.href}
|
||||
to={item.href}
|
||||
className={({ isActive }) =>
|
||||
cn(
|
||||
'flex items-center gap-2.5 px-3 py-2 rounded-md text-sm transition-colors',
|
||||
isActive
|
||||
? 'bg-accent text-accent-foreground font-medium'
|
||||
: 'text-muted-foreground hover:text-foreground hover:bg-accent/50'
|
||||
)
|
||||
}
|
||||
>
|
||||
<item.icon className="h-4 w-4 shrink-0" />
|
||||
{item.label}
|
||||
</NavLink>
|
||||
))}
|
||||
</nav>
|
||||
|
||||
<div className="flex-1 min-w-0">
|
||||
<Outlet />
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user