Como eu valido um campo de imagem no next?
image: z
.instanceof(FileList)
.transform((list) => list.item(0)),
Tentei deste modo, mas diz que FileList é indefinido pois só existe no ambiente do navegador.
Como eu valido um campo de imagem no next?
image: z
.instanceof(FileList)
.transform((list) => list.item(0)),
Tentei deste modo, mas diz que FileList é indefinido pois só existe no ambiente do navegador.
Oi Jose, tudo bem?
Pelo que entendi, você está tentando validar um campo de imagem com o Next.js e Zod, mas está enfrentando problemas porque o FileList é indefinido fora do ambiente do navegador.
Isso ocorre porque o Next.js é uma estrutura de aplicativo da web baseada em React que é renderizada no servidor. Portanto, o objeto FileList, que é uma API da web fornecida pelos navegadores, não está disponível no ambiente de renderização do servidor.
Uma abordagem possível para contornar isso seria verificar se o objeto FileList está disponível antes de usá-lo. Você pode fazer isso adicionando uma condição para verificar se o tipo 'FileList' existe. Se existir, você pode prosseguir com a validação, caso contrário, você pode retornar um valor padrão ou lançar um erro.
Aqui está um exemplo de como você pode fazer isso:
image: z
.instanceof(typeof FileList !== 'undefined' ? FileList : Object)
.transform((list) => list.item(0)),
Neste exemplo, se FileList estiver disponível, ele será usado para a validação. Se não estiver disponível (ou seja, se estivermos no ambiente do servidor), Object será usado em vez disso. Isso evitará o erro de FileList indefinido.
Por favor, note que essa é apenas uma solução potencial e pode não ser perfeita para o seu caso específico. A melhor solução dependerá dos detalhes específicos do seu aplicativo e dos requisitos de validação.
Espero ter ajudado.
Um abraço e bons estudos.
Muito obrigado, pela resposta!