import { ReactElement, useState } from 'react' import { Link } from 'react-router-dom' import { createStyles, makeStyles } from '@material-ui/core/styles' import { Card, CardContent, Typography, Chip, Button } from '@material-ui/core/' import { CheckCircle, Error, ArrowRight, ArrowDropUp } from '@material-ui/icons/' import { NodeAddresses, Topology } from '@ethersphere/bee-js' const useStyles = makeStyles(() => createStyles({ root: { display: 'flex', flex: '1 1 auto', flexDirection: 'column', }, status: { color: '#2145a0', backgroundColor: '#e1effe', }, }), ) interface Props { nodeAddresses: NodeAddresses | null nodeTopology: Topology | null userBeeVersion?: string isLatestBeeVersion: boolean isOk: boolean latestUrl: string } function StatusCard({ userBeeVersion, nodeAddresses, nodeTopology, isOk, isLatestBeeVersion, latestUrl, }: Props): ReactElement | null { const classes = useStyles() const [underlayAddressesVisible, setUnderlayAddresessVisible] = useState(false) return ( {isOk && (
Your Bee node is running as expected
)} {!isOk && (
Could not connect to Bee Node
)}
{isOk && ( <>
Discovered Nodes: {nodeTopology?.population} Connected Peers: {nodeTopology?.connected}
AGENT: Bee {' '} {userBeeVersion || '-'} {isLatestBeeVersion ? ( ) : ( )} PUBLIC KEY: {nodeAddresses?.publicKey ? nodeAddresses.publicKey : '-'} PSS PUBLIC KEY: {nodeAddresses?.pssPublicKey ? nodeAddresses.pssPublicKey : '-'} OVERLAY ADDRESS (PEER ID): {nodeAddresses?.overlay ? nodeAddresses.overlay : '-'} setUnderlayAddresessVisible(!underlayAddressesVisible)}> {underlayAddressesVisible && (
{nodeAddresses?.underlay.map(item => (
  • {item}
  • ))}
    )}
    )}
    ) } export default StatusCard