Isto valida um formulário de custódia usando Zod, incluindo endereços de carteira e fundos das entidades.
import{isValidWallet}from"@/helpers/valid-data.helper";import{z}from"zod";exportconstformSchema=z.object({contractId:z.string().min(1,"ID do contrato é obrigatório"),disputeResolver:z.string().min(1,{message:"Resolutor de disputas é obrigatório.",}).refine((value)=>isValidWallet(value),{message:"O resolutor de disputas deve ser uma carteira válida.",}),approverFunds:z.string().min(1,"Fundos do aprovador são obrigatórios"),receiverFunds:z.string().min(1,"Fundos do recebedor são obrigatórios"),});
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.