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(); + }} />