'use client'; import { useMemo } from 'react'; import Link from 'next/link'; import type { Session } from '@supabase/gotrue-js'; import { EllipsisVerticalIcon, HomeIcon, LogOutIcon, MessageCircleQuestionIcon, ShieldIcon, } from 'lucide-react'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@kit/ui/dropdown-menu'; import { If } from '@kit/ui/if'; import { ProfileAvatar } from '@kit/ui/profile-avatar'; import { Trans } from '@kit/ui/trans'; import { cn } from '@kit/ui/utils'; import { usePersonalAccountData } from '../hooks/use-personal-account-data'; export function PersonalAccountDropdown({ className, session, signOutRequested, showProfileName, paths, }: { className?: string; session: Session | null; signOutRequested: () => unknown; showProfileName?: boolean; paths: { home: string; }; }) { const { data: personalAccountData } = usePersonalAccountData(); const authUser = session?.user; const signedInAsLabel = useMemo(() => { const email = authUser?.email ?? undefined; const phone = authUser?.phone ?? undefined; return email ?? phone; }, [authUser?.email, authUser?.phone]); const displayName = personalAccountData?.name ?? authUser?.email ?? ''; const isSuperAdmin = useMemo(() => { return authUser?.app_metadata.role === 'super-admin'; }, [authUser]); return (
{displayName} {signedInAsLabel}
{signedInAsLabel}
Admin
); }