diff --git a/apps/mana/apps/web/src/routes/(auth)/login/+page.svelte b/apps/mana/apps/web/src/routes/(auth)/login/+page.svelte index 0dc09aa66..2031d4863 100644 --- a/apps/mana/apps/web/src/routes/(auth)/login/+page.svelte +++ b/apps/mana/apps/web/src/routes/(auth)/login/+page.svelte @@ -8,8 +8,11 @@ import AppSlider from '$lib/components/AppSlider.svelte'; import LanguageSelector from '$lib/components/LanguageSelector.svelte'; import { authStore } from '$lib/stores/auth.svelte'; + import { theme } from '$lib/stores/theme'; import { APP_VERSION, BUILD_TIME } from '$lib/version'; + const isDark = $derived(theme.isDark); + // Get translations based on current locale const translations = $derived(getLoginTranslations($locale || 'de')); @@ -46,6 +49,7 @@ {translations} {verified} {initialEmail} + {isDark} version={APP_VERSION} buildTime={BUILD_TIME} > diff --git a/apps/mana/apps/web/src/routes/(auth)/register/+page.svelte b/apps/mana/apps/web/src/routes/(auth)/register/+page.svelte index 54720c898..07f46835f 100644 --- a/apps/mana/apps/web/src/routes/(auth)/register/+page.svelte +++ b/apps/mana/apps/web/src/routes/(auth)/register/+page.svelte @@ -14,7 +14,16 @@ async function handleSignUp(email: string, password: string) { const result = await authStore.signUp(email, password); - if (result.success) trackGuestConversion(); + if (result.success) { + // Tracking must never block the success redirect. + queueMicrotask(() => { + try { + trackGuestConversion(); + } catch { + /* swallow tracking errors */ + } + }); + } return result; } @@ -33,7 +42,6 @@ primaryColor="#6366f1" onSignUp={handleSignUp} onResendVerification={handleResendVerification} - baseSignupCredits={25} {goto} successRedirect="/" loginPath="/login" diff --git a/packages/shared-auth-ui/src/pages/LoginPage.svelte b/packages/shared-auth-ui/src/pages/LoginPage.svelte index 58ddb4526..4a89cb408 100644 --- a/packages/shared-auth-ui/src/pages/LoginPage.svelte +++ b/packages/shared-auth-ui/src/pages/LoginPage.svelte @@ -1,7 +1,24 @@ @@ -428,7 +475,7 @@ + +{/snippet} +
- - - {#if headerControls} -
+
{@render headerControls()}
{/if} @@ -471,13 +520,12 @@
- +

{appName}

@@ -508,7 +556,7 @@

{useBackupCode ? t.twoFactorBackupSubtitle : t.twoFactorSubtitle}

@@ -606,23 +654,8 @@ {t.twoFactorBackToLogin} {:else} - {#if showVerifiedBanner} -
- -

{t.emailVerified}

- -
+ {#if showVerifiedBanner && t.emailVerified} + {@render successBanner(t.emailVerified, () => (showVerifiedBanner = false))} {/if}
@@ -634,63 +667,17 @@

{t.subtitle}

- {#if passkeyAvailable && onSignInWithPasskey} - -
- {t.orDivider} -
- {/if} - - {#if verificationEmailSent} -
- -

{t.verificationEmailSent}

- -
+ {#if verificationEmailSent && t.verificationEmailSent} + {@render successBanner( + t.verificationEmailSent, + () => (verificationEmailSent = false) + )} {/if} {#if isLockedOut} @@ -826,19 +813,8 @@
- -
- + +
+ {#if passkeyAvailable && onSignInWithPasskey} +
+ {t.orDivider} +
+ + {/if} + {#if onSendMagicLink} {#if magicLinkSent} -
- -

{t.magicLinkSent?.replace('{email}', email)}

- -
+ {@render successBanner( + t.magicLinkSent?.replace('{email}', email) ?? '', + () => (magicLinkSent = false) + )} {:else}