{"version":3,"sources":["../../src/useForm/useForm.ts"],"names":["zodResolver","defaultUseForm","useForm","options","onSubmit","nativeSubmit","resetOnSubmit","resolver","omitResetState","defaultValues","mode","context","criteriaMode","shouldFocusError","shouldUnregister","reValidateMode","customResolver","formMethods","customSubmit","data","e","__async","onSubmitHandler","__spreadProps","__spreadValues","useForm_default"],"mappings":"wDAAA,OAAS,eAAAA,MAAmB,0BAC5B,OAAS,WAAWC,MAAyD,kBAG7E,MAAMC,EACJC,GACuB,CACvB,KAAM,CACJ,SAAAC,EACA,aAAAC,EACA,cAAAC,EACA,SAAAC,EACA,eAAAC,EACA,cAAAC,EACA,KAAAC,EACA,QAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,eAAAC,EAAiB,UACnB,EAAIZ,EAEEa,EAAiBT,EAAWP,EAAYO,CAAQ,EAAI,OAEpDU,EAAchB,EAAkB,CACpC,cAAAQ,EACA,KAAAC,EACA,QAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,SAAUC,CACZ,CAAC,EAEKE,EAA4C,CAAOC,EAAMC,IAAMC,EAAA,wBACnED,GAAA,MAAAA,EAAG,iBAECd,GAAmBW,EAAY,UAAU,QAC3CA,EAAY,MAAMR,EAAmCD,CAAc,EAGjEJ,EACF,MAAMA,EAASe,EAAMF,EAAaG,CAAC,EAC1Bf,GACTA,EAAac,EAAMC,CAAC,CAExB,GAEME,EAAkBL,EAAY,aAAaC,CAAY,EAE7D,OAAOK,EAAAC,EAAA,GAAKP,GAAL,CAAkB,SAAUK,CAAgB,EACrD,EAEA,IAAOG,EAAQvB","sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod';\nimport { useForm as defaultUseForm, type DefaultValues, type Resolver } from 'react-hook-form';\nimport type { FieldValues, UseFormParams, UseFormResponse } from './types';\n\nconst useForm = <T extends FieldValues = FieldValues>(\n  options: UseFormParams<T>\n): UseFormResponse<T> => {\n  const {\n    onSubmit,\n    nativeSubmit,\n    resetOnSubmit,\n    resolver,\n    omitResetState,\n    defaultValues,\n    mode,\n    context,\n    criteriaMode,\n    shouldFocusError,\n    shouldUnregister,\n    reValidateMode = 'onChange'\n  } = options;\n\n  const customResolver = resolver ? zodResolver(resolver) : undefined;\n\n  const formMethods = defaultUseForm<T>({\n    defaultValues,\n    mode,\n    context,\n    criteriaMode,\n    shouldFocusError,\n    shouldUnregister,\n    reValidateMode,\n    resolver: customResolver as Resolver<T>\n  });\n\n  const customSubmit: typeof options.nativeSubmit = async (data, e) => {\n    e?.preventDefault();\n\n    if (resetOnSubmit && !!formMethods.formState.errors) {\n      formMethods.reset(defaultValues as DefaultValues<T>, omitResetState);\n    }\n\n    if (onSubmit) {\n      await onSubmit(data, formMethods, e);\n    } else if (nativeSubmit) {\n      nativeSubmit(data, e);\n    }\n  };\n\n  const onSubmitHandler = formMethods.handleSubmit(customSubmit);\n\n  return { ...formMethods, onSubmit: onSubmitHandler };\n};\n\nexport default useForm;\n"]}