import type { Route } from './+types' import { useState } from 'react' import { useForm } from 'react-hook-form' import { Link } from 'react-router' import { z } from 'zod' import logo from '@/components/logo.svg' import { Button } from '@/components/ui/button' import { Checkbox } from '@/components/ui/checkbox' import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@/components/ui/form' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { isValidCPF } from '@brazilian-utils/brazilian-utils' import { zodResolver } from '@hookform/resolvers/zod' const schema = z.object({ name: z.string().trim().nonempty('Digite seu nome'), email: z.email('Digite seu email'), password: z .string() .nonempty('Digite sua senha') .min(6, 'Deve ter no mínimo 6 caracteres'), cpf: z .string() .nonempty('Digite seu CPF') .refine(isValidCPF, 'Deve ser um CPF válido') }) type Schema = z.infer export function meta({}: Route.MetaArgs) { return [{ title: 'Criar conta · EDUSEG®' }] } export default function Signup({}: Route.ComponentProps) { const [show, setShow] = useState(false) const form = useForm({ resolver: zodResolver(schema) }) const { control, handleSubmit, formState } = form const onSubmit = async (data: Schema) => { console.log(data) } return ( <>
EDUSEG®

Criar conta

Já tem uma conta?{' '} Faça login .

( Nome )} /> ( Email )} /> ( CPF )} /> ( Senha
setShow((x) => !x)} tabIndex={-1} />
)} />

Ao fazer login, você concorda com nossa{' '} política de privacidade .

) }