From fdc45858d043ec593eb278736c98157299a04e2b Mon Sep 17 00:00:00 2001 From: Silberengel Date: Sat, 19 Apr 2025 00:47:40 +0200 Subject: [PATCH] Get the login working. --- src/lib/components/Login.svelte | 13 +++++++++++-- src/lib/components/LoginModal.svelte | 17 ++++++++++++++--- src/routes/contact/+page.svelte | 10 +++++++++- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/lib/components/Login.svelte b/src/lib/components/Login.svelte index 1456149..13d9c93 100644 --- a/src/lib/components/Login.svelte +++ b/src/lib/components/Login.svelte @@ -11,6 +11,7 @@ let npub = $state(undefined); let signInFailed = $state(false); + let errorMessage = $state(''); $effect(() => { if ($ndkSignedIn) { @@ -26,6 +27,9 @@ async function handleSignInClick() { try { + signInFailed = false; + errorMessage = ''; + const user = await loginWithExtension(); if (!user) { throw new Error('The NIP-07 extension did not return a user.'); @@ -36,7 +40,7 @@ } catch (e) { console.error(e); signInFailed = true; - // TODO: Show an error message to the user. + errorMessage = e instanceof Error ? e.message : 'Failed to sign in. Please try again.'; } } @@ -52,12 +56,17 @@ placement='bottom' triggeredBy='#avatar' > -
+
+ {#if signInFailed} +
+ {errorMessage} +
+ {/if} showLoginModal = false} + onClose={() => showLoginModal = false} + onLoginSuccess={() => { + // Restore saved form data + if (savedFormData.subject) subject = savedFormData.subject; + if (savedFormData.content) content = savedFormData.content; + + // Submit the issue + submitIssue(); + }} />