Skip to content

Commit

Permalink
馃悶 fix #10131 regression on NaN data type (#10132)
Browse files Browse the repository at this point in the history
  • Loading branch information
bluebill1049 committed Mar 18, 2023
1 parent 6f5e69c commit b6b16a7
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 1 deletion.
36 changes: 36 additions & 0 deletions src/__tests__/useForm/formState.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -875,4 +875,40 @@ describe('formState', () => {
});
});
});

it('should return updated value with NaN data type', async () => {
function App() {
const { register, formState } = useForm({
mode: 'onChange',
defaultValues: {
value: '',
},
});

return (
<form>
{formState.errors.value && <p>error</p>}
<input
{...register('value', {
min: 0,
valueAsNumber: true,
validate: (value) => !Number.isNaN(value),
})}
/>
</form>
);
}

render(<App />);

fireEvent.change(screen.getByRole('textbox'), {
target: {
value: '2a',
},
});

await waitFor(() => {
screen.getByText('error');
});
});
});
4 changes: 3 additions & 1 deletion src/logic/createFormControl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,9 @@ export function createFormControl<
)
)[name];

isFieldValueUpdated = fieldValue === get(_formValues, name, fieldValue);
isFieldValueUpdated =
isNaN(fieldValue) ||
fieldValue === get(_formValues, name, fieldValue);

if (isFieldValueUpdated) {
if (error) {
Expand Down

0 comments on commit b6b16a7

Please sign in to comment.