diff --git a/app/frontend/src/javascript/components/events/event-form.tsx b/app/frontend/src/javascript/components/events/event-form.tsx index 1013bb0b2..8102db622 100644 --- a/app/frontend/src/javascript/components/events/event-form.tsx +++ b/app/frontend/src/javascript/components/events/event-form.tsx @@ -56,6 +56,7 @@ export const EventForm: React.FC = ({ action, event, onError, on const [isActiveAccounting, setIsActiveAccounting] = useState(false); const [isActiveFamilyAccount, setIsActiveFamilyAccount] = useState(false); const [isAcitvePreRegistration, setIsActivePreRegistration] = useState(event?.pre_registration); + const [submitting, setSubmitting] = useState(false); useEffect(() => { EventCategoryAPI.index() @@ -100,6 +101,8 @@ export const EventForm: React.FC = ({ action, event, onError, on * Callback triggered when the user validates the machine form: handle create or update */ const onSubmit: SubmitHandler = (data: Event) => { + setSubmitting(true); + if (submitting) return; if (data.pre_registration_end_date?.toString() === 'Invalid Date') { data.pre_registration_end_date = null; } @@ -114,7 +117,7 @@ export const EventForm: React.FC = ({ action, event, onError, on EventAPI.create(data).then(res => { onSuccess(t(`app.admin.event_form.${action}_success`)); window.location.href = `/#!/events/${res.id}`; - }).catch(onError); + }).catch(onError).finally(() => setSubmitting(false)); } }; @@ -192,7 +195,7 @@ export const EventForm: React.FC = ({ action, event, onError, on

{t('app.admin.event_form.ACTION_title', { ACTION: action })}

- + {t('app.admin.event_form.save')}