import { useEffect } from 'react'; import { useNavigate, useParams } from '@tanstack/react-router'; import { Paper, Text, Title, Stack, Loader, Flex } from '@pikku/mantine/core'; import { useI18n } from '@/context/i18n-provider'; import { useMutation } from '@tanstack/react-query'; import { signOut } from '@/lib/auth'; import { asI18n } from '@pikku/react'; export default function LogoutPage() { const t = useI18n(); const navigate = useNavigate(); const { lang } = useParams({ strict: false }) as { lang?: string } const logout = useMutation({ mutationFn: async () => { await signOut() } }) useEffect(() => { const performLogout = async () => { await new Promise((resolve) => setTimeout(resolve, 3000)) await logout.mutateAsync() navigate({ to: lang ? `/${lang}` : '/', replace: true }) } void performLogout() }, [lang, navigate]) return ( {t('logout.title')} {logout.isPending ? ( <> {t('logout.loggingout')} ) : logout.isError ? ( {asI18n(`${t('logout.error')}: ${logout.error?.message || 'Unknown error'}`)} ) : logout.isSuccess ? ( {t('logout.success')} ) : null} ); }