import type { ReactNode } from 'react'
import { Link, useLocation } from 'react-router'
import {
BookMarked,
BookOpen,
BookUser,
Bot,
Boxes,
ChartColumn,
Gauge,
Inbox,
type LucideIcon,
LayoutDashboard,
LogOut,
Network,
Package,
Rocket,
ShieldCheck,
Sparkles,
Users,
} from 'lucide-react'
import { Button } from '@/components/ui/button'
import { Separator } from '@/components/ui/separator'
import { cn } from '@/lib/utils'
import { useAuth } from '@/store/auth'
export function AppShell({ children }: { children: ReactNode }) {
const email = useAuth((s) => s.email)
const logout = useAuth((s) => s.logout)
return (
)
}
function NavSection({ label }: { label: string }) {
return (
{label}
)
}
function NavItem({
icon: Icon,
label,
to,
muted,
}: {
icon: LucideIcon
label: string
to?: string
muted?: boolean
}) {
const location = useLocation()
const active = to ? location.pathname === to : false
const className = cn(
'flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors',
active
? 'bg-white/15 font-medium text-white shadow-sm ring-1 ring-white/15 backdrop-blur-sm'
: 'text-sidebar-foreground/80',
muted ? 'opacity-50' : 'hover:bg-white/10 hover:text-white',
)
const content = (
<>
{label}
{muted && soon}
>
)
if (!to || muted) {
return {content}
}
return (
{content}
)
}