39 lines
882 B
JavaScript
Raw Normal View History

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)));
}