import { Button, DialogTrigger, Icon, Menu, MenuItem, MenuSection, MenuSeparator, Popover, Row, Text, } from '@umami/react-zen'; import { ArrowRight } from 'lucide-react'; import type { Key } from 'react'; import { IconLabel } from '@/components/common/IconLabel'; import { useLoginQuery, useMessages, useMobile, useNavigation } from '@/components/hooks'; import { ChevronRight, User, Users } from '@/components/icons'; import { LAST_TEAM_CONFIG } from '@/lib/constants'; import { removeItem } from '@/lib/storage'; export function TeamsButton() { const { user } = useLoginQuery(); const { t, labels } = useMessages(); const { teamId, router } = useNavigation(); const { isPhone } = useMobile(); const team = user?.teams?.find(({ id }) => id === teamId); const selectedKeys = new Set([teamId || 'user']); const label = teamId ? team?.name : user.username; const cloudMode = !!process.env.cloudMode; const getUrl = (url: string) => { return cloudMode ? `${process.env.cloudUrl}${url}` : url; }; const handleNavigate = (url: string) => { if (cloudMode) { window.location.href = url; } else { router.push(url); } }; const handleAction = async (key: Key) => { if (key === 'user') { removeItem(LAST_TEAM_CONFIG); if (cloudMode) { window.location.href = '/'; } else { router.push('/'); } } }; return ( } label={user.username} /> {user?.teams?.map(({ id, name }) => ( handleNavigate(getUrl(`/teams/${id}`))}> }> {name} ))} Manage teams ); }