diff --git a/examples/web-chat/src/hooks.ts b/examples/web-chat/src/hooks.ts index 97a0190..73d1dc8 100644 --- a/examples/web-chat/src/hooks.ts +++ b/examples/web-chat/src/hooks.ts @@ -3,7 +3,6 @@ import { generate } from "server-name-generator"; import { Message } from "./Message"; import { EPeersByDiscoveryEvents, LightNode, Tags } from "@waku/interfaces"; import type { PeerId } from "@libp2p/interface-peer-id"; -import { waku } from "@waku/sdk"; import { useFilterMessages, useStoreMessages } from "@waku/react"; import type { @@ -13,6 +12,7 @@ import type { UsePeersResults, } from "./types"; import { OrderedSet } from "./ordered_array"; +import { getPeerIdsForProtocol } from "./utils"; export const usePersistentNick = (): [ string, @@ -195,18 +195,9 @@ export const usePeers = (params: UsePeersParams): UsePeersResults => { setPeers({ allConnected: peers.map((p) => p.id), - storePeers: peers - .filter((p) => p.protocols.includes(waku.waku_store.StoreCodec)) - .map((p) => p.id), - //TODO: use from import - filterPeers: peers - .filter((p) => - p.protocols.includes("/vac/waku/filter-subscribe/2.0.0-beta1") - ) - .map((p) => p.id), // hardcoding codec since we don't export it currently - lightPushPeers: peers - .filter((p) => p.protocols.includes(waku.waku_store.StoreCodec)) - .map((p) => p.id), + storePeers: getPeerIdsForProtocol(node.store, peers), + filterPeers: getPeerIdsForProtocol(node.filter, peers), + lightPushPeers: getPeerIdsForProtocol(node.lightPush, peers), }); }; diff --git a/examples/web-chat/src/utils.ts b/examples/web-chat/src/utils.ts index ed54a12..7254dc6 100644 --- a/examples/web-chat/src/utils.ts +++ b/examples/web-chat/src/utils.ts @@ -1,4 +1,5 @@ import type { Peer } from "@libp2p/interface-peer-store"; +import type { IFilter, ILightPush, IStore } from "@waku/interfaces"; export async function handleCatch( promise?: Promise @@ -13,3 +14,14 @@ export async function handleCatch( return undefined; } } + +export function getPeerIdsForProtocol( + protocol: IStore | ILightPush | IFilter | undefined, + peers: Peer[] +) { + return protocol + ? peers + .filter((p) => p.protocols.includes(protocol.multicodec)) + .map((p) => p.id) + : []; +}