From 2f91fe8572e512697d1097e7c278a0b9f6fabab9 Mon Sep 17 00:00:00 2001 From: dtonon Date: Wed, 25 Mar 2026 19:39:20 +0100 Subject: [PATCH] Make the login persisten between reloads --- src/lib/auth.svelte.ts | 12 ++++++++++++ src/routes/+layout.svelte | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/src/lib/auth.svelte.ts b/src/lib/auth.svelte.ts index 09e8303..38e0f59 100644 --- a/src/lib/auth.svelte.ts +++ b/src/lib/auth.svelte.ts @@ -19,6 +19,8 @@ export const auth = { }, }; +const PUBKEY_KEY = "nostr_pubkey"; + export async function login() { if (!window.nostr) { alert( @@ -28,6 +30,7 @@ export async function login() { } const pubkey = await window.nostr.getPublicKey(); signer = window.nostr; + localStorage.setItem(PUBKEY_KEY, pubkey); const { loadNostrUser } = await import("@nostr/gadgets/metadata"); user = await loadNostrUser(pubkey); } @@ -35,4 +38,13 @@ export async function login() { export function logout() { user = null; signer = null; + localStorage.removeItem(PUBKEY_KEY); +} + +export async function restoreSession() { + const pubkey = localStorage.getItem(PUBKEY_KEY); + if (!pubkey) return; + signer = window.nostr ?? null; + const { loadNostrUser } = await import("@nostr/gadgets/metadata"); + user = await loadNostrUser(pubkey); } diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index cd534a0..6d9f81c 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -5,6 +5,8 @@ import LeftSidebar from "$lib/components/LeftSidebar.svelte"; import ChatSidebar from "$lib/components/ChatSidebar.svelte"; import { page } from "$app/state"; + import { onMount } from "svelte"; + import { restoreSession } from "$lib/auth.svelte"; let { children } = $props(); @@ -12,6 +14,8 @@ const mode: "simple" | "full" = "full"; const chatEnabled = true; + onMount(restoreSession); + let chatExpanded = $state(false); const activeRoom = $derived(page.params.slug ?? "");