import React from 'react'; import { Location, useLocation, useNavigate } from 'react-router-dom'; import { Button } from '@/components/ui/button'; import AppearanceToggleDropdown from '@/components/appearance-dropdown'; import { useAuth } from '../auth/context'; import { ADMIN_HOME_PATH } from '../constants'; interface LocationState { from?: Location; } export default function LoginPage() { const { status, login } = useAuth(); const location = useLocation(); const navigate = useNavigate(); const searchParams = React.useMemo(() => new URLSearchParams(location.search), [location.search]); const oauthError = searchParams.get('error'); React.useEffect(() => { if (status === 'authenticated') { navigate(ADMIN_HOME_PATH, { replace: true }); } }, [status, navigate]); const redirectTarget = React.useMemo(() => { const state = location.state as LocationState | null; if (state?.from) { const from = state.from; const search = from.search ?? ''; const hash = from.hash ?? ''; return `${from.pathname}${search}${hash}`; } return ADMIN_HOME_PATH; }, [location.state]); return (
Melde dich mit deinem Fotospiel-Account an. Du wirst zur sicheren OAuth-Anmeldung weitergeleitet und danach wieder zur Admin-Oberflaeche gebracht.
{oauthError && (