aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-12-31 16:51:50 -0800
committerAdam Soltys <[email protected]>2024-12-31 16:51:50 -0800
commita4d2703c26c36d5d9226a8d8fe848dc5271ad118 (patch)
treea196784c9320eee1451a0b30da3b07500fd30c8e /src
parent62443cf59e0e5b3db94a1873b11eb815cd7829fa (diff)
downloadcoinos-ui-a4d2703c26c36d5d9226a8d8fe848dc5271ad118.tar.gz
coinos-ui-a4d2703c26c36d5d9226a8d8fe848dc5271ad118.zip
nostr settings
Diffstat (limited to 'src')
-rw-r--r--src/components/AppHeader.svelte5
-rw-r--r--src/components/Password.svelte3
-rw-r--r--src/routes/(app)/settings/+layout.svelte39
3 files changed, 25 insertions, 22 deletions
diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte
index feffa46a..29a74a34 100644
--- a/src/components/AppHeader.svelte
+++ b/src/components/AppHeader.svelte
@@ -45,6 +45,11 @@
icon: "ph:paper-plane-right-bold",
label: "Send",
},
+ {
+ href: `/logout`,
+ icon: "ph:sign-out-bold",
+ label: "Logout",
+ },
]);
let opacity = $derived((href) =>
diff --git a/src/components/Password.svelte b/src/components/Password.svelte
index bc32129d..cc350ecd 100644
--- a/src/components/Password.svelte
+++ b/src/components/Password.svelte
@@ -11,12 +11,9 @@
let cancel = () => ($passwordPrompt = false);
let submit = async (e) => {
- console.log("submitting");
e.preventDefault();
try {
- console.log("res?");
let res = await post("/password", { password });
- console.log(res);
$passwordPrompt = false;
$pw = password;
} catch (e) {
diff --git a/src/routes/(app)/settings/+layout.svelte b/src/routes/(app)/settings/+layout.svelte
index cd25635d..a9bf2f82 100644
--- a/src/routes/(app)/settings/+layout.svelte
+++ b/src/routes/(app)/settings/+layout.svelte
@@ -1,6 +1,4 @@
<script>
- import { setContext } from "svelte";
-
import { browser } from "$app/environment";
import { onMount, tick } from "svelte";
import { fly } from "svelte/transition";
@@ -10,13 +8,12 @@
import Spinner from "$comp/Spinner.svelte";
import Pin from "$comp/Pin.svelte";
import { loading, t } from "$lib/translations";
- import { fail, auth, post, sleep, warning, success } from "$lib/utils";
+ import { fd, fail, auth, post, sleep, warning, success } from "$lib/utils";
import { avatar, banner, password, pin, save } from "$lib/store";
import { upload } from "$lib/upload";
import { page } from "$app/stores";
import { sign, send, reEncryptEntropy, setNsec } from "$lib/nostr";
import { invalidateAll } from "$app/navigation";
- import { PUBLIC_COINOS_URL } from "$env/static/public";
let { children, data, form } = $props();
@@ -50,6 +47,11 @@
try {
submitting = true;
let data = new FormData(formElement);
+ let user = await fd({
+ formData() {
+ return data;
+ },
+ });
if (data.get("newNsec")) {
await setNsec(user, data.get("newNsec"));
@@ -75,12 +77,10 @@
await upload($avatar.file, $avatar.type, $avatar.progress, token),
);
- data.set("profile", hash);
+ let url = `${$page.url.origin}/api/public/${hash}.webp`;
+ data.set("picture", url);
- await fetch(`/api/public/${hash}.webp`, {
- cache: "reload",
- mode: "no-cors",
- });
+ await fetch(url, { cache: "reload", mode: "no-cors" });
} catch (e) {
console.log("problem upsubmitting avatar", e);
}
@@ -92,18 +92,19 @@
await upload($banner.file, $banner.type, $banner.progress, token),
);
- data.set("banner", hash);
-
- await fetch(`/api/public/${hash}.webp`, {
- cache: "reload",
- mode: "no-cors",
- });
+ let url = `${$page.url.origin}/api/public/${hash}.webp`;
+ data.set("banner", url);
+ await fetch(url, { cache: "reload", mode: "no-cors" });
} catch (e) {
- console.log("problem upsubmitting banner", e);
+ console.log("problem uploading banner", e);
}
}
- if (["username", "about", "profile"].some((a) => user[a] !== prev[a])) {
+ if (
+ ["username", "about", "picture"].some(
+ (a) => user[a] && user[a] !== prev[a],
+ )
+ ) {
let event = {
pubkey: user.pubkey,
created_at: Math.floor(Date.now() / 1000),
@@ -111,7 +112,7 @@
content: JSON.stringify({
name: user.username,
about: user.about,
- picture: `${$page.url.origin}/public/${user.profile}.webp`,
+ picture: user.picture,
}),
tags: [],
};
@@ -176,7 +177,7 @@
});
</script>
-{#if user.haspin && $pin?.length !== 6}
+{#if user?.haspin && $pin?.length !== 6}
<Pin />
{/if}