Skip to content

Commit 31968c3

Browse files
committed
fix(forms): async and debounced call of transform function
1 parent 7baff72 commit 31968c3

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/forms/helpers/useForm.js

+11-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ export function useForm(initialState, { validations, onChange, transform }) {
99
const [submitAttempted, setSubmitAttempted] = useState(false);
1010
const { getAllKeys: getElementNames, get: getElementRefs, push: registerElementRef } = useArrayValueMap();
1111
const _onChange = useCallback(debounce(onChange, 500), []);
12+
const _transfrom = useCallback(
13+
debounce((name) => {
14+
setFormState((prevFormState) => transform(deepClone(prevFormState), name));
15+
}, 1000),
16+
[setFormState, transform]
17+
);
1218

1319
useEffect(() => {
1420
_onChange(formState);
@@ -28,7 +34,11 @@ export function useForm(initialState, { validations, onChange, transform }) {
2834
}
2935
},
3036
update(name, value) {
31-
setFormState((prevFormState) => transform(nextState(prevFormState, name, value), name));
37+
setFormState((prevFormState) => nextState(prevFormState, name, value), name);
38+
39+
setTimeout(() => {
40+
_transfrom(name);
41+
});
3242

3343
if (validations) {
3444
this.validateForm(nextState(formState, name, value));

0 commit comments

Comments
 (0)