import { useState, useEffect } from "react"; import { service, up_time_data } from "../data"; import DateUtils from "../utils/DateUtils"; import langs from "../config/langs"; import API from "../config/API"; const IncidentService = () => { async function lastDaysFailures() { const { beginningOf, endOf, nowSubtract, parseISO, toUnix } = DateUtils; const failureData = []; // const start = beginningOf("day", nowSubtract(86400 * 90)); // const end = endOf("tomorrow"); const data = await API.service_failures_data(); data.forEach((d) => { let date = DateUtils.parseISO(d.timeframe); failureData.push({ month: date.getMonth(), day: date.getDate(), date: date, amount: d.amount, }); }); return failureData; } const [hoverText, setHoverText] = useState(""); const [data, setData] = useState([]); const [loaded, setLoaded] = useState(false); useEffect(async () => { const failureData = await lastDaysFailures(); setData(failureData); setLoaded(true); }, []); const handleMouseOut = () => { setHoverText(""); }; const handleMouseOver = (d) => { const start = DateUtils.parseISO(d.start); const end = DateUtils.parseISO(d.end); const duration = DateUtils.humanTime(d.duration); setHoverText( `${start.toLocaleDateString()} - ${end.toLocaleDateString()} ${duration} ${d.online ? "Online" : "Offline"}` ); }; const service_txt = () => { return DateUtils.smallText(service); }; const total_time_frame = up_time_data.uptime + up_time_data.downtime; return (
{DateUtils.duration(up_time_data.uptime, up_time_data.downtime)}{" "} {langs("days_ago")} {service_txt()} {langs("today")}