import ReactTooltip from 'react-tooltip';
import { useEffect, useState } from 'react';
import { GetMonitors } from '../common/uptimerobot';
import { formatDuration, formatNumber } from '../common/helper';
import Link from './link';
function UptimeRobot({ apikey }) {
const status = {
ok: '正常',
down: '无法访问',
unknow: '状态未知'
};
const { CountDays, ShowLink } = window.Config;
const [monitors, setMonitors] = useState();
useEffect(() => {
GetMonitors(apikey, CountDays).then(setMonitors);
}, [apikey, CountDays]);
if (monitors) return monitors.map((site) => (
{ShowLink && }
{status[site.status]}
{site.daily.map((data, index) => {
let status = '';
let text = data.date.format('YYYY-MM-DD ');
if (data.uptime >= 100) {
status = 'ok';
text += `可用率 ${formatNumber(data.uptime)}%`;
}
else if (data.uptime <= 0 && data.down.times === 0) {
status = 'none';
text += '无数据';
}
else {
status = 'down';
text += `故障 ${data.down.times} 次,累计 ${formatDuration(data.down.duration)},可用率 ${formatNumber(data.uptime)}%`;
}
return ()
})}