aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Feed.svelte
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-11-07 21:16:25 -0800
committerAdam Soltys <[email protected]>2024-11-08 09:27:40 -0800
commit32fcc461cd43c8907df5e306d520bb671307eab1 (patch)
tree0253780c569998b6c1a5f43026586e94916c3fee /src/components/Feed.svelte
parentbe5aa52cea1d57c875cfb22d25c6a866b8de2239 (diff)
downloadcoinos-ui-32fcc461cd43c8907df5e306d520bb671307eab1.tar.gz
coinos-ui-32fcc461cd43c8907df5e306d520bb671307eab1.zip
svelte 5
Diffstat (limited to 'src/components/Feed.svelte')
-rw-r--r--src/components/Feed.svelte25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/components/Feed.svelte b/src/components/Feed.svelte
index 5dc2b21a..593c2289 100644
--- a/src/components/Feed.svelte
+++ b/src/components/Feed.svelte
@@ -1,4 +1,6 @@
<script>
+ import { preventDefault } from 'svelte/legacy';
+
import { t } from "$lib/translations";
import { onMount } from "svelte";
import Event from "$comp/Event.svelte";
@@ -7,10 +9,9 @@
import { fail } from "$lib/utils";
import { sign, send } from "$lib/nostr";
- export let events;
- export let user = undefined;
+ let { events = $bindable(), user = undefined } = $props();
- let message;
+ let message = $state();
let submit = async () => {
try {
@@ -38,14 +39,14 @@
}
};
- $: sorted = Object.values(events)
+ let sorted = $derived(Object.values(events)
.filter((ev) => ev?.pubkey && ev?.kind === 1)
- .sort((a, b) => b.seen - a.seen);
+ .sort((a, b) => b.seen - a.seen));
</script>
{#if user}
<form
- on:submit|preventDefault={submit}
+ onsubmit={preventDefault(submit)}
class="flex justify-center gap-4 max-w-2xl mx-auto"
>
<div class="grow">
@@ -68,14 +69,16 @@
<VirtualScroll
data={sorted}
key="id"
- let:data
+
pageMode={true}
estimateSize={200}
>
- <a href={`/${data.user.pubkey}/event/${data.id}`}>
- <Event event={data} />
- </a>
- </VirtualScroll>
+ {#snippet children({ data })}
+ <a href={`/${data.user.pubkey}/event/${data.id}`}>
+ <Event event={data} />
+ </a>
+ {/snippet}
+ </VirtualScroll>
{:else}
<div class="flex w-full">
<div class="mx-auto text-secondary">{$t("user.noNotes")}</div>