From 4605d7fbd8b94db013b0e5058116e421150f2a47 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 9 Oct 2024 12:52:05 -0700 Subject: follows --- .../(app)/[username]/(profile)/+layout.server.ts | 15 ++-- .../(app)/[username]/(profile)/+layout.svelte | 79 ++++++++++++---------- .../[username]/(profile)/follows/+page.svelte | 25 +++++-- src/routes/(app)/[username]/+layout.server.ts | 4 +- 4 files changed, 74 insertions(+), 49 deletions(-) (limited to 'src/routes/(app)') diff --git a/src/routes/(app)/[username]/(profile)/+layout.server.ts b/src/routes/(app)/[username]/(profile)/+layout.server.ts index a508de92..308422b3 100644 --- a/src/routes/(app)/[username]/(profile)/+layout.server.ts +++ b/src/routes/(app)/[username]/(profile)/+layout.server.ts @@ -1,6 +1,8 @@ import { get } from "$lib/utils"; -export async function load({ parent }) { +export async function load({ depends, parent }) { + depends("app:user"); + let { subject, user } = await parent(); subject.follows = []; @@ -12,12 +14,13 @@ export async function load({ parent }) { console.log("problem fetching follows", e); } - try { - subject.followers = await get(`/${subject.pubkey}/followers`); - } catch (e) { - console.log("problem fetching followers", e); - } + // try { + // subject.followers = await get(`/${subject.pubkey}/followers`); + // } catch (e) { + // console.log("problem fetching followers", e); + // } + subject.followers = []; if (user) { user.follows = await get(`/${user.pubkey}/follows?tagsonly=true`); } diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte index 8259507e..eabaeeea 100644 --- a/src/routes/(app)/[username]/(profile)/+layout.svelte +++ b/src/routes/(app)/[username]/(profile)/+layout.svelte @@ -10,18 +10,22 @@ export let data; let { encode, toWords } = bech32m; - let events, user, subject, src, text; - $: ({ events, user, subject, src, rates, text } = data); - $: ({ currency, username: n, display } = subject); + let { events, user, subject, src, rates, text } = data; + let { currency, npub, username: n, display } = subject; + + $: refresh(data); + let refresh = (data) => { + ({ events, user, subject, src, rates, text } = data); + ({ currency, npub, username: n, display } = subject); + }; $: stripped = n.replace(/\s/g, ""); $: username = n.length > 60 ? n.substr(0, 6) : display || stripped; - $: npub = - subject.pubkey && - bech32m.encode("npub", toWords(hexToUint8Array(subject.pubkey)), 180); - $: lnaddr = `${stripped}@${$page.url.host}`; - $: profile = `${$page.url.host}/${stripped}`; + $: lnaddr = subject?.anon + ? subject.lud16 || undefined + : `${stripped}@${$page.url.host}`; + $: profile = `${$page.url.host}/${subject.anon ? npub : stripped}`; let follow = async () => { user.follows.push(["p", subject.pubkey, "wss://nostr.coinos.io", stripped]); @@ -96,37 +100,44 @@ {/if} - - - - - - - - - - - - +
+ +
{#if showDetails}
-
-
{$t("user.lightningAddress")}
-
-
- {lnaddr} -
-
- - - - + {#if lnaddr} +
+
{$t("user.lightningAddress")}
+
+
+ {lnaddr} +
+
+ + + + +
-
+ {/if}
{$t("user.url")}
diff --git a/src/routes/(app)/[username]/(profile)/follows/+page.svelte b/src/routes/(app)/[username]/(profile)/follows/+page.svelte index e4363796..ff0bdb93 100644 --- a/src/routes/(app)/[username]/(profile)/follows/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/follows/+page.svelte @@ -1,13 +1,24 @@ @@ -18,10 +29,10 @@ {$t("user.following")} - {#if browser} - {#if follows.length} + {#if follows.length} + {#if browser} - +
- {data.display_name || ""} - @{data.username} +
{data.display_name || ""}
+
@{data.name}
- {:else} -
No follows
{/if} + {:else} +
No follows
{/if}
diff --git a/src/routes/(app)/[username]/+layout.server.ts b/src/routes/(app)/[username]/+layout.server.ts index 284501a2..1b95bdd0 100644 --- a/src/routes/(app)/[username]/+layout.server.ts +++ b/src/routes/(app)/[username]/+layout.server.ts @@ -9,13 +9,13 @@ export let load = async ({ }) => { depends("app:user"); - try { + try { let subject = await get(`/users/${username}`); let { user } = await parent(); let expires = new Date(); expires.setSeconds(expires.getSeconds() + 380 * 24 * 60 * 60); - cookies.set("username", username, { path: "/", expires }); + cookies.set("username", username, { path: "/", expires }); return { subject, user }; } catch (e) { -- cgit v1.2.3