diff options
| -rw-r--r-- | src/components/Feed.svelte | 79 | ||||
| -rw-r--r-- | src/hooks.server.js | 3 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/+layout.server.js | 14 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/+layout.svelte | 6 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/+page.svelte | 4 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/followers/+page.server.js | 10 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/followers/+page.svelte | 5 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/follows/+page.server.js | 11 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/follows/+page.svelte | 2 |
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"> {distance(data.seen)}</div> + </div> + <div class="break-words"> + {data.content} </div> - <div class="text-secondary"> {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> |
