Isto valida um formulário de escrow usando Zod, incluindo endereços de carteira, propriedades de alteração de status e índice de marco.
import{isValidWallet}from"@/helpers/valid-data.helper";import{z}from"zod";exportconstformSchema=z.object({contractId:z.string().min(1,"ID do contrato é obrigatório"),milestoneIndex:z.string().min(1,"O índice do marco é obrigatório"),newStatus:z.string().min(1,"Novo status é obrigatório"),serviceProvider:z.string().min(1,{message:"Prestador de serviço é obrigatório.",}).refine((value)=>isValidWallet(value),{message:"O prestador de serviço deve ser uma carteira válida.",}),evidence:z.string().optional(),});
Hook Personalizado
Isso contém toda a lógica do formulário, incluindo validação de esquema, função onSubmit e outros estados e funcionalidades.
Formulário
Este formulário é construído com react hook form. Usamos o hook personalizado e o esquema Zod mencionados anteriormente.