Fix: fix uptime robot for empty logs (#5866)

This commit is contained in:
shamoon
2025-10-13 07:43:26 -07:00
committed by GitHub
parent 837717461f
commit 3f8da51aeb

View File

@@ -52,6 +52,7 @@ export default function Component({ service }) {
let status; let status;
let uptime = 0; let uptime = 0;
let logIndex = 0; let logIndex = 0;
const hasLogs = Array.isArray(monitor.logs) && monitor.logs.length > 0;
switch (monitor.status) { switch (monitor.status) {
case 0: case 0:
@@ -62,7 +63,7 @@ export default function Component({ service }) {
break; break;
case 2: case 2:
status = t("uptimerobot.up"); status = t("uptimerobot.up");
uptime = t("common.duration", { value: monitor.logs[0].duration }); uptime = t("common.duration", { value: hasLogs ? monitor.logs[0].duration : 0 });
logIndex = 1; logIndex = 1;
break; break;
case 8: case 8:
@@ -76,14 +77,14 @@ export default function Component({ service }) {
break; break;
} }
const lastDown = new Date(monitor.logs[logIndex].datetime * 1000).toLocaleString(); const lastDown = hasLogs ? new Date(monitor.logs[logIndex].datetime * 1000).toLocaleString() : "";
const downDuration = t("common.duration", { value: monitor.logs[logIndex].duration }); const downDuration = t("common.duration", { value: hasLogs ? monitor.logs[logIndex].duration : 0 });
const hideDown = logIndex === 1 && monitor.logs[logIndex].type !== 1; const hideDown = !hasLogs || (logIndex === 1 && monitor.logs[logIndex].type !== 1);
return ( return (
<Container service={service}> <Container service={service}>
<Block label="uptimerobot.status" value={status} /> <Block label="uptimerobot.status" value={status} />
<Block label="uptimerobot.uptime" value={uptime} /> {hasLogs && <Block label="uptimerobot.uptime" value={uptime} />}
{!hideDown && <Block label="uptimerobot.lastDown" value={lastDown} />} {!hideDown && <Block label="uptimerobot.lastDown" value={lastDown} />}
{!hideDown && <Block label="uptimerobot.downDuration" value={downDuration} />} {!hideDown && <Block label="uptimerobot.downDuration" value={downDuration} />}
</Container> </Container>