CarouselForge Developer
fix: resolve TypeScript and test configuration issues for Phase 13
9a43362
'use client';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
interface NavItem {
href: string;
label: string;
icon: string;
}
const NAV_ITEMS: NavItem[] = [
{ href: '/', label: 'Dashboard', icon: '⚑' },
{ href: '/create', label: 'Create', icon: '✨' },
{ href: '/schedule', label: 'Schedule', icon: 'πŸ“…' },
{ href: '/analytics', label: 'Analytics', icon: 'πŸ“Š' },
{ href: '/settings', label: 'Settings', icon: 'βš™οΈ' },
];
export default function Sidebar(): React.ReactElement {
const pathname = usePathname();
return (
<aside className="w-56 min-h-screen bg-gray-900 text-white flex flex-col">
<div className="px-6 py-5 border-b border-gray-700">
<span className="font-bold text-lg tracking-tight">CarouselForge</span>
</div>
<nav className="flex-1 px-3 py-4 space-y-1">
{NAV_ITEMS.map((item) => {
const isActive = pathname === item.href;
return (
<Link
key={item.href}
href={item.href}
className={`flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition-colors ${
isActive
? 'bg-blue-600 text-white'
: 'text-gray-300 hover:bg-gray-800 hover:text-white'
}`}
>
<span>{item.icon}</span>
<span>{item.label}</span>
</Link>
);
})}
</nav>
</aside>
);
}