import './App.css'; import { getStatusFleetNodes, Waku } from 'js-waku'; import * as React from 'react'; // import protons from 'protons'; // const ContentTopic = '/toy-chat/2/huilong/proto'; // const proto = protons(` // message ChatMessage { // uint64 timestamp = 1; // string nick = 2; // bytes text = 3; // } // `); function App() { const [waku, setWaku] = React.useState(undefined); const [wakuStatus, setWakuStatus] = React.useState('None'); const [connections, setConnections] = React.useState(); const [connectionHasChanged, setConnectionHasChanged] = React.useState(false); React.useEffect(() => { if (!!waku) return; if (wakuStatus !== 'None') return; setWakuStatus('Starting'); Waku.create({ relayKeepAlive: 5 }).then((waku) => { setWaku(waku); setWakuStatus('Connecting'); bootstrapWaku(waku).then(() => { setWakuStatus('Ready'); }); }); }, [waku, wakuStatus]); React.useEffect(()=> { connectionChange(waku, setConnectionHasChanged) }, [waku, connectionHasChanged]) React.useEffect(() => { if (!waku) return const conns = Array.from(waku.libp2p.connections).map(([peerId, connections]) => { return (