import { useReply } from '@/providers/ReplyProvider' import client from '@/services/client.service' import { Event } from 'nostr-tools' import { useEffect, useState } from 'react' export function useFetchEvent(eventId?: string) { const [isFetching, setIsFetching] = useState(true) const { addReplies } = useReply() const [error, setError] = useState(null) const [event, setEvent] = useState(undefined) useEffect(() => { const fetchEvent = async () => { setIsFetching(true) if (!eventId) { setIsFetching(false) setError(new Error('No id provided')) return } try { const event = await client.fetchEvent(eventId) if (event) { setEvent(event) addReplies([event]) } } catch (error) { setError(error as Error) } finally { setIsFetching(false) } } fetchEvent().catch((err) => { setError(err as Error) setIsFetching(false) }) }, [eventId]) return { isFetching, error, event } }