aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-10-10 10:16:03 -0700
committerAdam Soltys <[email protected]>2024-10-10 12:18:06 -0700
commit34d68f2c8f97f35514ada10aee3207c134846c78 (patch)
treec46f52f2a2fed84dbb4253a4c98ba22e4e94fa9c /src
parentaa5ab97f1b314bd4e7a2358e49572eb1a02baf7b (diff)
downloadcoinos-ui-34d68f2c8f97f35514ada10aee3207c134846c78.tar.gz
coinos-ui-34d68f2c8f97f35514ada10aee3207c134846c78.zip
await data
Diffstat (limited to 'src')
-rw-r--r--src/routes/(app)/[username]/(profile)/+layout.server.ts25
-rw-r--r--src/routes/(app)/[username]/(profile)/+layout.svelte31
-rw-r--r--src/routes/(app)/[username]/(profile)/follows/+page.svelte19
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 @@
<div>
<div class="flex justify-center gap-2">
<a href={`/${subject.pubkey}/follows`} data-sveltekit-preload-data="tap"
- ><b>{si(subject.follows.length)}</b>
+ ><b>{#await follows then f}{si(f.length)}{/await}</b>
<span class="text-secondary">{$t("user.following")}</span></a
>
<a
href={`/${subject.pubkey}/followers`}
data-sveltekit-preload-data="tap"
- ><b>{si(subject.count)}</b>
+ ><b>{#await count then c}{si(c)}{/await}</b>
<span class="text-secondary">{$t("user.followers")}</span></a
>
</div>
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;
</script>
-<svelte:window bind:innerWidth={w} />
-
<div class="px-3 md:px-0 w-full md:w-[400px] mx-auto">
<h1 class="px-3 md:px-0 text-center text-3xl md:text-4xl font-semibold">
{$t("user.following")}
@@ -33,10 +23,7 @@
{#if browser}
<VirtualScroll data={follows} key="pubkey" let:data pageMode={true}>
<a href={`/${data.pubkey}`} data-sveltekit-preload-data="tap">
- <div
- class="flex py-4 text-lg text-secondary"
- :key={data.pubkey}
- >
+ <div class="flex py-4 text-lg text-secondary" :key={data.pubkey}>
<div class="mb-auto mr-2">
<div class="md:hidden">
<Avatar size={12} user={data} disabled={true} />