import { useState } from 'react' import { createFileRoute, Link, redirect, useRouter } from '@tanstack/react-router' import { getCurrentStaffUser } from '#/lib/auth' import { authClient } from '#/lib/auth-client' function ArrowLeftIcon() { return ( ) } export const Route = createFileRoute('/staff/login')({ component: StaffLogin, beforeLoad: async () => { const staffUser = await getCurrentStaffUser() if (staffUser) { throw redirect({ to: '/staff' }) } }, }) function StaffLogin() { const router = useRouter() const [email, setEmail] = useState('') const [password, setPassword] = useState('') const [error, setError] = useState(null) const [isSubmitting, setIsSubmitting] = useState(false) async function handleSubmit(event: React.FormEvent) { event.preventDefault() setError(null) setIsSubmitting(true) const { error: signInError } = await authClient.signIn.email({ email, password }) if (signInError) { setError(signInError.message ?? 'Etwas ist schiefgelaufen') setIsSubmitting(false) return } await router.navigate({ to: '/staff' }) } return ( Zurück zur Startseite Mitarbeiterbereich Anmelden E-Mail setEmail(e.target.value)} autoFocus required /> Passwort setPassword(e.target.value)} required /> {isSubmitting ? 'Wird geprüft …' : 'Anmelden'} {error && {error}} ) }
{error}