accept undefined node, handle empty message case

This commit is contained in:
Sasha 2023-02-23 00:43:50 +01:00
parent bfaaf2c21e
commit c536d9abda
No known key found for this signature in database
2 changed files with 17 additions and 5 deletions

View File

@ -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<IDecodedMessage>;
};
@ -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<void>) = null;
setLoading(true);

View File

@ -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<IDecodedMessage>;
options: StoreQueryOptions;
};
@ -44,6 +44,10 @@ export const useStoreMessages = (
);
React.useEffect(() => {
if (!node) {
return;
}
let cancelled = false;
setLoading(true);