form-validation

Solid

React Hook Form + Zod integration, multi-step forms, optimistic validation, server-side error mapping, and file upload patterns.

AI & Automation 501 stars 42 forks Updated yesterday MIT

Install

View on GitHub

Quality Score: 91/100

Stars 20%
90
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Form Validation React Hook Form + Zod patterns for robust, accessible forms. ## React Hook Form + Zod Setup ```typescript // Install: npm install react-hook-form zod @hookform/resolvers import { useForm } from 'react-hook-form' import { zodResolver } from '@hookform/resolvers/zod' import { z } from 'zod' // 1. Define schema const TaskSchema = z.object({ title: z.string().min(1, 'Title is required').max(200), description: z.string().max(2000).optional(), priority: z.enum(['low', 'medium', 'high']), dueDate: z.string().date('Invalid date').optional(), }) type TaskFormData = z.infer<typeof TaskSchema> // 2. Use in component export function TaskForm({ onSubmit }: { onSubmit: (data: TaskFormData) => Promise<void> }) { const { register, handleSubmit, formState: { errors, isSubmitting, isDirty }, setError, reset, } = useForm<TaskFormData>({ resolver: zodResolver(TaskSchema), defaultValues: { priority: 'medium' }, }) const submit = handleSubmit(async (data) => { try { await onSubmit(data) reset() } catch (err) { // Map server errors to fields (see Server-Side Error Mapping) setError('title', { message: 'A task with this title already exists' }) } }) return ( <form onSubmit={submit} noValidate> <div> <label htmlFor="title">Title *</label> <input id="title" {...register('title')} aria-invalid={!!errors.title} aria-...

Details

Author
vibeeval
Repository
vibeeval/vibecosystem
Created
2 months ago
Last Updated
yesterday
Language
C#
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category