Skip to content

Commit

Permalink
🍄 close react-hook-form#10195 close async defaultValues not load (rea…
Browse files Browse the repository at this point in the history
…ct-hook-form#10203)

* 🍄 close react-hook-form#10195 close async defaultValues not load

* save some bytes

* fix api contract

* pin pnpm to v7
  • Loading branch information
bluebill1049 authored and kylemclean committed Feb 2, 2024
1 parent 8a65d5a commit 8dd25ac
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/automation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: latest
version: 7

- name: Cypress run
uses: cypress-io/github-action@v4
Expand Down
1 change: 1 addition & 0 deletions reports/api-extractor.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ export type Control<TFieldValues extends FieldValues = FieldValues, TContext = a
_reset: UseFormReset<TFieldValues>;
_options: UseFormProps<TFieldValues, TContext>;
_getDirty: GetIsDirty;
_resetDefaultValues: Noop;
_formState: FormState<TFieldValues>;
_updateValid: (shouldUpdateValid?: boolean) => void;
_updateFormState: (formState: Partial<FormState<TFieldValues>>) => void;
Expand Down
5 changes: 3 additions & 2 deletions src/logic/createFormControl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1246,14 +1246,14 @@ export function createFormControl<
};
};

if (isFunction(_options.defaultValues)) {
const _resetDefaultValues = () =>
isFunction(_options.defaultValues) &&
_options.defaultValues().then((values) => {
reset(values, _options.resetOptions);
_subjects.state.next({
isLoading: false,
});
});
}

return {
control: {
Expand All @@ -1268,6 +1268,7 @@ export function createFormControl<
_updateFieldArray,
_getFieldArray,
_reset,
_resetDefaultValues,
_updateFormState,
_subjects,
_proxyFormState,
Expand Down
1 change: 1 addition & 0 deletions src/types/form.ts
Original file line number Diff line number Diff line change
Expand Up @@ -747,6 +747,7 @@ export type Control<
_reset: UseFormReset<TFieldValues>;
_options: UseFormProps<TFieldValues, TContext>;
_getDirty: GetIsDirty;
_resetDefaultValues: Noop;
_formState: FormState<TFieldValues>;
_updateValid: (shouldUpdateValid?: boolean) => void;
_updateFormState: (formState: Partial<FormState<TFieldValues>>) => void;
Expand Down
2 changes: 2 additions & 0 deletions src/useForm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ export function useForm<
React.useEffect(() => {
if (props.values && !deepEqual(props.values, control._defaultValues)) {
control._reset(props.values, control._options.resetOptions);
} else {
control._resetDefaultValues();
}
}, [props.values, control]);

Expand Down

0 comments on commit 8dd25ac

Please sign in to comment.