feat: use hosts mutelist for chat

resolves #70
This commit is contained in:
2023-08-02 23:13:05 +02:00
parent af14b92ab4
commit 26b502cf54
3 changed files with 36 additions and 4 deletions

29
src/hooks/lists.ts Normal file
View File

@ -0,0 +1,29 @@
import { useMemo } from "react";
import { RequestBuilder, ReplaceableNoteStore } from "@snort/system";
import { useRequestBuilder } from "@snort/system-react";
import { MUTED } from "const";
import { getTagValues } from "utils";
import { System } from "index";
export function useMutedPubkeys(host?: string, leaveOpen = false) {
const mutedSub = useMemo(() => {
if (!host) return null;
const rb = new RequestBuilder(`muted:${host}`);
rb.withOptions({ leaveOpen });
rb.withFilter().kinds([MUTED]).authors([host]);
return rb;
}, [host]);
const { data: muted } = useRequestBuilder<ReplaceableNoteStore>(
System,
ReplaceableNoteStore,
mutedSub
);
const mutedPubkeys = useMemo(() => {
return new Set(getTagValues(muted?.tags ?? [], "p"));
}, [muted]);
return mutedPubkeys;
}