From cbc2f7a8e89d049a68ff520e6d640753c877bf57 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 22 Jan 2025 15:29:37 -0800 Subject: use nsec if available --- src/lib/nostr.ts | 13 ++++++++++++- src/locales/en.json | 2 +- src/routes/(app)/[username]/(profile)/notes/+page.svelte | 6 ++++-- .../(app)/[username]/(profile)/notes/new/+page.svelte | 2 +- src/routes/(app)/settings/+layout.svelte | 14 +------------- 5 files changed, 19 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/lib/nostr.ts b/src/lib/nostr.ts index 85f1bdaa..a5b2d990 100644 --- a/src/lib/nostr.ts +++ b/src/lib/nostr.ts @@ -8,6 +8,7 @@ import { signer as $signer, } from "$lib/store"; import { post, wait } from "$lib/utils"; +import { bytesToHex } from "@noble/hashes/utils"; import { type EventTemplate, finalizeEvent, @@ -102,7 +103,17 @@ export const encryptNsec = async (nsec: string) => { return nip49encrypt(d, await getPassword()); }; -export const sign = async (event) => { +export const sign = async (event, user) => { + if (user?.nsec && !get($signer)?.ready) { + const sk = await getPrivateKey(user); + + $signer.set({ + method: "nsec", + ready: true, + params: { sk: bytesToHex(sk), pk: getPublicKey(sk) }, + }); + } + eventToSign.set(event); let unsubscribe; const { method, params } = await new Promise((r) => { diff --git a/src/locales/en.json b/src/locales/en.json index 8b07832e..0e2f0077 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,7 +1,7 @@ { "notes": { "contents": "Note contents", - "notFound": "We didn't find any notes" + "notFound": "No notes found" }, "accounts": { "showQR": "Show QR", diff --git a/src/routes/(app)/[username]/(profile)/notes/+page.svelte b/src/routes/(app)/[username]/(profile)/notes/+page.svelte index 00fd9171..eaea9635 100644 --- a/src/routes/(app)/[username]/(profile)/notes/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/notes/+page.svelte @@ -10,6 +10,10 @@
+ {#if !events.length} +
{$t("notes.notFound")}
+ {/if} + {#if user?.id === subject.id} @@ -18,7 +22,5 @@ {/if} {#each events as event, i} - {:else} -
{$t("notes.notFound")}
{/each}
diff --git a/src/routes/(app)/[username]/(profile)/notes/new/+page.svelte b/src/routes/(app)/[username]/(profile)/notes/new/+page.svelte index 8957034d..445890a3 100644 --- a/src/routes/(app)/[username]/(profile)/notes/new/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/notes/new/+page.svelte @@ -20,7 +20,7 @@ tags: [], }; - event = await sign(event); + event = await sign(event, user); await send(event); goto(`/${user.username}/notes`); diff --git a/src/routes/(app)/settings/+layout.svelte b/src/routes/(app)/settings/+layout.svelte index c9897f07..bc0d18f9 100644 --- a/src/routes/(app)/settings/+layout.svelte +++ b/src/routes/(app)/settings/+layout.svelte @@ -119,19 +119,7 @@ }; try { - if (data?.user?.nsec && !$signer?.ready) { - let sk = await getPrivateKey(data.user); - - signer.set({ - method: "nsec", - ready: true, - params: { sk: bytesToHex(sk), pk: getPublicKey(sk) }, - }); - - await tick(); - } - - event = await sign(event); + event = await sign(event, data.user); send(event); } catch (e) { console.log(e); -- cgit v1.2.3