"use client"; import { useEffect, useId, useRef, useState } from "react"; import Link from "next/link"; import { ChevronDown, Moon, Settings, Sun, UserRound } from "lucide-react"; import { useTheme } from "./ThemeProvider"; import { LogoutButton } from "./auth/LogoutButton"; export function AccountMenu({ name, email }: { name: string; email: string }) { const [open, setOpen] = useState(false); const root = useRef(null); const trigger = useRef(null); const panelId = useId(); const { theme, toggle } = useTheme(); useEffect(() => { if (!open) return; const closeOutside = (event: Event) => { if (!root.current?.contains(event.target as Node)) setOpen(false); }; const closeOnEscape = (event: KeyboardEvent) => { if (event.key === "Escape") { setOpen(false); trigger.current?.focus(); } }; document.addEventListener("pointerdown", closeOutside); document.addEventListener("focusin", closeOutside); document.addEventListener("keydown", closeOnEscape); return () => { document.removeEventListener("pointerdown", closeOutside); document.removeEventListener("focusin", closeOutside); document.removeEventListener("keydown", closeOnEscape); }; }, [open]); const itemClass = "flex min-h-11 w-full items-center gap-3 rounded-lg px-3 text-sm text-text hover:bg-gray-100 focus-visible:outline-2 focus-visible:outline-[#30638E] dark:hover:bg-white/5"; return
{open &&

{name || "Your account"}

{email}

}
; }