'use client'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { clsx } from 'clsx'; import { useStore } from '@/lib/store'; import { isAdmin } from '@/lib/auth'; import { Home, Image, Video, Mic, FileText, History, Settings, ChevronLeft, ChevronRight, Sparkles, Maximize, Eraser, Captions, Volume2, Type, Wand2, ImagePlus, Film, Shield, Users, TrendingUp, Clock, FolderOpen, AudioLines, Network, FileCode, FileType, FileEdit, Scissors, } from 'lucide-react'; const modules = [ { category: 'Image', icon: Image, items: [ { name: 'Generate', href: '/image/generate', icon: ImagePlus }, { name: 'Upscale', href: '/image/upscale', icon: Maximize }, { name: 'Remove Background', href: '/image/remove-bg', icon: Eraser }, ], }, { category: 'Video', icon: Video, items: [ { name: 'Generate', href: '/video/generate', icon: Film }, { name: 'Upscale', href: '/video/upscale', icon: Maximize }, { name: 'Frame Extractor', href: '/video/extract', icon: Scissors }, { name: 'Subtitles', href: '/video/subtitles', icon: Captions }, ], }, { category: 'Audio', icon: Mic, items: [ { name: 'Text to Speech', href: '/audio/text-to-speech', icon: Volume2 }, { name: 'Voice to Text', href: '/audio/voice-to-text', icon: Type }, { name: 'Sound Effects', href: '/audio/sound-effects', icon: AudioLines }, ], }, { category: 'Text', icon: FileText, items: [ { name: 'Prompt Studio', href: '/text/prompt-studio', icon: Wand2 }, { name: 'Alt Text Generator', href: '/text/alt-text', icon: FileText }, { name: 'Mermaid Generator', href: '/text/mermaid-generator', icon: Network }, { name: 'Mermaid Renderer', href: '/text/mermaid-renderer', icon: FileCode }, { name: 'Markdown Converter', href: '/text/markdown-converter', icon: FileType }, { name: 'Markdown Generator', href: '/text/markdown-generator', icon: FileEdit }, ], }, ]; export default function Sidebar() { const pathname = usePathname(); const { user, sidebarCollapsed, toggleSidebar } = useStore(); const userIsAdmin = isAdmin(user as any); return ( ); }