mirror of
https://github.com/t4t5/nostr-react.git
synced 2025-05-08 13:00:13 +02:00
Add onEvent param to useNostrEvents
This commit is contained in:
parent
9d7da11385
commit
0a9bd4bfd5
@ -12,6 +12,7 @@ import { uniqBy } from "./utils"
|
|||||||
export { dateToUnix } from "./utils"
|
export { dateToUnix } from "./utils"
|
||||||
|
|
||||||
type OnConnectFunc = (relay: Relay) => void
|
type OnConnectFunc = (relay: Relay) => void
|
||||||
|
type OnEventFunc = (event: NostrEvent) => void
|
||||||
|
|
||||||
interface NostrContextType {
|
interface NostrContextType {
|
||||||
isLoading: boolean
|
isLoading: boolean
|
||||||
@ -105,11 +106,14 @@ export function useNostrEvents({ filter }: { filter: Filter }) {
|
|||||||
const { isLoading, onConnect, debug, connectedRelays } = useNostr()
|
const { isLoading, onConnect, debug, connectedRelays } = useNostr()
|
||||||
const [events, setEvents] = useState<NostrEvent[]>([])
|
const [events, setEvents] = useState<NostrEvent[]>([])
|
||||||
|
|
||||||
|
let onEventCallback: null | OnEventFunc = null
|
||||||
|
|
||||||
onConnect((relay: Relay) => {
|
onConnect((relay: Relay) => {
|
||||||
const sub = relay.sub([filter], {})
|
const sub = relay.sub([filter], {})
|
||||||
|
|
||||||
sub.on("event", (event: NostrEvent) => {
|
sub.on("event", (event: NostrEvent) => {
|
||||||
log(debug, "info", "⬇️ nostr: Received event:", event)
|
log(debug, "info", "⬇️ nostr: Received event:", event)
|
||||||
|
onEventCallback?.(event)
|
||||||
setEvents((_events) => {
|
setEvents((_events) => {
|
||||||
return [event, ..._events]
|
return [event, ..._events]
|
||||||
})
|
})
|
||||||
@ -124,5 +128,10 @@ export function useNostrEvents({ filter }: { filter: Filter }) {
|
|||||||
events: sortedEvents,
|
events: sortedEvents,
|
||||||
onConnect,
|
onConnect,
|
||||||
connectedRelays,
|
connectedRelays,
|
||||||
|
onEvent: (_onEventCallback: OnEventFunc) => {
|
||||||
|
if (_onEventCallback) {
|
||||||
|
onEventCallback = _onEventCallback
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user