{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-react-hook-form",
  "title": "UseReactHookForm",
  "description": "Custom wrapper for React Hook Form.",
  "files": [
    {
      "path": "registry/hooks/use-react-hook-form.tsx",
      "content": "'use client';\n\nimport { useCallback, useEffect } from 'react';\n\nimport {\n  FieldValues,\n  SubmitErrorHandler,\n  SubmitHandler,\n  useForm,\n  UseFormProps,\n  UseFormReturn,\n} from 'react-hook-form';\n\n/**\n * Extended React Hook Form return type with a simplified onSubmit handler.\n */\nexport interface UseReactHookFormReturn<T extends FieldValues>\n  extends UseFormReturn<T> {\n  /**\n   * Returns a memoized submit handler that wraps React Hook Form's handleSubmit.\n   *\n   * @param onValid Function called when the form is valid.\n   * @param onInvalid Optional function called on validation errors.\n   */\n  onSubmit: (\n    onValid: SubmitHandler<T>,\n    onInvalid?: SubmitErrorHandler<T>,\n  ) => (e?: React.BaseSyntheticEvent) => Promise<void>;\n}\n\n/**\n * Custom hook wrapping React Hook Form's useForm, providing a simplified onSubmit handler\n * and optional debug logging of form state changes.\n *\n * @param options React Hook Form options.\n * @returns Form methods and a memoized onSubmit helper.\n */\nexport function useReactHookForm<T extends FieldValues = FieldValues>(\n  options?: UseFormProps<T>,\n): UseReactHookFormReturn<T> {\n  const methods = useForm<T>(options);\n  const { handleSubmit, formState } = methods;\n\n  const onSubmit = useCallback(\n    (onValid: SubmitHandler<T>, onInvalid?: SubmitErrorHandler<T>) =>\n      handleSubmit(onValid, onInvalid),\n    [handleSubmit],\n  );\n\n  // Debug: Log form state changes in development mode\n  useEffect(() => {\n    if (process.env.NODE_ENV === 'development') {\n      console.debug('[useReactHookForm] formState changed:', formState);\n    }\n  }, [formState]);\n\n  return { ...methods, onSubmit };\n}\n",
      "type": "registry:hook",
      "target": "hooks/guarahooks/use-react-hook-form.tsx"
    }
  ],
  "categories": [
    "forms"
  ],
  "type": "registry:hook"
}