"use client"; import Link from "next/link"; import { usePathname, useRouter } from "next/navigation"; import { FC, useState, useEffect } from "react"; import { LayoutDashboard, Users, ChevronLeft, ChevronRight, User, LogOut } from "lucide-react"; import { cn } from "@/lib/utils"; import { createClient } from "@/lib/supabase/client"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; const navItems = [ { href: "/dashboard", icon: LayoutDashboard, label: "Overview" }, { href: "/dashboard/settings/team", icon: Users, label: "Team" }, ]; export const Sidebar: FC = () => { const pathname = usePathname(); const router = useRouter(); const [collapsed, setCollapsed] = useState(false); const [user, setUser] = useState<{ id: string; email: string } | null>(null); const [organizationName, setOrganizationName] = useState("Organization"); const supabase = createClient(); useEffect(() => { const fetchOrg = async (userId: string) => { const { data: profile } = await supabase.from("profiles").select("organization_id").eq("id", userId).single(); if (profile?.organization_id) { const { data: org } = await supabase.from("organizations").select("name").eq("id", profile.organization_id).single(); if (org?.name) { setOrganizationName(org.name); } } }; supabase.auth.getUser().then(({ data: { user: currentUser } }) => { if (currentUser) { setUser({ id: currentUser.id, email: currentUser.email ?? "" }); fetchOrg(currentUser.id); } }); const { data: { subscription } } = supabase.auth.onAuthStateChange((event, session) => { if (session?.user) { setUser({ id: session.user.id, email: session.user.email ?? "" }); fetchOrg(session.user.id); } else { setUser(null); setOrganizationName("Organization"); } }); return () => { subscription.unsubscribe(); }; }, [supabase]); const handleLogout = async () => { await supabase.auth.signOut(); router.refresh(); }; return ( ); };