fix: 🐛

This commit is contained in:
codytseng
2025-02-11 23:57:59 +08:00
parent 2cde70dff4
commit 22be4772db
2 changed files with 22 additions and 6 deletions

View File

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

View File

@@ -47,12 +47,28 @@ export function isProtectedEvent(event: Event) {
export function getParentEventId(event?: Event) {
if (!event || !isReplyNoteEvent(event)) return undefined
return event.tags.find(isReplyETag)?.[1] ?? event.tags.find(tagNameEquals('e'))?.[1]
const tag = event.tags.find(isReplyETag) ?? event.tags.find(tagNameEquals('e'))
if (!tag) return undefined
try {
const [, id, relay, , author] = tag
return nip19.neventEncode({ id, relays: relay ? [relay] : undefined, author })
} catch {
return undefined
}
}
export function getRootEventId(event?: Event) {
if (!event || !isReplyNoteEvent(event)) return undefined
return event.tags.find(isRootETag)?.[1]
const tag = event.tags.find(isRootETag)
if (!tag) return undefined
try {
const [, id, relay, , author] = tag
return nip19.neventEncode({ id, relays: relay ? [relay] : undefined, author })
} catch {
return undefined
}
}
export function isReplaceable(kind: number) {