fix(web): sign up double click (#21349)

This commit is contained in:
Jason Rasmussen 2025-08-27 14:21:34 -04:00 committed by GitHub
parent 76eaee3657
commit 25a94bd117
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -13,6 +13,7 @@
let password = $state(''); let password = $state('');
let confirmPassword = $state(''); let confirmPassword = $state('');
let name = $state(''); let name = $state('');
let loading = $state(false);
let errorMessage = $derived( let errorMessage = $derived(
password === confirmPassword || confirmPassword.length === 0 ? '' : $t('password_does_not_match'), password === confirmPassword || confirmPassword.length === 0 ? '' : $t('password_does_not_match'),
); );
@ -27,10 +28,11 @@
const onSubmit = async (event: Event) => { const onSubmit = async (event: Event) => {
event.preventDefault(); event.preventDefault();
if (!valid) { if (!valid || loading) {
return; return;
} }
loading = true;
errorMessage = ''; errorMessage = '';
try { try {
@ -40,6 +42,8 @@
} catch (error) { } catch (error) {
handleError(error, $t('errors.unable_to_create_admin_account')); handleError(error, $t('errors.unable_to_create_admin_account'));
errorMessage = $t('errors.unable_to_create_admin_account'); errorMessage = $t('errors.unable_to_create_admin_account');
} finally {
loading = false;
} }
}; };
</script> </script>
@ -70,6 +74,8 @@
<Alert color="danger" title={errorMessage} size="medium" class="mt-4" /> <Alert color="danger" title={errorMessage} size="medium" class="mt-4" />
{/if} {/if}
<Button class="mt-4" type="submit" size="giant" shape="round" fullWidth disabled={!valid}>{$t('sign_up')}</Button> <Button class="mt-4" type="submit" size="giant" shape="round" fullWidth disabled={!valid || loading} {loading}
>{$t('sign_up')}</Button
>
</form> </form>
</AuthPageLayout> </AuthPageLayout>