import { CheckCircleOutlined, ExclamationCircleOutlined } from '@ant-design/icons'; import { Alert, Button, Col, Row, Statistic, Typography } from 'antd'; import Link from 'next/link'; import React, { FC, useContext } from 'react'; import { ServerStatusContext } from '../utils/server-status-context'; export type StreamHealthOverviewProps = { showTroubleshootButton?: Boolean; }; export const StreamHealthOverview: FC = ({ showTroubleshootButton }) => { const serverStatusData = useContext(ServerStatusContext); const { health } = serverStatusData; if (!health) { return null; } const { healthy, healthPercentage, message, representation } = health; let color = '#3f8600'; let icon: 'success' | 'info' | 'warning' | 'error' = 'info'; if (healthPercentage < 80) { color = '#cf000f'; icon = 'error'; } else if (healthPercentage < 30) { color = '#f0ad4e'; icon = 'error'; } return (
: } /> Stream health represents {representation}% of all known players. Other player status is unknown. ) } />
); }; StreamHealthOverview.defaultProps = { showTroubleshootButton: true, };