UNPKG

nostr-hooks

Version:
29 lines 1.28 kB
import { useEffect } from 'react'; import { useSubscription } from '../../../hooks'; import { useNip29Store } from '../../../nip29/store'; const updateGroupMembers = useNip29Store.getState().updateGroupMembers; export const useGroupMembers = (relay, groupId) => { const subId = relay && groupId ? `${relay}-${groupId}-members` : undefined; const members = useNip29Store((state) => subId && groupId ? state.groups[subId]?.[groupId]?.members : undefined); const { events, isLoading, createSubscription } = useSubscription(subId); useEffect(() => { if (!relay || !groupId || !subId) return; const filters = [{ kinds: [39002], '#d': [groupId], limit: 1 }]; const relayUrls = [relay]; const onEvent = (event) => { const members = event .getMatchingTags('p') .filter((pTag) => pTag.length > 1) .map((pTag) => ({ pubkey: pTag[1] || '' })); updateGroupMembers(subId, groupId, members); }; createSubscription({ filters, relayUrls, onEvent }); }, [subId, relay, groupId, createSubscription]); return { members, isLoadingMembers: isLoading, membersEvents: events, }; }; //# sourceMappingURL=index.js.map