import { Command, FlaskConical, Loader2, Settings } from 'lucide-react' import { useTheme } from 'next-themes' import Link from 'next/link' import { useRouter } from 'next/router' import { ProfileImage } from 'components/ui/ProfileImage' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useSignOut } from 'lib/auth' import { IS_PLATFORM } from 'lib/constants' import { useProfileNameAndPicture } from 'lib/profile' import { useAppStateSnapshot } from 'state/app-state' import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuTrigger, Theme, singleThemes, } from 'ui' import { useSetCommandMenuOpen } from 'ui-patterns/CommandMenu' import { useFeaturePreviewModal } from './App/FeaturePreview/FeaturePreviewContext' export function UserDropdown() { const router = useRouter() const { theme, setTheme } = useTheme() const appStateSnapshot = useAppStateSnapshot() const profileShowEmailEnabled = useIsFeatureEnabled('profile:show_email') const { username, avatarUrl, primaryEmail, isLoading } = useProfileNameAndPicture() const signOut = useSignOut() const setCommandMenuOpen = useSetCommandMenuOpen() const { openFeaturePreviewModal } = useFeaturePreviewModal() return ( {IS_PLATFORM && ( <>
{!!username && ( <> {username} {primaryEmail !== username && profileShowEmailEnabled && ( {primaryEmail} )} )}
{ if (router.pathname !== '/account/me') { appStateSnapshot.setLastRouteBeforeVisitingAccountPage(router.asPath) } }} > Account preferences Feature previews setCommandMenuOpen(true)}> Command menu )} Theme { setTheme(value) }} > {singleThemes.map((theme: Theme) => ( {theme.name} ))} {IS_PLATFORM && ( <> { await signOut() }} > Log out )}
) }