wu981526092's picture
add
f479a01
raw
history blame
2.82 kB
import { Link, useLocation } from 'react-router-dom'
import { cn } from '@/lib/utils'
import {
BookOpen,
MessageSquare,
Settings,
Brain,
ArrowLeft
} from 'lucide-react'
const navigation = [
{
name: 'Templates',
href: '/templates',
icon: Brain,
description: 'Browse assistant templates and examples'
},
{
name: 'Assistant Studio',
href: '/playground',
icon: MessageSquare,
description: 'Build, test and refine your AI assistants'
},
{
name: 'Model Catalog',
href: '/models',
icon: BookOpen,
description: 'Browse and manage AI models'
},
{
name: 'Settings',
href: '/settings',
icon: Settings,
description: 'Application settings'
}
]
export function Sidebar() {
const location = useLocation()
return (
<div className="flex h-full flex-col bg-background border-r">
{/* Header */}
<div className="p-6 border-b">
<div className="flex items-center gap-2">
<div className="w-8 h-8 bg-primary rounded-lg flex items-center justify-center">
<Brain className="h-5 w-5 text-primary-foreground" />
</div>
<div>
<h1 className="font-semibold text-lg">Edge LLM</h1>
<p className="text-xs text-muted-foreground">Local AI Platform</p>
</div>
</div>
</div>
{/* Navigation */}
<div className="flex-1 px-3 py-4 space-y-8">
{/* Back to Home */}
<div>
<Link
to="/"
className="flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-all hover:bg-accent text-muted-foreground hover:text-foreground"
>
<ArrowLeft className="h-4 w-4" />
<span>Back to Home</span>
</Link>
</div>
<div>
<h2 className="mb-2 px-3 text-xs font-semibold text-muted-foreground uppercase tracking-wide">
Get started
</h2>
<nav className="space-y-1">
{navigation.map((item) => {
const isActive = location.pathname === item.href
return (
<Link
key={item.name}
to={item.href}
className={cn(
'flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-all hover:bg-accent',
isActive
? 'bg-accent text-accent-foreground font-medium'
: 'text-muted-foreground hover:text-foreground'
)}
>
<item.icon className="h-4 w-4" />
<div className="flex-1">
{item.name}
</div>
</Link>
)
})}
</nav>
</div>
</div>
</div>
)
}