UseReactHookForm
guarahooks/use-react-hook-formFreeHook
Custom wrapper for React Hook Form.
Live preview
live · rendered by the registry
Rendered by guarahooks on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://guarahooks.com/r/use-react-hook-form.jsonSource
1'use client';23import { useCallback, useEffect } from 'react';45import {6 FieldValues,7 SubmitErrorHandler,8 SubmitHandler,9 useForm,10 UseFormProps,11 UseFormReturn,12} from 'react-hook-form';1314/**15 * Extended React Hook Form return type with a simplified onSubmit handler.16 */17export interface UseReactHookFormReturn<T extends FieldValues>18 extends UseFormReturn<T> {19 /**20 * Returns a memoized submit handler that wraps React Hook Form's handleSubmit.21 *22 * @param onValid Function called when the form is valid.23 * @param onInvalid Optional function called on validation errors.24 */25 onSubmit: (26 onValid: SubmitHandler<T>,27 onInvalid?: SubmitErrorHandler<T>,28 ) => (e?: React.BaseSyntheticEvent) => Promise<void>;29}3031/**32 * Custom hook wrapping React Hook Form's useForm, providing a simplified onSubmit handler33 * and optional debug logging of form state changes.34 *35 * @param options React Hook Form options.36 * @returns Form methods and a memoized onSubmit helper.37 */38export function useReactHookForm<T extends FieldValues = FieldValues>(39 options?: UseFormProps<T>,40): UseReactHookFormReturn<T> {41 const methods = useForm<T>(options);42 const { handleSubmit, formState } = methods;4344 const onSubmit = useCallback(45 (onValid: SubmitHandler<T>, onInvalid?: SubmitErrorHandler<T>) =>46 handleSubmit(onValid, onInvalid),47 [handleSubmit],48 );4950 // Debug: Log form state changes in development mode51 useEffect(() => {52 if (process.env.NODE_ENV === 'development') {53 console.debug('[useReactHookForm] formState changed:', formState);54 }55 }, [formState]);5657 return { ...methods, onSubmit };58}
Files it writes
More from guarahooks
All 100 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| UseAbortControlleruse-abort-controller | guarahooks | Hooks | Free | no deps | |
| UseArrayStateuse-array-state | guarahooks | Hooks | Free | no deps | |
| UseAxiosuse-axios | guarahooks | Hooks | Free | no deps | |
| UseBatteryStatususe-battery-status | guarahooks | Hooks | Free | no deps | |
| UseBetterAuthuse-better-auth | guarahooks | Hooks | Free | no deps | |
| UseClickOutsideuse-click-outside | guarahooks | Hooks | Free | no deps | |
| UseConfirmuse-confirm | guarahooks | Hooks | Free | no deps | |
| UseCookieuse-cookie | guarahooks | Hooks | Free | no deps |
