"use client"; import { PropsWithChildren, ReactNode, useState } from "react"; import { useRouter } from "next/navigation"; import { LogOut, User } from "lucide-react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"; import { signOut } from "@/lib/auth/auth-client"; import { ProfileModal } from "@/features/layout/profile-modal"; import { Account, Session, User as UserType } from "@/db/schema/02_user"; import { AuthProviderConfig } from "@/lib/auth/config"; import type { AvatarMode } from "@/features/onboarding/types"; export type LoggedInDropdownProps = PropsWithChildren<{ user: UserType; sessions: Session[]; currentSession: Session; accounts: Account[]; children: ReactNode; providers: AuthProviderConfig[]; apiEnabled: boolean; avatarMode?: AvatarMode; avatarUrl?: string; }>; export const LoggedInDropdown = ({ user, sessions, currentSession, accounts, children, providers, apiEnabled, avatarMode, avatarUrl }: LoggedInDropdownProps) => { const router = useRouter(); const [isModalOpen, setIsModalOpen] = useState(false); return ( <> {children} setIsModalOpen(!isModalOpen)} className="group gap-2 p-1 cursor-pointer rounded-lg mb-1 transition-colors focus:bg-accent hover:bg-accent/50 border border-transparent" >
Account Settings
{ await signOut({ fetchOptions: { onSuccess: () => { router.push("/login"); }, }, }); }} >
Logout
); };