aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/Feed.svelte79
-rw-r--r--src/hooks.server.js3
-rw-r--r--src/routes/(app)/[username]/(profile)/+layout.server.js14
-rw-r--r--src/routes/(app)/[username]/(profile)/+layout.svelte6
-rw-r--r--src/routes/(app)/[username]/(profile)/+page.svelte4
-rw-r--r--src/routes/(app)/[username]/(profile)/followers/+page.server.js10
-rw-r--r--src/routes/(app)/[username]/(profile)/followers/+page.svelte5
-rw-r--r--src/routes/(app)/[username]/(profile)/follows/+page.server.js11
-rw-r--r--src/routes/(app)/[username]/(profile)/follows/+page.svelte2
9 files changed, 67 insertions, 67 deletions
diff --git a/src/components/Feed.svelte b/src/components/Feed.svelte
index 85905eac..e16536ad 100644
--- a/src/components/Feed.svelte
+++ b/src/components/Feed.svelte
@@ -8,7 +8,7 @@
import { sign, send } from '$lib/nostr';
export let events;
- export let user;
+ export let user = undefined;
let message;
@@ -25,9 +25,7 @@
};
await sign({ event, user });
- console.log("signed")
await send(event);
- console.log("sent")
event.user = user;
event.seen = event.created_at;
@@ -66,47 +64,50 @@
<svelte:window bind:innerWidth={w} />
-<form on:submit|preventDefault={submit} class="flex justify-center gap-4 max-w-2xl mx-auto">
- <div class="grow">
- <input
- name="message"
- bind:value={message}
- placeholder="What's happening?"
- class="my-5 mx-auto"
- />
- </div>
- <button class="rounded-full border py-4 px-5 font-bold hover:opacity-80 w-40 my-5">Post</button>
-</form>
+{#if user}
+ <form on:submit|preventDefault={submit} class="flex justify-center gap-4 max-w-2xl mx-auto">
+ <div class="grow">
+ <input
+ name="message"
+ bind:value={message}
+ placeholder="What's happening?"
+ class="my-5 mx-auto"
+ />
+ </div>
+ <button class="rounded-full border py-4 px-5 font-bold hover:opacity-80 w-40 my-5">Post</button>
+ </form>
+{/if}
{#if browser}
- {#if sorted.length}
- <VirtualScroll data={sorted} key="id" let:data pageMode={true} estimateSize={200}>
- <div class="flex border-b py-4 text-sm lg:text-lg text-secondary" :key={data.id}>
- <a href={`/${data.user.anon ? data.user.pubkey : data.user.username}`}>
- <div class="mb-auto mr-2">
- <div class="md:hidden">
- <Avatar size={12} user={data.user} disabled={true} />
+ {#if sorted.length}
+ <VirtualScroll data={sorted} key="id" let:data pageMode={true} estimateSize={200}>
+ <div class="flex border-b py-4 text-sm lg:text-lg text-secondary" :key={data.id}>
+ <a href={`/${data.user.anon ? data.user.pubkey : data.user.username}`}>
+ <div class="mb-auto mr-2">
+ <div class="md:hidden">
+ <Avatar size={12} user={data.user} disabled={true} />
+ </div>
+ <div class="hidden md:block">
+ <Avatar size={20} user={data.user} disabled={true} />
+ </div>
</div>
- <div class="hidden md:block">
- <Avatar size={20} user={data.user} disabled={true} />
- </div>
- </div>
- </a>
+ </a>
- <div class="grow" style={`max-width: ${w - 100}px`}>
- <div class="w-full flex pb-1 text-black">
- <div>
- {data.user.display_name || ''} <span class="text-secondary">@{data.user.username}</span>
+ <div class="grow" style={`max-width: ${w - 100}px`}>
+ <div class="w-full flex pb-1 text-black">
+ <div>
+ {data.user.display_name || ''}
+ <span class="text-secondary">@{data.user.username}</span>
+ </div>
+ <div class="text-secondary">&nbsp;{distance(data.seen)}</div>
+ </div>
+ <div class="break-words">
+ {data.content}
</div>
- <div class="text-secondary">&nbsp;{distance(data.seen)}</div>
- </div>
- <div class="break-words">
- {data.content}
</div>
</div>
- </div>
- </VirtualScroll>
- {:else}
- <div>Nothing here yet</div>
- {/if}
+ </VirtualScroll>
+ {:else}
+ <div>Nothing here yet</div>
+ {/if}
{/if}
diff --git a/src/hooks.server.js b/src/hooks.server.js
index 4107ec86..98545221 100644
--- a/src/hooks.server.js
+++ b/src/hooks.server.js
@@ -1,8 +1,11 @@
import { auth, get, protectedRoutes } from '$lib/utils';
+let users = {};
+
export async function handle({ event, resolve }) {
let token = event.cookies.get('token');
let {
+ cookies,
params,
request,
url: { pathname, origin }
diff --git a/src/routes/(app)/[username]/(profile)/+layout.server.js b/src/routes/(app)/[username]/(profile)/+layout.server.js
new file mode 100644
index 00000000..0c996dc3
--- /dev/null
+++ b/src/routes/(app)/[username]/(profile)/+layout.server.js
@@ -0,0 +1,14 @@
+import { get } from '$lib/utils';
+
+export async function load({ parent }) {
+ let { subject, user } = await parent();
+
+ subject.follows = await get(`/${subject.pubkey}/follows`);
+ subject.followers = await get(`/${subject.pubkey}/followers`);
+
+ if (user) {
+ user.follows = await get(`/${user.pubkey}/follows?tagsonly=true`);
+ }
+
+ return { subject, user }
+}
diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte
index a99828b6..1bbbd5f7 100644
--- a/src/routes/(app)/[username]/(profile)/+layout.svelte
+++ b/src/routes/(app)/[username]/(profile)/+layout.svelte
@@ -32,13 +32,13 @@
tags: user.follows
};
- user.follows = user.follows;
-
await sign({ event, user });
await send(event);
+
+ user.follows = user.follows;
};
- $: following = user?.follows.find((t) => t.includes(subject.pubkey));
+ $: following = !!user?.follows.find((t) => t.includes(subject.pubkey));
</script>
<div class="container mx-auto w-full px-4 mb-4 flex flex-wrap md:flex-nowrap">
diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte
index 1126f335..3d4d1fb6 100644
--- a/src/routes/(app)/[username]/(profile)/+page.svelte
+++ b/src/routes/(app)/[username]/(profile)/+page.svelte
@@ -3,7 +3,7 @@
import { t } from '$lib/translations';
export let data;
- let { events, user } = data;
+ let { events, subject, user } = data;
</script>
-<Feed {events} {user} />
+<Feed {events} user={subject.username === user.username && user} />
diff --git a/src/routes/(app)/[username]/(profile)/followers/+page.server.js b/src/routes/(app)/[username]/(profile)/followers/+page.server.js
deleted file mode 100644
index a05d324d..00000000
--- a/src/routes/(app)/[username]/(profile)/followers/+page.server.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { get } from '$lib/utils';
-
-export async function load({ params, parent, url }) {
- let { subject } = await parent();
- let { pubkey } = subject;
-
- let followers = await get(`/${pubkey}/followers`);
-
- return { followers };
-}
diff --git a/src/routes/(app)/[username]/(profile)/followers/+page.svelte b/src/routes/(app)/[username]/(profile)/followers/+page.svelte
index d1e06ea8..185c37f6 100644
--- a/src/routes/(app)/[username]/(profile)/followers/+page.svelte
+++ b/src/routes/(app)/[username]/(profile)/followers/+page.svelte
@@ -4,7 +4,10 @@
import VirtualScroll from 'svelte-virtual-scroll-list';
export let data;
- let { followers } = data;
+ let {
+ subject: { followers }
+ } = data;
+
let w;
</script>
diff --git a/src/routes/(app)/[username]/(profile)/follows/+page.server.js b/src/routes/(app)/[username]/(profile)/follows/+page.server.js
deleted file mode 100644
index 60b95636..00000000
--- a/src/routes/(app)/[username]/(profile)/follows/+page.server.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { get } from '$lib/utils';
-
-export async function load({ params, parent, url }) {
- let { subject } = await parent();
- let { pubkey } = subject;
-
- let follows = await get(`/${pubkey}/follows`);
-
- console.log('GOT', follows);
- return { follows };
-}
diff --git a/src/routes/(app)/[username]/(profile)/follows/+page.svelte b/src/routes/(app)/[username]/(profile)/follows/+page.svelte
index 96b30475..5f484d55 100644
--- a/src/routes/(app)/[username]/(profile)/follows/+page.svelte
+++ b/src/routes/(app)/[username]/(profile)/follows/+page.svelte
@@ -4,7 +4,7 @@
import VirtualScroll from 'svelte-virtual-scroll-list';
export let data;
- let { follows } = data;
+ let { subject: { follows } } = data;
let w;
</script>