dyno-bot/Dyno-web-member-dash/react/status/Server.jsx
2020-09-12 19:08:48 +01:00

28 lines
1.1 KiB
JavaScript

import React from 'react';
import Cluster from './Cluster.jsx';
export default class Server extends React.Component {
render() {
let server = this.props.server;
if (!server) {
return (<div><p>Error</p></div>);
}
let clusters = this.props.clusters;
let clustersWithProblems = this.props.clusters.filter(i => i.error !== undefined || i.result.connectedCount < 6 || i.result.unavailableCount > 10);
let statusColor = 'success';
if (clustersWithProblems.length >= 5) {
statusColor = 'danger';
} else if (clustersWithProblems.length > 0) {
statusColor = 'warning';
}
let gridClusters = clusters.map(cluster => <Cluster key={cluster.id} highlight={this.props.foundInfo.cluster[0] === this.props.server[0] && (this.props.server[0] + cluster.id) === this.props.foundInfo.cluster} server={server} data={cluster}/>);
return (<div>
<h4 className={`title is-4`}>Server: {server}</h4>
<p className={`status-${statusColor}`}>{clustersWithProblems.length} / {clusters.length} clusters have problems.</p>
<div className="cluster-grid">
{gridClusters}
</div>
</div>);
}
}