React Hook Form Versions Save

๐Ÿ“‹ React Hooks for form state management and validation (Web + React Native)

v7.49.0

5 months ago

๐Ÿ“ฎ feat: add reactive errors prop at useForm (#11188)

useForm({
  errors, // server errors
})

๐Ÿ–ฅ๏ธ feat: add react-server bundle (#11162) ๐Ÿ”ฉ chore: upgrade Node.js and pnpm (#11163) ๐Ÿช– feat: add ValidationModeFlags Type (#11144) ๐Ÿž fix #11267 disabled prop does not affect controller validation (#11273) ๐Ÿ”ง refactor(util function): Enhance Consistency in Utility Functions: Standardizing Export, Function Types, and Naming (#11268) โŒจ๏ธ change type structure of UseFormHandleSubmit (#11245) ๐Ÿ“ฎ fix(#11239): Set fields disabled state based on form and field disabled (#11241) ๐Ÿข improved getDirtyFieldsFromDefaultValues type (#11238) ๐Ÿž fix #11229 issue with values not re-render the root form (#11231) ๐Ÿž fix #11218 useFieldArray focus issue with rules prop (#11221) ๐Ÿ”ง chore: improved isObjectType and swap (#11183)

thanks to @kotarella1110, @ssi02014, @thomasdbock, @mildfuzz and @Lennon57

v7.48.2

6 months ago

๐Ÿž #11106 fix disabled prop not update dirty formState (#11143) ๐Ÿž fix controller update with disabled prop from useForm (#11142)

v7.48.1

6 months ago

๐Ÿž fix controller update with disabled prop from useForm

v7.48.0

6 months ago

๐Ÿงฑ feature: disable prop for useForm (#10496)

const App = () => {
  const [disabled, setDisabled] = useState(false);
  const { handleSubmit } = useForm({ disabled });

  return (
    <form
      onSubmit={handleSubmit(async () => {
        setDisabled(true);
        await sleep(100);
        setDisabled(false);
      })}
    / >
  );
}

๐Ÿ˜ตโ€๐Ÿ’ซ fixed typo in useFormContext (#11126) ๐Ÿซก strictly manage constants and improve types (#11101) ๐Ÿž fix #11076 disable toggle issue (#11090) ๐Ÿš€ fix: Solve the issue of race condition with resolver. (#10991) ๐Ÿ“– docs: fix useWatch example syntax error (#11005) ๐Ÿ“ readme arabic version (#10992)

thanks to @Iyadchafroud @domuk-k @mehunk @ssi02014 and @tykhan

v7.47.0

7 months ago

๐Ÿซก allow keepIsSubmitSuccessful flag (#9640)

const { reset } = useForm()

<Form
  onSubmit={() => {
    reset(formValues, {
      keepIsSubmitSuccessful: true,
    });
  }}
/>

๐Ÿฆ‰ fix typo in form.ts (#10978) ๐Ÿคก close #10907 potential fix on unmounted component (#10980) ๐Ÿช– simplify logic for subscription by name (#10947)

thanks to @stefanpl, @kai-dorschner-twinsity & @nitschSB

v7.46.2

7 months ago

๐Ÿž fix implicit type coercion (#10949) ๐Ÿ™„ close #10932 omit disabled prop when not defined (#10937) ๐Ÿ”ง fix controller test is dirty (#10899)

thanks to @samimakicc & @pierluigigiancola

v7.46.1

8 months ago

๐Ÿž fix #10878 return disabled field state (#10879)

thanks to @Moshyfawn

v7.46.0

8 months ago

๐ŸงŸโ€โ™‚๏ธ feat: support disabled prop for useController (#10810)

const [disabled, setDisabled] = useState(false)
useController({
  disabled
})
  • field value will be disabled
  • field value will be omitted

๐Ÿซ– prevent reset argument mutation (#10847) ๐Ÿž fix: add exact option for array name in useWatch. (#10707) ๐Ÿž update isDirty when setting disabled in register (#10805) ๐Ÿงถ feat: trigger passed names to construct resolver options (#10590)

thanks to @selimb @vonagam @jgullstr and @rabbitson87

v7.46.0-next.0

9 months ago

disabled prop

  • new disabled props for useForm
  • allow user to disable the entire form with all associated inputs
useForm({
  disabled: true
})

const App = () => {
  const [disabled, setDisabled] = useState(false);
  const { register, handleSubmit, control } = useForm({
    disabled,
  });

  return (
    <form
      onSubmit={handleSubmit(async () => {
        setDisabled(true);
        await sleep(100);
        setDisabled(false);
      })}
    >
      <input
        type={'checkbox'}
        {...register('checkbox')}
        data-testid={'checkbox'}
      />
      <input type={'radio'} {...register('radio')} data-testid={'radio'} />
      <input type={'range'} {...register('range')} data-testid={'range'} />
      <select {...register('select')} data-testid={'select'} />
      <textarea {...register('textarea')} data-testid={'textarea'} />

      <Controller control={control} render={({ field }) => <input disabled={field.disabled}  />} name="test" />

      <button>Submit</button>
    </form>
  );
}

v7.45.4

9 months ago

๐Ÿž fix #10767 dep issue with replayio (#10768) ๐Ÿž fix #10762 async submit with Form component (#10766) ๐Ÿซ– add test case for issue #10744 to avoid future regressions (#10759)

thanks to @eg-bernardo