diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/nostr.ts | 13 | ||||
| -rw-r--r-- | src/locales/en.json | 2 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/notes/+page.svelte | 6 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/notes/new/+page.svelte | 2 | ||||
| -rw-r--r-- | src/routes/(app)/settings/+layout.svelte | 14 |
5 files changed, 19 insertions, 18 deletions
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 @@ </script> <div class="container px-4 max-w-xl mx-auto space-y-5"> + {#if !events.length} + <div class="text-2xl text-center">{$t("notes.notFound")}</div> + {/if} + {#if user?.id === subject.id} <a href={`/${user.username}/notes/new`} class="btn"> <iconify-icon noobserver icon="ph:note-bold" width="32"></iconify-icon> @@ -18,7 +22,5 @@ {/if} {#each events as event, i} <Event {event} minimal={true} last={i === events.length - 1} {user} /> - {:else} - <div class="text-2xl">{$t("notes.notFound")}</div> {/each} </div> 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); |
