diff options
| author | Adam Soltys <[email protected]> | 2022-12-20 12:25:20 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-12-20 12:25:23 -0800 |
| commit | 9c7ed38d45ec2740d8beb0d5630ecb525243a66b (patch) | |
| tree | c021950414623453cb56439dcb707ddfbfd65960 /src/routes/(app) | |
| parent | 64853b801688edf7a8858b7c1135502e5882823c (diff) | |
| download | coinos-ui-9c7ed38d45ec2740d8beb0d5630ecb525243a66b.tar.gz coinos-ui-9c7ed38d45ec2740d8beb0d5630ecb525243a66b.zip | |
nostr feed
Diffstat (limited to 'src/routes/(app)')
| -rw-r--r-- | src/routes/(app)/feed/+page.svelte | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/routes/(app)/feed/+page.svelte b/src/routes/(app)/feed/+page.svelte new file mode 100644 index 00000000..196763f6 --- /dev/null +++ b/src/routes/(app)/feed/+page.svelte @@ -0,0 +1,49 @@ +<script> + import { fade } from 'svelte/transition'; + import { Avatar, Icon } from '$comp'; + import { format, parseISO } from 'date-fns'; + import { t } from '$lib/translations'; + import { events } from '$lib/store'; + import VirtualScroll from 'svelte-virtual-scroll-list'; + import { browser } from '$app/environment'; + import runners from '$lib/runners'; + + export let data; + let { user } = data; + let runner = () => runners[Math.floor(Math.random() * runners.length)]; + + $: length = $events?.q?.length; + $: sorted = Object.values($events) + .filter((ev) => ev?.pubkey) + .sort((a, b) => b.seen - a.seen); +</script> + +<div class="mt-24 mb-20"> + <h1 class="px-3 md:px-0 text-center text-3xl md:text-4xl font-semibold mb-10">Nostr</h1> + + <div class="container w-full mx-auto text-lg px-4 max-w-2xl space-y-5"> + <div class="vs"> + {#if browser} + <VirtualScroll data={sorted} key="id" let:data pageMode={true}> + <div class="grid grid-cols-3 border-b pb-5" :key={data.id} use:fade> + <div class="my-auto text-secondary"> + <div class="flex"> + <div class="my-auto"> + <Avatar size={20} src={`/api/public/runners/${runner()}`} /> + </div> + <div class="my-auto ml-1"> + {data.pubkey.substr(0, 6)}<br /> + <span class="text-sm">{format(new Date(data.seen * 1000), 'h:mm aaa')}</span> + </div> + </div> + </div> + + <div class="my-auto col-span-2"> + <div class="text-secondary break-words">{data.content}</div> + </div> + </div> + </VirtualScroll> + {/if} + </div> + </div> +</div> |
