From 34d68f2c8f97f35514ada10aee3207c134846c78 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 10 Oct 2024 10:16:03 -0700 Subject: await data --- .../(app)/[username]/(profile)/+layout.server.ts | 25 ++++------------- .../(app)/[username]/(profile)/+layout.svelte | 31 +++++++++++++++------- .../[username]/(profile)/follows/+page.svelte | 19 +++---------- 3 files changed, 30 insertions(+), 45 deletions(-) diff --git a/src/routes/(app)/[username]/(profile)/+layout.server.ts b/src/routes/(app)/[username]/(profile)/+layout.server.ts index 14580694..bf499fb1 100644 --- a/src/routes/(app)/[username]/(profile)/+layout.server.ts +++ b/src/routes/(app)/[username]/(profile)/+layout.server.ts @@ -5,25 +5,10 @@ export async function load({ depends, parent }) { let { subject, user } = await parent(); - subject.follows = []; - subject.followers = []; + let count = get(`/${subject.pubkey}/count`).catch(() => 0); + let follows = get(`/${subject.pubkey}/follows`).catch(() => []); + let followers = get(`/${subject.pubkey}/followers`).catch(() => []); + let followList = get(`/${user.pubkey}/follows?tagsonly=true`).catch(() => []); - try { - subject.follows = await get(`/${subject.pubkey}/follows`); - } catch (e) { - console.log("problem fetching follows", 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`); - } - - return { subject, user }; + return { count, follows, followers, followList }; } diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte index 550b43cf..02eaa7ad 100644 --- a/src/routes/(app)/[username]/(profile)/+layout.svelte +++ b/src/routes/(app)/[username]/(profile)/+layout.svelte @@ -13,7 +13,18 @@ let { encode, toWords } = bech32m; - let { events, user, subject, src, rates, text } = data; + let { + events, + user, + subject, + src, + rates, + text, + count, + follows, + followers, + followList, + } = data; let { currency, npub, username: n, display } = subject; $: refresh(data); @@ -30,8 +41,7 @@ $: profile = `${$page.url.host}/${subject.anon ? npub : stripped}`; let follow = async () => { - user.follows.push(subject.pubkey); - user.follows = user.follows; + followList = [...followList, subject.pubkey]; let tags = await get(`/api/${user.pubkey}/follows?tagsonly=true`); tags.push(["p", subject.pubkey]); await update(tags); @@ -39,11 +49,11 @@ }; let unfollow = async () => { - user.follows.splice( - user.follows.findIndex((t) => t[1] === subject.pubkey), + followList.splice( + followList.findIndex((t) => t[1] === subject.pubkey), 1 ); - user.follows = user.follows; + followList = followList; let tags = await get(`/api/${user.pubkey}/follows?tagsonly=true`); tags.splice( tags.findIndex((t) => t[1] === subject.pubkey), @@ -71,7 +81,10 @@ } }; - $: following = !!user?.follows.find((t) => t.includes(subject.pubkey)); + let following; + followList.then( + (l) => (following = l.some((t) => t.includes(subject.pubkey))) + ); let showBio; let toggleBio = () => (showBio = !showBio); @@ -127,13 +140,13 @@
diff --git a/src/routes/(app)/[username]/(profile)/follows/+page.svelte b/src/routes/(app)/[username]/(profile)/follows/+page.svelte index 0281add9..b1975544 100644 --- a/src/routes/(app)/[username]/(profile)/follows/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/follows/+page.svelte @@ -8,22 +8,12 @@ export let data; - let { - subject: { follows }, - } = data; - + let { follows } = data; $: refresh(data); - let refresh = (data) => { - ({ - subject: { follows }, - } = data); - }; + let refresh = (data) => ({ follows } = data); - let w; - -

{$t("user.following")} @@ -33,10 +23,7 @@ {#if browser} -
+
-- cgit v1.2.3