mirror of
https://github.com/logos-messaging/waku-react.git
synced 2026-01-09 01:23:07 +00:00
accept undefined node, handle empty message case
This commit is contained in:
parent
bfaaf2c21e
commit
c536d9abda
@ -1,14 +1,14 @@
|
|||||||
import React from "react";
|
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";
|
import type { HookState } from "./types";
|
||||||
|
|
||||||
type AbstractFilterNode = {
|
type AbstractFilterNode = Waku & {
|
||||||
filter: IFilter;
|
filter: IFilter;
|
||||||
};
|
};
|
||||||
|
|
||||||
type UseFilterMessagesParams = {
|
type UseFilterMessagesParams = {
|
||||||
node: AbstractFilterNode;
|
node: undefined | AbstractFilterNode;
|
||||||
decoder: IDecoder<IDecodedMessage>;
|
decoder: IDecoder<IDecodedMessage>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -27,12 +27,20 @@ export const useFilterMessages = (
|
|||||||
|
|
||||||
const pushMessage = React.useCallback(
|
const pushMessage = React.useCallback(
|
||||||
(message: IDecodedMessage): void => {
|
(message: IDecodedMessage): void => {
|
||||||
|
if (!message) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
setMessage((prev) => [...prev, message]);
|
setMessage((prev) => [...prev, message]);
|
||||||
},
|
},
|
||||||
[setMessage],
|
[setMessage],
|
||||||
);
|
);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
|
if (!node) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let unsubscribe: null | (() => Promise<void>) = null;
|
let unsubscribe: null | (() => Promise<void>) = null;
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
|
||||||
|
|||||||
@ -2,9 +2,9 @@ import React from "react";
|
|||||||
import type {
|
import type {
|
||||||
IDecodedMessage,
|
IDecodedMessage,
|
||||||
IDecoder,
|
IDecoder,
|
||||||
Waku,
|
|
||||||
IStore,
|
IStore,
|
||||||
StoreQueryOptions,
|
StoreQueryOptions,
|
||||||
|
Waku,
|
||||||
} from "@waku/interfaces";
|
} from "@waku/interfaces";
|
||||||
|
|
||||||
import type { HookState } from "./types";
|
import type { HookState } from "./types";
|
||||||
@ -14,7 +14,7 @@ type AbstractStoreNode = Waku & {
|
|||||||
};
|
};
|
||||||
|
|
||||||
type UseStoreMessagesParams = {
|
type UseStoreMessagesParams = {
|
||||||
node: AbstractStoreNode;
|
node: undefined | AbstractStoreNode;
|
||||||
decoder: IDecoder<IDecodedMessage>;
|
decoder: IDecoder<IDecodedMessage>;
|
||||||
options: StoreQueryOptions;
|
options: StoreQueryOptions;
|
||||||
};
|
};
|
||||||
@ -44,6 +44,10 @@ export const useStoreMessages = (
|
|||||||
);
|
);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
|
if (!node) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let cancelled = false;
|
let cancelled = false;
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user