Add more warnings around radio config, stats loading, and packet decrypt (and remove accidentally committed script whoops)

This commit is contained in:
Jack Kingsman
2026-03-02 16:46:18 -08:00
parent 79db09bd15
commit d8294a8383
6 changed files with 43 additions and 46 deletions
@@ -103,18 +103,36 @@ export function SettingsRadioSection({
const handleSave = async () => {
setError(null);
const parsedLat = parseFloat(lat);
const parsedLon = parseFloat(lon);
const parsedTxPower = parseInt(txPower, 10);
const parsedFreq = parseFloat(freq);
const parsedBw = parseFloat(bw);
const parsedSf = parseInt(sf, 10);
const parsedCr = parseInt(cr, 10);
if (
[parsedLat, parsedLon, parsedTxPower, parsedFreq, parsedBw, parsedSf, parsedCr].some(
(v) => isNaN(v)
)
) {
setError('All numeric fields must have valid values');
return;
}
setBusy(true);
try {
const update: RadioConfigUpdate = {
lat: parseFloat(lat),
lon: parseFloat(lon),
tx_power: parseInt(txPower, 10),
lat: parsedLat,
lon: parsedLon,
tx_power: parsedTxPower,
radio: {
freq: parseFloat(freq),
bw: parseFloat(bw),
sf: parseInt(sf, 10),
cr: parseInt(cr, 10),
freq: parsedFreq,
bw: parsedBw,
sf: parsedSf,
cr: parsedCr,
},
};
await onSave(update);
@@ -6,10 +6,12 @@ import type { StatisticsResponse } from '../../types';
export function SettingsStatisticsSection({ className }: { className?: string }) {
const [stats, setStats] = useState<StatisticsResponse | null>(null);
const [statsLoading, setStatsLoading] = useState(false);
const [statsError, setStatsError] = useState(false);
useEffect(() => {
let cancelled = false;
setStatsLoading(true);
setStatsError(false);
api.getStatistics().then(
(data) => {
if (!cancelled) {
@@ -18,7 +20,10 @@ export function SettingsStatisticsSection({ className }: { className?: string })
}
},
() => {
if (!cancelled) setStatsLoading(false);
if (!cancelled) {
setStatsError(true);
setStatsLoading(false);
}
}
);
return () => {
@@ -145,6 +150,8 @@ export function SettingsStatisticsSection({ className }: { className?: string })
</>
)}
</div>
) : statsError ? (
<div className="py-8 text-center text-muted-foreground">Failed to load statistics.</div>
) : null}
</div>
);