import { useState } from 'react'; import { Link, useNavigate, useSearchParams } from 'react-router-dom'; import { useAuth } from '../auth/AuthContext.jsx'; import { useJoinHousehold } from '../api/queries.js'; import { useHouseholdContext } from '../household/HouseholdContext.jsx'; import { useTranslation } from '../i18n/I18nContext.jsx'; import PasswordField from '../components/PasswordField.jsx'; export default function Register() { const { register } = useAuth(); const navigate = useNavigate(); const [params] = useSearchParams(); const inviteCode = params.get('code') || ''; const joinHousehold = useJoinHousehold(); const { switchHousehold } = useHouseholdContext(); const { t, tError } = useTranslation(); const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); async function handleSubmit(e) { e.preventDefault(); setError(''); setLoading(true); try { await register(email, password, name); if (inviteCode) { const result = await joinHousehold.mutateAsync(inviteCode); switchHousehold(result.household.id); navigate('/', { replace: true }); } else { navigate('/onboarding', { replace: true }); } } catch (err) { setError(tError(err)); } finally { setLoading(false); } } return (

{t('common.appName')}

{inviteCode ? t('register.subtitleInvite') : t('register.subtitle')}

setName(e.target.value)} required /> setEmail(e.target.value)} required /> setPassword(e.target.value)} /> {error &&

{error}

}

{t('register.haveAccount')}{' '} {t('register.login')}

); }