From 5c03de53f7802da78e718894dcf45fb55a499d90 Mon Sep 17 00:00:00 2001 From: Hexi <66669483+Hexi1997@users.noreply.github.com> Date: Sun, 15 Mar 2026 15:24:17 +0800 Subject: [PATCH] fix(provider-form): prevent duplicate submissions on rapid button clicks (#1352) Make ProviderForm.handleSubmit async and await onSubmit so react-hook-form's isSubmitting state is tracked. Disable submit buttons in AddProviderDialog and EditProviderDialog while submission is in flight via onSubmittingChange callback. --- src/components/providers/AddProviderDialog.tsx | 4 ++++ src/components/providers/EditProviderDialog.tsx | 3 +++ src/components/providers/forms/ProviderForm.tsx | 15 +++++++++++---- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/components/providers/AddProviderDialog.tsx b/src/components/providers/AddProviderDialog.tsx index f8fc8e5b5..b6e9075a7 100644 --- a/src/components/providers/AddProviderDialog.tsx +++ b/src/components/providers/AddProviderDialog.tsx @@ -48,6 +48,7 @@ export function AddProviderDialog({ const [universalFormOpen, setUniversalFormOpen] = useState(false); const [selectedUniversalPreset, setSelectedUniversalPreset] = useState(null); + const [isFormSubmitting, setIsFormSubmitting] = useState(false); const handleUniversalProviderSave = useCallback( async (provider: UniversalProvider) => { @@ -247,6 +248,7 @@ export function AddProviderDialog({ - + )}