import type { Route } from './+types' import { isValidCPF } from '@brazilian-utils/brazilian-utils' import { zodResolver } from '@hookform/resolvers/zod' import { PatternFormat } from 'react-number-format' import { Link, useOutletContext } from 'react-router' import { z } from 'zod' import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@/components/ui/form' import { Input } from '@/components/ui/input' import { Spinner } from '@/components/ui/spinner' import type { User } from '@/routes/_.$orgid.users.$id/route' import { useForm } from 'react-hook-form' const formSchema = z.object({ name: z.string().trim().nonempty('Digite seu nome'), email: z.email(), cpf: z .string('CPF obrigatório') .refine(isValidCPF, { message: 'CPF inválido' }) }) export default function Route() { const { user } = useOutletContext() as { user: User } const form = useForm({ defaultValues: user, resolver: zodResolver(formSchema) }) const { handleSubmit, control, formState } = form const onSubmit = async (data: z.infer) => { console.log(data) } return (
Editar colaborador Configurar as informações gerais para este colaborador ( Nome )} /> ( Email Para gerenciar os emails ou trocar o email principal, use as{' '} configurações de emails )} /> ( CPF { onChange(value) }} {...props} /> )} />
) }