import React from 'react'; import { useEffect } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { Card } from '@tamagui/card'; import { YStack } from '@tamagui/stacks'; import { SizableText as Text } from '@tamagui/text'; import { Spinner } from 'tamagui'; import { ADMIN_LOGIN_PATH } from '../constants'; import { useAdminTheme } from './theme'; import { useDocumentTitle } from './hooks/useDocumentTitle'; export default function LoginStartPage(): React.ReactElement { const location = useLocation(); const navigate = useNavigate(); const { t } = useTranslation('auth'); const { textStrong, muted, border, surface, shadow, appBackground } = useAdminTheme(); const safeAreaStyle: React.CSSProperties = { paddingTop: 'calc(env(safe-area-inset-top, 0px) + 16px)', paddingBottom: 'calc(env(safe-area-inset-bottom, 0px) + 16px)', }; useDocumentTitle(t('redirecting', 'Redirecting to login …')); useEffect(() => { const params = new URLSearchParams(location.search); const returnTo = params.get('return_to'); const target = new URL(ADMIN_LOGIN_PATH, window.location.origin); if (returnTo) { target.searchParams.set('return_to', returnTo); } navigate(`${target.pathname}${target.search}`, { replace: true }); }, [location.search, navigate]); return ( {t('redirecting', 'Redirecting to login …')} {t('redirectingHint', 'One moment, preparing the login screen.')} ); }