import { Text, Icon, Menu, MenuItem, MenuTrigger, MenuSection, MenuSeparator, SubmenuTrigger, Popover, Row, Column, Pressable, IconLabel, } from '@umami/react-zen'; import { useConfig, useLoginQuery, useMessages, useNavigation } from '@/components/hooks'; import { BookText, ChevronRight, ExternalLink, LifeBuoy, LockKeyhole, LogOut, Settings, User, Users, } from '@/components/icons'; import { Switch } from '@/components/svg'; import { DOCS_URL } from '@/lib/constants'; import { ArrowRight } from 'lucide-react'; export interface TeamsButtonProps { showText?: boolean; onAction?: (id: any) => void; } export function NavButton({ showText = true }: TeamsButtonProps) { const { user } = useLoginQuery(); const { cloudMode } = useConfig(); const { formatMessage, labels } = useMessages(); const { teamId } = useNavigation(); const team = user?.teams?.find(({ id }) => id === teamId); const selectedKeys = new Set([teamId || 'user']); const label = teamId ? team?.name : user.username; const getUrl = (url: string) => { return cloudMode ? `${process.env.cloudUrl}${url}` : url; }; const handleAction = async () => {}; return ( {teamId ? : } {showText && {label}} {showText && ( )} } label={formatMessage(labels.switchAccount)} /> } label={user.username} /> {user?.teams?.map(({ id, name }) => ( }> {name} ))} {user?.teams?.length === 0 && ( Manage teams )} } label={formatMessage(labels.settings)} /> {cloudMode && ( <> } label={formatMessage(labels.documentation)} > } label={formatMessage(labels.support)} /> )} {!cloudMode && user.isAdmin && ( <> } label={formatMessage(labels.admin)} /> )} } label={formatMessage(labels.logout)} /> ); }