Fix: Darstellung robust gegen unerwartete Datenelemente
TypeError "(destructured parameter) is not iterable" bei der Summenberechnung (data.reduce mit [, v]) konnte die Seite crashen, wenn data ein Element enthielt, das kein [number, number]-Tupel ist. Loesung: Daten beim Laden in fetchData validieren (nur valide Tupel werden uebernommen). Damit sind sowohl die Summenzeile als auch BarChart robust. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -110,7 +110,18 @@ function ChartCard({ range, every, title, color, selector }: ChartCardProps) {
|
||||
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
||||
const json = await res.json();
|
||||
if (json.success) {
|
||||
setData(json.data);
|
||||
// nur valide [number, number]-Tupel uebernehmen (robust gegen
|
||||
// unerwartete Elemente, damit die Darstellung nie crasht)
|
||||
const clean: VerbrauchPoint[] = Array.isArray(json.data)
|
||||
? (json.data as unknown[]).filter(
|
||||
(p): p is VerbrauchPoint =>
|
||||
Array.isArray(p) &&
|
||||
p.length >= 2 &&
|
||||
typeof p[0] === 'number' &&
|
||||
typeof p[1] === 'number'
|
||||
)
|
||||
: [];
|
||||
setData(clean);
|
||||
} else {
|
||||
setError(json.error || 'Fehler beim Laden der Daten.');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user