fix: disable chart when offline

This commit is contained in:
hamster1963 2024-12-06 10:34:06 +08:00
parent b80af34a45
commit d746411f79
3 changed files with 82 additions and 68 deletions

View File

@ -76,6 +76,12 @@ export default function ServerDetailChart({
return <ServerDetailChartLoading />;
}
const { online } = formatNezhaInfo(nezhaWsData.now, server);
if (!online) {
return <ServerDetailChartLoading />;
}
return (
<section className="grid md:grid-cols-2 lg:grid-cols-3 grid-cols-1 gap-3">
<CpuChart now={nezhaWsData.now} data={server} />

View File

@ -130,9 +130,8 @@ export default function ServerDetailOverview({
</Card>
)}
{mem_total ? (<Card className="rounded-[10px] bg-transparent border-none shadow-none">
{mem_total ? (
<Card className="rounded-[10px] bg-transparent border-none shadow-none">
<CardContent className="px-1.5 py-1">
<section className="flex flex-col items-start gap-0.5">
<p className="text-xs text-muted-foreground">
@ -141,11 +140,11 @@ export default function ServerDetailOverview({
<div className="text-xs">{formatBytes(mem_total)}</div>
</section>
</CardContent>
</Card>) : null}
</Card>
) : null}
{disk_total ? (<Card className="rounded-[10px] bg-transparent border-none shadow-none">
{disk_total ? (
<Card className="rounded-[10px] bg-transparent border-none shadow-none">
<CardContent className="px-1.5 py-1">
<section className="flex flex-col items-start gap-0.5">
<p className="text-xs text-muted-foreground">
@ -154,9 +153,8 @@ export default function ServerDetailOverview({
<div className="text-xs">{formatBytes(disk_total)}</div>
</section>
</CardContent>
</Card>) : null}
</Card>
) : null}
{country_code && (
<Card className="rounded-[10px] bg-transparent border-none shadow-none">
@ -237,7 +235,10 @@ export default function ServerDetailOverview({
{t("serverDetail.upload")}
</p>
{net_out_transfer ? (
<div className="text-xs"> {formatBytes(net_out_transfer)} </div>
<div className="text-xs">
{" "}
{formatBytes(net_out_transfer)}{" "}
</div>
) : (
<div className="text-xs"> {t("serverDetail.unknown")}</div>
)}
@ -245,20 +246,25 @@ export default function ServerDetailOverview({
</CardContent>
</Card>
) : null}
{net_in_transfer ? (<Card className="rounded-[10px] bg-transparent border-none shadow-none">
{net_in_transfer ? (
<Card className="rounded-[10px] bg-transparent border-none shadow-none">
<CardContent className="px-1.5 py-1">
<section className="flex flex-col items-start gap-0.5">
<p className="text-xs text-muted-foreground">
{t("serverDetail.download")}
</p>
{net_in_transfer ? (
<div className="text-xs"> {formatBytes(net_in_transfer)} </div>
<div className="text-xs">
{" "}
{formatBytes(net_in_transfer)}{" "}
</div>
) : (
<div className="text-xs"> {t("serverDetail.unknown")}</div>
)}
</section>
</CardContent>
</Card>): null}
</Card>
) : null}
</section>
{server?.state.temperatures && server?.state.temperatures.length > 0 && (
<section className="flex flex-wrap gap-2 mt-1">

View File

@ -7,7 +7,9 @@ export function cn(...inputs: ClassValue[]) {
}
export function formatNezhaInfo(now: number, serverInfo: NezhaServer) {
const lastActiveTime = serverInfo.last_active.startsWith("000") ? 0 : parseISOTimestamp(serverInfo.last_active);
const lastActiveTime = serverInfo.last_active.startsWith("000")
? 0
: parseISOTimestamp(serverInfo.last_active);
return {
...serverInfo,
cpu: serverInfo.state.cpu || 0,