fix double submit

This commit is contained in:
rizrmd 2024-03-17 22:26:22 -07:00
parent 715efab922
commit 9d84f4ad7b
2 changed files with 10 additions and 3 deletions

View File

@ -169,7 +169,6 @@ export const Field: FC<{
onChangeCapture={ onChangeCapture={
typeof on_change === "function" typeof on_change === "function"
? (e) => { ? (e) => {
console.log(e.currentTarget.value);
on_change({ value: e.currentTarget.value }); on_change({ value: e.currentTarget.value });
} }
: undefined : undefined

View File

@ -17,6 +17,7 @@ export const Form: FC<{
const local = useLocal({ const local = useLocal({
el: null as any, el: null as any,
submit_timeout: null as any,
layout: "unknown" as "unknown" | "2-col" | "1-col", layout: "unknown" as "unknown" | "2-col" | "1-col",
}); });
@ -34,7 +35,11 @@ export const Form: FC<{
onSubmit={(e) => { onSubmit={(e) => {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
on_submit({ form: form.hook.getValues(), error: {} });
clearTimeout(local.submit_timeout);
local.submit_timeout = setTimeout(() => {
on_submit({ form: form.hook.getValues(), error: {} });
}, 300);
}} }}
> >
<div <div
@ -77,7 +82,10 @@ export const Form: FC<{
> >
<PassProp <PassProp
submit={() => { submit={() => {
on_submit({ form: form.hook.getValues(), error: {} }); clearTimeout(local.submit_timeout);
local.submit_timeout = setTimeout(() => {
on_submit({ form: form.hook.getValues(), error: {} });
}, 300);
}} }}
> >
{body} {body}