From c536d9abda5fdbcdf7a7f72eb3868ba63e52f5e8 Mon Sep 17 00:00:00 2001 From: Sasha Date: Thu, 23 Feb 2023 00:43:50 +0100 Subject: [PATCH] accept undefined node, handle empty message case --- src/useFilterMessages.ts | 14 +++++++++++--- src/useStoreMessages.ts | 8 ++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/useFilterMessages.ts b/src/useFilterMessages.ts index 839dc1f..d559a77 100644 --- a/src/useFilterMessages.ts +++ b/src/useFilterMessages.ts @@ -1,14 +1,14 @@ import React from "react"; -import type { IDecodedMessage, IDecoder, IFilter } from "@waku/interfaces"; +import type { IDecodedMessage, IDecoder, IFilter, Waku } from "@waku/interfaces"; import type { HookState } from "./types"; -type AbstractFilterNode = { +type AbstractFilterNode = Waku & { filter: IFilter; }; type UseFilterMessagesParams = { - node: AbstractFilterNode; + node: undefined | AbstractFilterNode; decoder: IDecoder; }; @@ -27,12 +27,20 @@ export const useFilterMessages = ( const pushMessage = React.useCallback( (message: IDecodedMessage): void => { + if (!message) { + return; + } + setMessage((prev) => [...prev, message]); }, [setMessage], ); React.useEffect(() => { + if (!node) { + return; + } + let unsubscribe: null | (() => Promise) = null; setLoading(true); diff --git a/src/useStoreMessages.ts b/src/useStoreMessages.ts index cc0204c..239f6bf 100644 --- a/src/useStoreMessages.ts +++ b/src/useStoreMessages.ts @@ -2,9 +2,9 @@ import React from "react"; import type { IDecodedMessage, IDecoder, - Waku, IStore, StoreQueryOptions, + Waku, } from "@waku/interfaces"; import type { HookState } from "./types"; @@ -14,7 +14,7 @@ type AbstractStoreNode = Waku & { }; type UseStoreMessagesParams = { - node: AbstractStoreNode; + node: undefined | AbstractStoreNode; decoder: IDecoder; options: StoreQueryOptions; }; @@ -44,6 +44,10 @@ export const useStoreMessages = ( ); React.useEffect(() => { + if (!node) { + return; + } + let cancelled = false; setLoading(true);