Skip to content

Commit adc72d6

Browse files
committed
Add "unsubscribe" event
1 parent b48707a commit adc72d6

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

src/index.tsx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,17 +110,33 @@ export function useNostrEvents({ filter }: { filter: Filter }) {
110110

111111
let onEventCallback: null | OnEventFunc = null
112112

113-
onConnect((relay: Relay) => {
113+
let unsubscribe = () => {
114+
return
115+
}
116+
117+
const subscribe = (relay: Relay) => {
114118
log(debug, "info", "⬆️ nostr: Sending event filter:", filter)
115119
const sub = relay.sub([filter], {})
116120

121+
unsubscribe = sub.unsub
122+
117123
sub.on("event", (event: NostrEvent) => {
118124
log(debug, "info", "⬇️ nostr: Received event:", event)
119125
onEventCallback?.(event)
120126
setEvents((_events) => {
121127
return [event, ..._events]
122128
})
123129
})
130+
}
131+
132+
useEffect(() => {
133+
connectedRelays.forEach((relay) => {
134+
subscribe(relay)
135+
})
136+
}, [connectedRelays.length])
137+
138+
onConnect((relay: Relay) => {
139+
subscribe(relay)
124140
})
125141

126142
const uniqEvents = events.length > 0 ? uniqBy(events, "id") : []
@@ -131,6 +147,7 @@ export function useNostrEvents({ filter }: { filter: Filter }) {
131147
events: sortedEvents,
132148
onConnect,
133149
connectedRelays,
150+
unsubscribe,
134151
onEvent: (_onEventCallback: OnEventFunc) => {
135152
if (_onEventCallback) {
136153
onEventCallback = _onEventCallback

0 commit comments

Comments
 (0)