import { Command, FlaskConical, Palette, Settings } from 'lucide-react' import { useTheme } from 'next-themes' import Link from 'next/link' import { useRouter } from 'next/navigation' import { ProfileImage } from 'components/ui/ProfileImage' import { useSignOut } from 'lib/auth' import { IS_PLATFORM } from 'lib/constants' import { useProfile } from 'lib/profile' import { useAppStateSnapshot } from 'state/app-state' import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuTrigger, SidebarMenuButton, Theme, cn, singleThemes, } from 'ui' import { useSetCommandMenuOpen } from 'ui-patterns/CommandMenu' import { ICON_SIZE, ICON_STROKE_WIDTH, SideBarNavLink } from './Sidebar' export const UserDropdown = () => { const { profile } = useProfile() const appStateSnapshot = useAppStateSnapshot() const { theme, setTheme } = useTheme() const signOut = useSignOut() const router = useRouter() const setCommandMenuOpen = useSetCommandMenuOpen() return ( {IS_PLATFORM && ( <>
{profile && ( <> {profile.username} {profile.primary_email !== profile.username && ( {profile.primary_email} )} )}
Account preferences appStateSnapshot.setShowFeaturePreviewModal(true)} onSelect={() => appStateSnapshot.setShowFeaturePreviewModal(true)} > Feature previews setCommandMenuOpen(true)}> Command menu )} Theme { setTheme(value) }} > {singleThemes.map((theme: Theme) => ( {theme.name} ))} {IS_PLATFORM && ( <> { await signOut() await router.push('/sign-in') }} > Log out )}
) }