1
0
mirror of https://github.com/tormachris/cf-workers-status-page.git synced 2026-04-02 15:05:36 +02:00
Files
cf-workers-status-page/src/components/monitorHistogram.js
2020-11-12 18:57:42 +01:00

59 lines
1.8 KiB
JavaScript

import config from '../../config.yaml'
export default function MonitorHistogram({
kvMonitorsFailedDaysArray,
monitor,
kvMonitor,
}) {
// create date and set date - daysInHistogram for the first day of the histogram
let date = new Date()
date.setDate(date.getDate() - config.settings.daysInHistogram)
if (typeof window !== 'undefined') {
return (
<div
key={`${monitor.id}-histogram`}
className="horizontal flex histogram"
>
{Array.from(Array(config.settings.daysInHistogram).keys()).map(key => {
date.setDate(date.getDate() + 1)
const dayInHistogram = date.toISOString().split('T')[0]
const dayInHistogramKey = 'h_' + monitor.id + '_' + dayInHistogram
let bg = ''
let dayInHistogramLabel = config.settings.dayInHistogramNoData
// filter all dates before first check, check the rest
if (kvMonitor && kvMonitor.firstCheck <= dayInHistogram) {
if (!kvMonitorsFailedDaysArray.includes(dayInHistogramKey)) {
bg = 'green'
dayInHistogramLabel = config.settings.dayInHistogramOperational
} else {
bg = 'orange'
dayInHistogramLabel = config.settings.dayInHistogramNotOperational
}
}
return (
<div key={key} className="hitbox">
<div
className={`${bg} bar`}
data-tooltip={`${dayInHistogram} - ${dayInHistogramLabel}`}
/>
</div>
)
})}
</div>
)
} else {
return (
<div
key={`${monitor.id}-histogram`}
className="horizontal flex histogram"
>
<div className="grey-text">Loading histogram ...</div>
</div>
)
}
}