2021-07-28 10:18:13 +10:00
|
|
|
import './App.css';
|
2021-07-28 12:37:05 +10:00
|
|
|
import { getStatusFleetNodes, Waku } from 'js-waku';
|
2021-07-28 12:20:43 +10:00
|
|
|
import * as React from 'react';
|
2021-07-28 10:18:13 +10:00
|
|
|
|
|
|
|
|
function App() {
|
2021-07-28 12:20:43 +10:00
|
|
|
const [waku, setWaku] = React.useState(undefined);
|
2021-07-28 12:37:05 +10:00
|
|
|
const [wakuStatus, setWakuStatus] = React.useState('NotStarted');
|
2021-07-28 12:20:43 +10:00
|
|
|
|
|
|
|
|
React.useEffect(() => {
|
|
|
|
|
if (!!waku) return;
|
2021-07-28 12:37:05 +10:00
|
|
|
if (wakuStatus !== 'NotStarted') return;
|
2021-07-28 12:20:43 +10:00
|
|
|
|
2021-07-28 12:37:05 +10:00
|
|
|
setWakuStatus('Starting');
|
2021-07-28 12:20:43 +10:00
|
|
|
|
|
|
|
|
Waku.create().then((waku) => {
|
|
|
|
|
setWaku(waku);
|
2021-07-28 12:37:05 +10:00
|
|
|
setWakuStatus('Connecting');
|
|
|
|
|
bootstrapWaku(waku).then(() => {
|
|
|
|
|
setWakuStatus('Ready');
|
|
|
|
|
});
|
2021-07-28 12:20:43 +10:00
|
|
|
});
|
2021-07-28 12:37:05 +10:00
|
|
|
}, [waku, wakuStatus]);
|
2021-07-28 12:20:43 +10:00
|
|
|
|
2021-07-28 10:18:13 +10:00
|
|
|
return (
|
|
|
|
|
<div className="App">
|
|
|
|
|
<header className="App-header">
|
2021-07-28 12:20:43 +10:00
|
|
|
<p>{wakuStatus}</p>
|
2021-07-28 10:18:13 +10:00
|
|
|
</header>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default App;
|
2021-07-28 12:37:05 +10:00
|
|
|
|
|
|
|
|
async function bootstrapWaku(waku) {
|
|
|
|
|
const nodes = await getStatusFleetNodes();
|
|
|
|
|
await Promise.all(nodes.map((addr) => waku.dial(addr)));
|
|
|
|
|
}
|