import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@/components/ui/form'; import { useSignup } from '@/modules/auth/hooks/use-auth-hook'; import { zUserSignupDto } from '@/sdk/zod.gen'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { Link } from '@tanstack/react-router'; import { Route as LoginRoute } from '@/routes/auth/login'; import { z } from 'zod'; import { signupFormDefaults } from '@/modules/auth/schemas/form-schemas'; type SignupFormData = z.infer; export function SignupForm() { const { t } = useTranslation(); const { mutate, isPending } = useSignup(); const extendedSchema = zUserSignupDto.extend({ password: z.string().min(6).max(32), }); const form = useForm({ resolver: zodResolver(extendedSchema), defaultValues: signupFormDefaults, }); const onSubmit = (data: SignupFormData) => { mutate({ body: data }); }; return (

{t('auth.signup.title')}

( {t('auth.signup.email')} * )} /> ( {t('auth.signup.password')} * )} />
{t('auth.signup.loginLink')}
); }