snort/packages/system-react/src/useEventFeed.ts
2023-11-09 12:20:53 +00:00

24 lines
733 B
TypeScript

import { useMemo } from "react";
import { RequestBuilder, ReplaceableNoteStore, NostrLink, NoteCollection } from "@snort/system";
import { useRequestBuilder } from "./useRequestBuilder";
export function useEventFeed(link: NostrLink) {
const sub = useMemo(() => {
const b = new RequestBuilder(`event:${link.id.slice(0, 12)}`);
b.withFilter().link(link);
return b;
}, [link]);
return useRequestBuilder(ReplaceableNoteStore, sub);
}
export function useEventsFeed(id: string, links: Array<NostrLink>) {
const sub = useMemo(() => {
const b = new RequestBuilder(`events:${id}`);
links.forEach(v => b.withFilter().link(v));
return b;
}, [id, links]);
return useRequestBuilder(NoteCollection, sub);
}