From f647c3e6922701103fe02883f38b30812bc0f062 Mon Sep 17 00:00:00 2001 From: jyswee Date: Thu, 23 Jul 2026 22:08:29 +0000 Subject: [PATCH] Seed: saas template (34 files) --- src/components/Sidebar.tsx | 72 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/components/Sidebar.tsx diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx new file mode 100644 index 0000000..576d477 --- /dev/null +++ b/src/components/Sidebar.tsx @@ -0,0 +1,72 @@ +import { useState } from "react"; +import { Link, useLocation } from "react-router-dom"; +import { LayoutDashboard, BarChart3, Users, Settings, Layers, Menu } from "lucide-react"; +import { Sheet, SheetTrigger, SheetContent } from "@/components/ui/sheet"; +import { Button } from "@/components/ui/button"; + +const navItems = [ + { label: "Dashboard", to: "/dashboard", icon: LayoutDashboard }, + { label: "Analytics", to: "/analytics", icon: BarChart3 }, + { label: "Customers", to: "/customers", icon: Users }, + { label: "Settings", to: "/settings", icon: Settings }, +]; + +function SidebarContent({ activePath }: { activePath: string }) { + return ( +
+
+
+ +
+ Nexus +
+ +
+ ); +} + +export default function Sidebar({ activePath }: { activePath?: string }) { + const location = useLocation(); + const path = activePath || location.pathname; + const [open, setOpen] = useState(false); + + return ( + <> + {/* Desktop sidebar */} + + + {/* Mobile sidebar via Sheet */} + + + + + + + + + + ); +}