import { NavLink } from 'react-router-dom'; import { LayoutDashboard, Rss, Package, LayoutTemplate, FolderKanban, Mail, Users, Bell, Clock, Activity, Shield, ListChecks, Megaphone, Calendar, Tag, Heart, AlertTriangle, } from 'lucide-react'; import { cn } from '../lib/cn'; type NavItem = { to: string; label: string; icon: React.ComponentType<{ className?: string }>; end?: boolean }; type NavGroup = { label: string; items: NavItem[]; }; const groups: NavGroup[] = [ { label: 'Overzicht', items: [{ to: '/cms', label: 'Dashboard', icon: LayoutDashboard, end: true }], }, { label: 'Feeds', items: [{ to: '/cms/feeds', label: 'Feeds', icon: Rss }], }, { label: 'Catalogus', items: [ { to: '/cms/products', label: 'Producten', icon: Package }, { to: '/cms/collections', label: 'Collecties', icon: FolderKanban }, { to: '/cms/categories', label: 'Categorieën', icon: Tag }, ], }, { label: 'Content', items: [ { to: '/cms/homepage', label: 'Homepage', icon: LayoutTemplate }, { to: '/cms/brands', label: 'Merken', icon: Heart }, { to: '/cms/calendar', label: 'Releasekalender', icon: Calendar }, ], }, { label: 'Marketing', items: [ { to: '/cms/emails', label: 'Emails', icon: Mail }, { to: '/cms/subscribers', label: 'Subscribers', icon: Users }, { to: '/cms/push', label: 'Push', icon: Megaphone }, ], }, { label: 'Operaties', items: [ { to: '/cms/jobs', label: 'Jobs', icon: ListChecks }, { to: '/cms/audit', label: 'Audit log', icon: Shield }, { to: '/cms/crons', label: 'Crons', icon: Clock }, { to: '/cms/health', label: 'Health', icon: Activity }, { to: '/cms/errors', label: 'Errors', icon: AlertTriangle }, { to: '/cms/notifications', label: 'Meldingen', icon: Bell }, ], }, ]; export function Sidebar() { return ( ); }