"use client"; import { BadgeCheck, LogOut } from "lucide-react"; import Link from "next/link"; import { useState } from "react"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Spinner } from "@/components/ui/spinner"; import { getLoginPath, logout } from "@/lib/auth-utils"; import { resetUser, trackLogout } from "@/lib/posthog/events"; export function UserDropdown({ user, }: { user: { name: string; email: string; avatar: string; }; }) { const [isLoggingOut, setIsLoggingOut] = useState(false); const handleLogout = async () => { if (isLoggingOut) return; setIsLoggingOut(true); try { trackLogout(); resetUser(); await logout(); if (typeof window !== "undefined") { window.location.href = getLoginPath(); } } catch (error) { console.error("Error during logout:", error); await logout(); if (typeof window !== "undefined") { window.location.href = getLoginPath(); } } }; return (

{user.name}

{user.email}

API Key {isLoggingOut ? ( ) : ( )} {isLoggingOut ? "Logging out..." : "Log out"}
); }