diff --git a/web/src/routes/auth/register/+page.svelte b/web/src/routes/auth/register/+page.svelte
index 4ec1b9718e..3eb046e80f 100644
--- a/web/src/routes/auth/register/+page.svelte
+++ b/web/src/routes/auth/register/+page.svelte
@@ -13,6 +13,7 @@
let password = $state('');
let confirmPassword = $state('');
let name = $state('');
+ let loading = $state(false);
let errorMessage = $derived(
password === confirmPassword || confirmPassword.length === 0 ? '' : $t('password_does_not_match'),
);
@@ -27,10 +28,11 @@
const onSubmit = async (event: Event) => {
event.preventDefault();
- if (!valid) {
+ if (!valid || loading) {
return;
}
+ loading = true;
errorMessage = '';
try {
@@ -40,6 +42,8 @@
} catch (error) {
handleError(error, $t('errors.unable_to_create_admin_account'));
errorMessage = $t('errors.unable_to_create_admin_account');
+ } finally {
+ loading = false;
}
};
@@ -70,6 +74,8 @@
{/if}
-
+