From 644c2662991a7906f13872513bb9dd81af633104 Mon Sep 17 00:00:00 2001 From: Martti Malmi Date: Wed, 23 Aug 2023 22:26:50 +0300 Subject: [PATCH] fix crash --- src/js/components/events/note/Note.tsx | 1 + src/js/nostr/hooks/useSubscribe.ts | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/js/components/events/note/Note.tsx b/src/js/components/events/note/Note.tsx index 2ecb0d36..4b71331f 100644 --- a/src/js/components/events/note/Note.tsx +++ b/src/js/components/events/note/Note.tsx @@ -48,6 +48,7 @@ const Note: React.FC = ({ return filter; }, [event.id, showReplies]); const repliesFilterFn = useCallback((e) => getEventReplyingTo(e) === event.id, [event.id]); + const { events: replies } = useSubscribe({ filter: repliesFilter, filterFn: repliesFilterFn, diff --git a/src/js/nostr/hooks/useSubscribe.ts b/src/js/nostr/hooks/useSubscribe.ts index a1ad4bc9..442dc117 100644 --- a/src/js/nostr/hooks/useSubscribe.ts +++ b/src/js/nostr/hooks/useSubscribe.ts @@ -32,7 +32,10 @@ const useSubscribe = (ops: SubscribeOptions) => { mergeSubscriptions = defaultOps.mergeSubscriptions, } = ops; + const shouldReturnEarly = !enabled || filter.limit === 0; + const getEvents = useCallback(() => { + if (shouldReturnEarly) return []; // maybe we should still add filter by displaycount? let e = EventDB.findArray({ ...filter, limit: undefined }); if (filterFn) { @@ -83,6 +86,10 @@ const useSubscribe = (ops: SubscribeOptions) => { }; }, [loadMore]); + if (shouldReturnEarly) { + return { events: [], loadMore: () => {} }; + } + return { events, loadMore }; };