import { Button, Card, Flex, TextInput } from '@mantine/core'; import { useForm, zodResolver } from '@mantine/form'; import { IconArrowRight, IconAt, IconUser } from '@tabler/icons-react'; import { z } from 'zod'; interface CreateAccountStepProps { nextStep: ({ eMail, username }: { username: string; eMail: string }) => void; defaultUsername: string; defaultEmail: string; } export const CreateAccountStep = ({ defaultEmail, defaultUsername, nextStep }: CreateAccountStepProps) => { const form = useForm({ initialValues: { username: defaultUsername, eMail: defaultEmail, }, validateInputOnBlur: true, validateInputOnChange: true, validate: zodResolver(createAccountStepValidationSchema), }); return ( } label="Username" variant="filled" mb="md" withAsterisk {...form.getInputProps('username')} /> } label="E-Mail" variant="filled" mb="md" {...form.getInputProps('eMail')} /> ); }; export const createAccountStepValidationSchema = z.object({ username: z.string().min(1).max(100), eMail: z.string().email().or(z.literal('')), });