aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/settings/+layout.svelte
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2025-01-09 23:44:40 -0800
committerAdam Soltys <[email protected]>2025-01-09 23:44:40 -0800
commit8588de25f16486b56ef0ad533013bd8cb48ff120 (patch)
tree4c1e39704e2edb332c5fe8c58fb0d81c8154af2b /src/routes/(app)/settings/+layout.svelte
parent2358d1bf39c34a508db6c50f0f6312ee411a8a17 (diff)
downloadcoinos-ui-8588de25f16486b56ef0ad533013bd8cb48ff120.tar.gz
coinos-ui-8588de25f16486b56ef0ad533013bd8cb48ff120.zip
nostr signing
Diffstat (limited to 'src/routes/(app)/settings/+layout.svelte')
-rw-r--r--src/routes/(app)/settings/+layout.svelte28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/routes/(app)/settings/+layout.svelte b/src/routes/(app)/settings/+layout.svelte
index 85e5b0e6..c6cc81c4 100644
--- a/src/routes/(app)/settings/+layout.svelte
+++ b/src/routes/(app)/settings/+layout.svelte
@@ -9,7 +9,7 @@
import Pin from "$comp/Pin.svelte";
import { loading, t } from "$lib/translations";
import { fd, fail, auth, post, sleep, warning, success } from "$lib/utils";
- import { avatar, banner, password, pin, save } from "$lib/store";
+ import { avatar, banner, signer, password, pin, save } from "$lib/store";
import { upload } from "$lib/upload";
import { page } from "$app/stores";
import { sign, send, setNsec } from "$lib/nostr";
@@ -53,10 +53,21 @@
},
});
- if (data.get("newNsec")) {
- await setNsec(user, data.get("newNsec"));
- data.set("nsec", user.nsec);
- data.set("pubkey", user.pubkey);
+ if (!user.pubkey || user.pubkey === prev.pubkey) {
+ data.delete("pubkey");
+ } else {
+ signer.set(
+ user.extension ? { method: "extension", ready: true } : null,
+ );
+ let event = {
+ kind: 1,
+ created_at: Date.now(),
+ content: user.challenge,
+ tags: [],
+ };
+
+ let signedEvent = await sign(event);
+ data.set("event", JSON.stringify(signedEvent));
}
if ($avatar) {
@@ -89,7 +100,7 @@
}
if (
- ["username", "about", "picture"].some(
+ ["username", "about", "picture", "display", "banner"].some(
(a) => user[a] && user[a] !== prev[a],
)
) {
@@ -101,14 +112,17 @@
name: user.username,
about: user.about,
picture: user.picture,
+ banner: user.banner,
+ displayName: user.display,
}),
tags: [],
};
try {
- await sign({ event, user });
+ await sign(event);
await send(event);
} catch (e) {
+ console.log(e);
warning("Nostr profile could not be updated");
}
}