import { WakuMessage } from "js-waku"; import { ChatContentTopic } from "./App"; import ChatList from "./ChatList"; import MessageInput from "./MessageInput"; import { useWaku } from "./WakuContext"; import { TitleBar } from "@livechat/ui-kit"; import { Message } from "./Message"; import { ChatMessage } from "./chat_message"; import { useEffect, useState } from "react"; interface Props { messages: Message[]; commandHandler: (cmd: string) => void; nick: string; } export default function Room(props: Props) { const { waku } = useWaku(); const [storePeers, setStorePeers] = useState(0); const [relayPeers, setRelayPeers] = useState(0); useEffect(() => { if (!waku) return; // Update relay peer count on heartbeat waku.relay.on("gossipsub:heartbeat", () => { setRelayPeers(waku.relay.getPeers().size); }); }, [waku]); useEffect(() => { if (!waku) return; // Update store peer when new peer connected & identified waku.libp2p.peerStore.on("change:protocols", async () => { let counter = 0; // eslint-disable-next-line @typescript-eslint/no-unused-vars for await (const _peer of waku.store.peers) { counter++; } setStorePeers(counter); }); }, [waku]); return (