86 lines
No EOL
1.5 KiB
TypeScript
86 lines
No EOL
1.5 KiB
TypeScript
import Link from "next/link";
|
|
import {
|
|
LayoutDashboard,
|
|
Users,
|
|
Wrench,
|
|
Package,
|
|
FileText,
|
|
Settings,
|
|
ShoppingCart,
|
|
} from "lucide-react";
|
|
|
|
const menu = [
|
|
{
|
|
icon: LayoutDashboard,
|
|
name: "Dashboard",
|
|
href: "/",
|
|
},
|
|
{
|
|
icon: Users,
|
|
name: "Benutzer",
|
|
href: "/users",
|
|
},
|
|
{
|
|
icon: Users,
|
|
name: "Kunden",
|
|
href: "/customers",
|
|
},
|
|
{
|
|
icon: Wrench,
|
|
name: "Reparaturen",
|
|
href: "/repairs",
|
|
},
|
|
{
|
|
icon: Package,
|
|
name: "Lager",
|
|
href: "/inventory",
|
|
},
|
|
{
|
|
icon: ShoppingCart,
|
|
name: "eBay",
|
|
href: "/ebay",
|
|
},
|
|
{
|
|
icon: FileText,
|
|
name: "Dokumente",
|
|
href: "/documents",
|
|
},
|
|
{
|
|
icon: Settings,
|
|
name: "Einstellungen",
|
|
href: "/settings",
|
|
},
|
|
];
|
|
|
|
export default function Sidebar() {
|
|
return (
|
|
<aside className="w-64 h-screen bg-slate-900 text-white flex flex-col">
|
|
|
|
<div className="p-6 border-b border-slate-800">
|
|
<h1 className="text-3xl font-bold">
|
|
🏛 Olympus
|
|
</h1>
|
|
</div>
|
|
|
|
<nav className="flex-1 p-4 space-y-2">
|
|
|
|
{menu.map((item) => (
|
|
<Link
|
|
key={item.name}
|
|
href={item.href}
|
|
className="flex items-center gap-3 rounded-lg px-4 py-3 hover:bg-slate-800 transition-colors"
|
|
>
|
|
<item.icon size={20} />
|
|
<span>{item.name}</span>
|
|
</Link>
|
|
))}
|
|
|
|
</nav>
|
|
|
|
<div className="border-t border-slate-800 p-4 text-sm text-slate-400">
|
|
Olympus ERP v0.1
|
|
</div>
|
|
|
|
</aside>
|
|
);
|
|
} |