import { MetadataController, RelayController, UserRelaysType } from 'controllers' import { Filter, kinds } from 'nostr-tools' import { useState } from 'react' import { CommentEvent, ModDetails } from 'types' import { useDidMount } from './useDidMount' export const useComments = (mod: ModDetails) => { const [commentEvents, setCommentEvents] = useState([]) useDidMount(async () => { const metadataController = await MetadataController.getInstance() const authorReadRelays = await metadataController.findUserRelays( mod.author, UserRelaysType.Read ) const filter: Filter = { kinds: [kinds.ShortTextNote], '#a': [mod.aTag] } RelayController.getInstance().subscribeForEvents( filter, authorReadRelays, (event) => { setCommentEvents((prev) => { if (prev.find((e) => e.id === event.id)) { return [...prev] } return [event, ...prev] }) } ) }) return { commentEvents, setCommentEvents } }