32 lines
913 B
TypeScript
32 lines
913 B
TypeScript
import { useMemo } from "react";
|
|
import { RequestBuilder, FlatNoteStore, ReplaceableNoteStore } from "@snort/system";
|
|
import { useRequestBuilder } from "@snort/system-react";
|
|
import { GOAL } from "const";
|
|
|
|
export function useZapGoal(id?: string) {
|
|
const sub = useMemo(() => {
|
|
if (!id) return null;
|
|
const b = new RequestBuilder(`goal:${id.slice(0, 12)}`);
|
|
b.withFilter().kinds([GOAL]).ids([id]);
|
|
return b;
|
|
}, [id]);
|
|
|
|
const { data } = useRequestBuilder(ReplaceableNoteStore, sub);
|
|
|
|
return data;
|
|
}
|
|
|
|
export function useGoals(pubkey?: string, leaveOpen = false) {
|
|
const sub = useMemo(() => {
|
|
if (!pubkey) return null;
|
|
const b = new RequestBuilder(`goals:${pubkey.slice(0, 12)}`);
|
|
b.withOptions({ leaveOpen });
|
|
b.withFilter().kinds([GOAL]).authors([pubkey]);
|
|
return b;
|
|
}, [pubkey, leaveOpen]);
|
|
|
|
const { data } = useRequestBuilder(FlatNoteStore, sub);
|
|
|
|
return data;
|
|
}
|