mirror of
https://github.com/henrygd/beszel.git
synced 2026-09-26 11:27:47 +02:00
wifi: hide chart without signal data, show unknown signal in table
The line chart never renders without values, leaving an endless spinner when connected interfaces report no RSSI.
This commit is contained in:
@@ -213,7 +213,6 @@ export default memo(function SystemDetail({ id }: { id: string }) {
|
||||
<TemperatureChart {...coreProps} setPageBottomExtraMargin={setPageBottomExtraMargin} />
|
||||
<FanChart {...coreProps} />
|
||||
<BatteryChart system={system} {...coreProps} />
|
||||
<WiFiChart system={system} {...coreProps} />
|
||||
{pageBottomExtraMargin > 0 && <div style={{ marginBottom: pageBottomExtraMargin }}></div>}
|
||||
</div>
|
||||
</TabsContent>
|
||||
@@ -223,6 +222,7 @@ export default memo(function SystemDetail({ id }: { id: string }) {
|
||||
<>
|
||||
<div className="grid xl:grid-cols-2 gap-4">
|
||||
<BandwidthChart {...coreProps} systemStats={systemStats} />
|
||||
<WiFiChart system={system} {...coreProps} />
|
||||
</div>
|
||||
{hasNetworkMonitors && <LazyNetworkMonitorsTable systemId={system.id} />}
|
||||
</>
|
||||
|
||||
@@ -16,7 +16,11 @@ export function WiFiChart({
|
||||
dataEmpty: boolean
|
||||
}) {
|
||||
const interfaces = connectedWiFi(system)
|
||||
if (!interfaces.length) return null
|
||||
// Associated interfaces may not report RSSI; without any readings the chart would never render.
|
||||
const hasSignal = interfaces.some(
|
||||
([id, wifi]) => wifi.r !== undefined || chartData.systemStats.some((record) => record.stats?.wf?.[id] !== undefined)
|
||||
)
|
||||
if (!hasSignal) return null
|
||||
const dataPoints = interfaces.map(([id, current]) => ({
|
||||
label: current.s ? `${id} (${current.s})` : id,
|
||||
color: wifiColor(id),
|
||||
@@ -27,12 +31,7 @@ export function WiFiChart({
|
||||
empty={dataEmpty}
|
||||
grid={grid}
|
||||
title={t`Wi-Fi signal`}
|
||||
description={interfaces
|
||||
.map(
|
||||
([id, value]) =>
|
||||
`${id}${value.s ? ` (${value.s})` : ""}: ${value.r == null ? t`Unavailable` : `${value.r} dBm`}`,
|
||||
)
|
||||
.join(" · ")}
|
||||
description={t`Signal strength of connected Wi-Fi interfaces`}
|
||||
>
|
||||
<LineChartDefault
|
||||
chartData={chartData}
|
||||
|
||||
@@ -708,9 +708,10 @@ function WiFiSignal({ wifi, className }: { wifi: WiFi; className?: ClassValue })
|
||||
[STATUS_COLORS[SystemStatus.Up]]: state === MeterState.Good,
|
||||
[STATUS_COLORS[SystemStatus.Pending]]: state === MeterState.Warn,
|
||||
[STATUS_COLORS[SystemStatus.Down]]: state === MeterState.Crit,
|
||||
[STATUS_COLORS[SystemStatus.Paused]]: state === undefined,
|
||||
})}
|
||||
/>
|
||||
{wifi.r === undefined ? "—" : `${wifi.r} dBm`}
|
||||
{wifi.r === undefined ? t`Unknown` : `${wifi.r} dBm`}
|
||||
</span>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user