'use client'; import z from 'zod'; import { useEffect } from 'react'; import { useForm, Controller } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { Button } from '@/components/ui/button'; import { Checkbox } from '@/components/ui/checkbox'; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '@/components/ui/form'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { SituacoesEnum } from '@/shared/enums/SituacoesEnum'; import { UserSchema } from '../../schemas/User/UserSchema'; import LoadingButton from '@/shared/components/loadingButton/LoadingButton'; type FormValues = z.infer; interface Props { isOpen: boolean; data: FormValues | null; onClose: (item: null, isFormStatus: boolean) => void; onSave: (data: FormValues) => void; buttonIsLoading: boolean; } export default function UserForm({ isOpen, data, onClose, onSave, buttonIsLoading }: Props) { const form = useForm({ resolver: zodResolver(UserSchema), defaultValues: { user_id: 0, name: '', email: '', password: '', team: '', position: 'string', status: SituacoesEnum.ATIVO, user_id_create: null, user_id_update: null }, }); // Atualiza o formulário quando recebe dados para edição useEffect(() => { if (data) form.reset(data); }, [data, form]); return ( { if (!open) onClose(null, false); }} > {data?.user_id ? 'Editar Usuário' : 'Novo Usuário'} Gerencie os dados do usuário aqui.
{/* Nome */} ( Nome )} /> {/* Email */} ( Email )} /> {/* Senha */} ( Senha )} /> {/* Equipe */} ( Equipe )} /> {/* Status */} (
field.onChange(checked ? 'A' : 'I')} />
)} /> {/* Rodapé */} {/* Campo oculto para o ID */}
); }