353db10080
* feat: added tolerance to version check and warning if not exact to what we expect * chore: update to bee-js 0.10.0 * chore: updated interfaces that changed in bee-js 0.10.0
77 lines
2.3 KiB
TypeScript
77 lines
2.3 KiB
TypeScript
import { ReactElement } from 'react'
|
|
import { Container, CircularProgress } from '@material-ui/core'
|
|
import { makeStyles, Theme, createStyles } from '@material-ui/core/styles'
|
|
|
|
import NodeSetupWorkflow from './NodeSetupWorkflow'
|
|
import StatusCard from './StatusCard'
|
|
import EthereumAddressCard from '../../components/EthereumAddressCard'
|
|
import {
|
|
useStatusEthereumConnection,
|
|
useStatusNodeVersion,
|
|
useStatusDebugConnection,
|
|
useStatusConnection,
|
|
useStatusTopology,
|
|
useStatusChequebook,
|
|
} from '../../hooks/status'
|
|
|
|
const useStyles = makeStyles((theme: Theme) =>
|
|
createStyles({
|
|
root: {
|
|
width: '100%',
|
|
display: 'grid',
|
|
rowGap: theme.spacing(3),
|
|
},
|
|
}),
|
|
)
|
|
|
|
export default function Status(): ReactElement {
|
|
const classes = useStyles()
|
|
|
|
const nodeVersion = useStatusNodeVersion()
|
|
const ethereumConnection = useStatusEthereumConnection()
|
|
const debugApiConnection = useStatusDebugConnection()
|
|
const apiConnection = useStatusConnection()
|
|
const topology = useStatusTopology()
|
|
const chequebook = useStatusChequebook()
|
|
|
|
const checks = [nodeVersion, ethereumConnection, debugApiConnection, apiConnection, topology, chequebook]
|
|
|
|
// If any check data are still loading
|
|
if (!checks.every(c => !c.isLoading)) {
|
|
return (
|
|
<Container style={{ textAlign: 'center', padding: '50px' }}>
|
|
<CircularProgress />
|
|
</Container>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<div className={classes.root}>
|
|
<StatusCard
|
|
userBeeVersion={nodeVersion.userVersion}
|
|
isLatestBeeVersion={nodeVersion.isLatestBeeVersion}
|
|
isOk={checks.every(c => c.isOk)}
|
|
nodeTopology={topology.topology}
|
|
latestUrl={nodeVersion.latestUrl}
|
|
nodeAddresses={ethereumConnection.nodeAddresses}
|
|
/>
|
|
{ethereumConnection.nodeAddresses && chequebook.chequebookAddress && (
|
|
<EthereumAddressCard
|
|
nodeAddresses={ethereumConnection.nodeAddresses}
|
|
isLoadingNodeAddresses={ethereumConnection.isLoading}
|
|
chequebookAddress={chequebook.chequebookAddress}
|
|
isLoadingChequebookAddress={chequebook.isLoading}
|
|
/>
|
|
)}
|
|
<NodeSetupWorkflow
|
|
nodeVersion={nodeVersion}
|
|
ethereumConnection={ethereumConnection}
|
|
debugApiConnection={debugApiConnection}
|
|
apiConnection={apiConnection}
|
|
topology={topology}
|
|
chequebook={chequebook}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|