diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a4577c1..e19b4029 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -328,6 +328,8 @@ importers: specifier: ^5.9.3 version: 5.9.3 + dist: {} + packages: '@ampproject/remapping@2.3.0': diff --git a/src/app/page.tsx b/src/app/page.tsx index 24a27116..6f0033df 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,6 +1,5 @@ 'use client'; import { redirect } from 'next/navigation'; -import { getItem } from '@/lib/storage'; import { useEffect } from 'react'; import { LAST_TEAM_CONFIG } from '@/lib/constants'; import { getItem } from '@/lib/storage'; diff --git a/src/components/input/NavButton.tsx b/src/components/input/NavButton.tsx index 9552ac73..ab77ef06 100644 --- a/src/components/input/NavButton.tsx +++ b/src/components/input/NavButton.tsx @@ -14,6 +14,7 @@ import { Text, } from '@umami/react-zen'; import { ArrowRight } from 'lucide-react'; +import type { Key } from 'react'; import { useConfig, useLoginQuery, @@ -33,7 +34,8 @@ import { Users, } from '@/components/icons'; import { Switch } from '@/components/svg'; -import { DOCS_URL } from '@/lib/constants'; +import { DOCS_URL, LAST_TEAM_CONFIG } from '@/lib/constants'; +import { removeItem } from '@/lib/storage'; export interface TeamsButtonProps { showText?: boolean; @@ -44,7 +46,7 @@ export function NavButton({ showText = true }: TeamsButtonProps) { const { user } = useLoginQuery(); const { cloudMode } = useConfig(); const { formatMessage, labels } = useMessages(); - const { teamId } = useNavigation(); + const { teamId, router } = useNavigation(); const { isMobile } = useMobile(); const team = user?.teams?.find(({ id }) => id === teamId); const selectedKeys = new Set([teamId || 'user']); @@ -54,7 +56,16 @@ export function NavButton({ showText = true }: TeamsButtonProps) { return cloudMode ? `${process.env.cloudUrl}${url}` : url; }; - const handleAction = async () => {}; + const handleAction = async (key: Key) => { + if (key === 'user') { + removeItem(LAST_TEAM_CONFIG); + if (cloudMode) { + window.location.href = '/'; + } else { + router.push('/'); + } + } + }; return ( @@ -84,16 +95,16 @@ export function NavButton({ showText = true }: TeamsButtonProps) { - + } label={formatMessage(labels.switchAccount)} /> - + - + } label={user.username} />