From 0a9bd4bfd5ca3191064febfd326811fb5bedd94f Mon Sep 17 00:00:00 2001 From: Tristan Edwards Date: Sun, 25 Dec 2022 17:29:04 +0100 Subject: [PATCH] Add onEvent param to useNostrEvents --- src/index.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index d49e874..15fe7da 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -12,6 +12,7 @@ import { uniqBy } from "./utils" export { dateToUnix } from "./utils" type OnConnectFunc = (relay: Relay) => void +type OnEventFunc = (event: NostrEvent) => void interface NostrContextType { isLoading: boolean @@ -105,11 +106,14 @@ export function useNostrEvents({ filter }: { filter: Filter }) { const { isLoading, onConnect, debug, connectedRelays } = useNostr() const [events, setEvents] = useState([]) + let onEventCallback: null | OnEventFunc = null + onConnect((relay: Relay) => { const sub = relay.sub([filter], {}) sub.on("event", (event: NostrEvent) => { log(debug, "info", "⬇️ nostr: Received event:", event) + onEventCallback?.(event) setEvents((_events) => { return [event, ..._events] }) @@ -124,5 +128,10 @@ export function useNostrEvents({ filter }: { filter: Filter }) { events: sortedEvents, onConnect, connectedRelays, + onEvent: (_onEventCallback: OnEventFunc) => { + if (_onEventCallback) { + onEventCallback = _onEventCallback + } + }, } }