import {UptimeRecord} from "../nws-api/types"; import React, {useState} from "react"; import '../App.css'; import "./UptimeCard.css" import Modal from "react-modal"; export default function UptimeCard(props: {uptime: UptimeRecord, isService: boolean}) { const [isModalOpen, setModalOpen] = useState(false); return(

setModalOpen(true)}>{props.uptime.name}

{props.uptime.isUp ? 'Up' : (props.uptime.undergoingMaintenance ? 'Maintenance' : 'Down')}

{props.uptime.isUp ? 'Up' : (props.uptime.undergoingMaintenance ? 'Maintenance' : 'Down')}

Last Month Uptime: {props.uptime.uptimeMonth}%

{new Date().getFullYear()} Uptime: {props.uptime.uptimeYtd}%

Avg Response Time: {props.uptime.averageResponseTime}ms

{props.uptime.name}

{props.uptime.url &&

({props.uptime.url})

}

Monitoring since {props.uptime.monitorStart}

{new Date().getFullYear()} Uptime (YTD): {props.uptime.uptimeYtd}%

Last Month Uptime: {props.uptime.uptimeMonth}%

All-Time Uptime: {props.uptime.uptimeAllTime}%

Average Response Time: {props.uptime.averageResponseTime}ms

{ props.isService &&
Note that the uptime and performance of services hosted on NWS may be affected by factors not controlled by NWS such as bad bad optimization or buggy software.
}
); }