Crie um formulário shadcn/ui com React Hook Form e Zod, salve com uma server action e mostre os resultados em um data table do shadcn com ordenação, busca e paginação. Demos ao vivo e código para copiar.
Um formulário shadcn/ui combina os componentes Field com o Controller do React Hook Form e um schema Zod passado pelo zodResolver. Um data table do shadcn combina os componentes Table com o TanStack Table para ordenação, busca e páginas. Abaixo, um formulário de reserva adiciona linhas a uma tabela de reservas ao vivo, com o código dos dois.
Pacotes
Envie o formulário com um erro para ver as mensagens, depois reserve uma mesa e veja a reserva aparecer na lista logo abaixo. A prévia usa as cópias das peças do shadcn do nosso site e um state simples para a tabela; o código é a versão completa com shadcn, React Hook Form, Zod e TanStack.
O guia atual de formulários do shadcn/ui monta formulários com Field, FieldLabel e FieldError e o Controller do React Hook Form. Projetos mais antigos usam os wrappers Form e FormField; os dois dependem do React Hook Form, então os formulários existentes continuam funcionando.
Não. Os componentes Table do shadcn são apenas elementos de tabela estilizados. Adicione o TanStack Table quando precisar de ordenação, filtros, paginação ou seleção.
Faça a server action devolver os erros indexados pelo nome do campo e chame form.setError(field, { message }) para cada um. O FieldError os exibe como qualquer outra mensagem de validação.
Sim. No Next.js, chame revalidatePath na server action para que a página que renderiza a tabela busque linhas novas. Em um app só no cliente, adicione a nova linha ao state dos dados ou busque de novo.
Quem faz o quê
O lado do formulário precisa do React Hook Form, do Zod e do resolver; o lado da tabela precisa do TanStack Table. A CLI do shadcn copia as partes da UI.
O Controller conecta cada input. data-invalid no Field estiliza a linha inteira, aria-invalid no input avisa os leitores de tela e o FieldError mostra a mensagem do Zod.
Rode o mesmo schema de novo no servidor. Devolva os erros por campo e coloque-os de volta no formulário com setError.
Os componentes Table do shadcn são elementos de tabela estilizados; o TanStack fornece ordenação, filtros e páginas. O objeto de features e as colunas ficam fora do componente para continuarem estáveis.
Quer ver mais blocos prontos antes? Veja os
Diga o seu nome
Digite um e-mail válido
Pelo menos 1
Ligue para nós para grupos com mais de 12
Use menos de 300 caracteres
Pessoas
Observações
Reservando...
Reservar uma mesa
Horário
Buscar reservas
Nenhum resultado.
Página {p} de {n}
Anterior
Próxima
Comece grátis · Sem cartão de crédito