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