From e7720ad5fc760a045e25f4e5fe1e089d22d90eb7 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 14 Jan 2025 15:59:23 -0800 Subject: refactor follows --- .../(app)/[username]/(profile)/+layout.svelte | 46 +++++++++++++++------- .../[username]/(profile)/followers/+page.server.js | 10 +++-- .../[username]/(profile)/followers/+page.svelte | 14 +++---- .../[username]/(profile)/follows/+page.server.js | 8 ++-- .../[username]/(profile)/follows/+page.svelte | 20 ++++------ src/routes/(app)/logout/+page.server.ts | 3 ++ src/routes/(app)/settings/+layout.svelte | 4 +- src/routes/(app)/settings/nostr/+page.svelte | 1 + 8 files changed, 62 insertions(+), 44 deletions(-) (limited to 'src') diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte index a5f336e7..0fc16ead 100644 --- a/src/routes/(app)/[username]/(profile)/+layout.svelte +++ b/src/routes/(app)/[username]/(profile)/+layout.svelte @@ -41,12 +41,11 @@ let list = $state([]); let follow = async () => { list = [...list, subject.pubkey]; - let tags = await get( + let pubkeys = await get( `/api/${user.pubkey}/follows?pubkeysOnly=true&nocache=true`, ); - tags.push(["p", subject.pubkey]); - await update(tags); - invalidate("app:user"); + pubkeys.push(subject.pubkey); + await update(pubkeys); }; let unfollow = async () => { @@ -55,17 +54,14 @@ 1, ); list = list; - let tags = await get( + let pubkeys = await get( `/api/${user.pubkey}/follows?pubkeysOnly=true&nocache=true`, ); - tags.splice( - tags.findIndex((t) => t[1] === subject.pubkey), - 1, - ); - await update(tags); + pubkeys.splice(pubkeys.indexOf(subject.pubkey), 1); + await update(pubkeys); }; - let update = async (tags) => { + let update = async (pubkeys) => { if (!browser) return; let event = { @@ -73,12 +69,13 @@ created_at: Math.floor(Date.now() / 1000), kind: 3, content: "", - tags, + tags: pubkeys.map((p) => ["p", p]), }; try { - await sign(event); - await send(event); + let signed = await sign(event); + send(signed); + invalidate("app:user"); } catch (e) { console.log(e); } @@ -211,6 +208,27 @@ +
+
{$t("user.nostrPubkey")}
+
+
+ {subject.pubkey} +
+
+ + + + +
+
+
{$t("user.nostrPubkey")}
diff --git a/src/routes/(app)/[username]/(profile)/followers/+page.server.js b/src/routes/(app)/[username]/(profile)/followers/+page.server.js index c7d9d67b..309d4707 100644 --- a/src/routes/(app)/[username]/(profile)/followers/+page.server.js +++ b/src/routes/(app)/[username]/(profile)/followers/+page.server.js @@ -1,8 +1,10 @@ import { get } from "$lib/utils"; export async function load({ depends, parent }) { - depends("app:user"); - let { subject } = await parent(); - let followers = get(`/${subject.pubkey}/followers`).catch(() => []); - return { followers }; + depends("app:user"); + const { subject } = await parent(); + console.log("GETTING FOLLOWERS", subject.username); + const followers = await get(`/${subject.pubkey}/followers`); + console.log("FOLLOWERS", followers.length); + return { followers }; } diff --git a/src/routes/(app)/[username]/(profile)/followers/+page.svelte b/src/routes/(app)/[username]/(profile)/followers/+page.svelte index b7ad4948..62f05a0a 100644 --- a/src/routes/(app)/[username]/(profile)/followers/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/followers/+page.svelte @@ -5,7 +5,7 @@ import VirtualScroll from "svelte-virtual-scroll-list"; let { data } = $props(); - let { followers } = data; + let { followers } = $derived(data);
@@ -17,9 +17,9 @@
Loading followers...
{:then followers} {#if followers.length} - + {#snippet children({ data })} -
-
{data.display_name || ""}
-
@{data.name}
+
{data.display || ""}
+
@{data.username}
- {/snippet} - + {/snippet} + {:else}
No followers
{/if} diff --git a/src/routes/(app)/[username]/(profile)/follows/+page.server.js b/src/routes/(app)/[username]/(profile)/follows/+page.server.js index 2a98b316..9fbe37a3 100644 --- a/src/routes/(app)/[username]/(profile)/follows/+page.server.js +++ b/src/routes/(app)/[username]/(profile)/follows/+page.server.js @@ -1,8 +1,8 @@ import { get } from "$lib/utils"; export async function load({ depends, parent }) { - depends("app:user"); - let { subject } = await parent(); - let follows = get(`/${subject.pubkey}/follows`).catch(() => []); - return { follows }; + depends("app:user"); + const { subject } = await parent(); + const follows = get(`/${subject.pubkey}/follows`).catch(() => []); + return { follows }; } diff --git a/src/routes/(app)/[username]/(profile)/follows/+page.svelte b/src/routes/(app)/[username]/(profile)/follows/+page.svelte index ad416500..4e70686a 100644 --- a/src/routes/(app)/[username]/(profile)/follows/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/follows/+page.svelte @@ -1,6 +1,4 @@
@@ -26,9 +20,9 @@ {:then follows} {#if follows.length} {#if browser} - + {#snippet children({ data })} -
-
{data.display_name || ""}
-
@{data.name}
+
{data.display || ""}
+
@{data.username}
- {/snippet} - + {/snippet} + {/if} {:else}
No follows
diff --git a/src/routes/(app)/logout/+page.server.ts b/src/routes/(app)/logout/+page.server.ts index 87ddbb59..1ecc7f87 100644 --- a/src/routes/(app)/logout/+page.server.ts +++ b/src/routes/(app)/logout/+page.server.ts @@ -12,5 +12,8 @@ export async function load({ cookies }) { cookies.set("username", "", opts); cookies.set("token", "", opts); cookies.set("pin", "", opts); + cookies.set("sk", "", opts); + cookies.set("theme", "", opts); + cookies.set("sid", "", opts); redirect(307, `/login?lang=${lang}`); } diff --git a/src/routes/(app)/settings/+layout.svelte b/src/routes/(app)/settings/+layout.svelte index c6cc81c4..a7ff09d0 100644 --- a/src/routes/(app)/settings/+layout.svelte +++ b/src/routes/(app)/settings/+layout.svelte @@ -12,7 +12,7 @@ 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"; + import { sign, send } from "$lib/nostr"; import { invalidateAll } from "$app/navigation"; let { children, data, form } = $props(); @@ -119,7 +119,7 @@ }; try { - await sign(event); + event = await sign(event); await send(event); } catch (e) { console.log(e); diff --git a/src/routes/(app)/settings/nostr/+page.svelte b/src/routes/(app)/settings/nostr/+page.svelte index c5ced9aa..20c18c6f 100644 --- a/src/routes/(app)/settings/nostr/+page.svelte +++ b/src/routes/(app)/settings/nostr/+page.svelte @@ -41,6 +41,7 @@ let extension = $state(); let getPubkey = async () => { + $signer = { method: "extension", ready: true }; extension = true; npub = await window.nostr.getPublicKey(); await tick(); -- cgit v1.2.3