aboutsummaryrefslogtreecommitdiff
path: root/src/routes/+page.svelte
diff options
context:
space:
mode:
authorLibravatar buttercat1791 <mjjurkoic@gmail.com>2024-08-27 00:14:55 -0500
committerLibravatar limina1 <liminal@duck.com>2024-08-27 08:22:01 -0400
commita341e1adc54122e8006167db790aac6c7fa03724 (patch)
tree77e1bf9a6cb29455320784f25a115e89cfd9eeaa /src/routes/+page.svelte
parentd894c5f7431d2c320bc551b8fe1e22c78e34eeb3 (diff)
Update NDK and ensure feed and article read works
Diffstat (limited to 'src/routes/+page.svelte')
-rw-r--r--src/routes/+page.svelte66
1 files changed, 41 insertions, 25 deletions
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 852021b..2cef62f 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -1,39 +1,55 @@
<script lang="ts">
import ArticleHeader from "$lib/ArticleHeader.svelte";
- import { FeedType, indexKind } from "$lib/consts";
+ import { FeedType, indexKind, standardRelays } from "$lib/consts";
import { ndk } from "$lib/ndk";
import { filterValidIndexEvents } from "$lib/utils";
- import { NDKEvent, NDKRelayList, NDKRelaySet, type NDKUser } from "@nostr-dev-kit/ndk";
+ import { NDKEvent, NDKRelaySet, type NDKUser } from "@nostr-dev-kit/ndk";
import { Button, Dropdown, Radio, Skeleton } from "flowbite-svelte";
import { ChevronDownOutline } from "flowbite-svelte-icons";
const getEvents = (): Promise<Set<NDKEvent>> =>
// @ts-ignore
- $ndk.fetchEvents({ kinds: [indexKind] }).then(filterValidIndexEvents);
-
- const getEventsFromUserRelays = (userRelays: NDKRelayList): Promise<Set<NDKEvent>> => {
- const relaySet = NDKRelaySet.fromRelayUrls(userRelays!.readRelayUrls, $ndk);
-
- return $ndk.fetchEvents(
- // @ts-ignore
+ $ndk.fetchEvents(
{ kinds: [indexKind] },
- relaySet,
- ).then(filterValidIndexEvents);
- };
-
- const getEventsFromUserFollows = (follows: Set<NDKUser>, userRelays: NDKRelayList): Promise<Set<NDKEvent>> => {
- const relaySet = NDKRelaySet.fromRelayUrls(userRelays?.readRelayUrls ?? [], $ndk);
- const pubkeys = Array.from(follows ?? []).map(user => user.pubkey);
-
- return $ndk.fetchEvents(
{
- authors: pubkeys,
- // @ts-ignore
- kinds: [indexKind]
+ groupable: true,
+ skipVerification: false,
+ skipValidation: false
},
- relaySet,
+ NDKRelaySet.fromRelayUrls(standardRelays, $ndk)
).then(filterValidIndexEvents);
- };
+
+ const getEventsFromUserRelays = (userRelays: string[]): Promise<Set<NDKEvent>> => {
+ return $ndk
+ .fetchEvents(
+ // @ts-ignore
+ { kinds: [indexKind] },
+ {
+ closeOnEose: true,
+ groupable: true,
+ skipVerification: false,
+ skipValidation: false,
+ },
+ )
+ .then(filterValidIndexEvents);
+ }
+
+ const getEventsFromUserFollows = (follows: Set<NDKUser>, userRelays?: string[]): Promise<Set<NDKEvent>> => {
+ return $ndk
+ .fetchEvents(
+ {
+ authors: Array.from(follows ?? []).map(user => user.pubkey),
+ // @ts-ignore
+ kinds: [indexKind]
+ },
+ {
+ groupable: true,
+ skipVerification: false,
+ skipValidation: false
+ },
+ )
+ .then(filterValidIndexEvents);
+ }
const getFeedTypeFriendlyName = (feedType: FeedType): string => {
switch (feedType) {
@@ -60,13 +76,13 @@
}
let user: NDKUser | null | undefined;
- let readRelays: NDKRelayList | null | undefined;
+ let readRelays: string[] | null | undefined;
let userFollows: Set<NDKUser> | null | undefined;
let feedType: FeedType = FeedType.Relays;
$: {
user = $ndk.activeUser;
- user?.relayList().then(relays => readRelays = relays);
+ readRelays = user?.relayUrls;
user?.follows().then(follows => userFollows = follows);
}
</script>