From 07ff0f2f8d3583fbefe5e2af18e1bba304108bc2 Mon Sep 17 00:00:00 2001 From: Guido Date: Sun, 30 Aug 2026 15:20:07 +0200 Subject: [PATCH] fix: Ein gescheiterter Abruf sah aus wie "keine Ausgaben" Die Aufstellung eines Ausgaben-Anteils schluckte jeden Fehler und zeigte stattdessen "Noch keine Ausgaben in diesem Monat" mit einer Summe von 0.00 - waehrend die Karte daneben einen Betrag nannte. Damit war der Widerspruch, den das Fenster aufloesen sollte, groesser als vorher. Jetzt steht dort, was schiefging. Co-Authored-By: Claude Opus 5 --- web/src/dashboard/cards.jsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web/src/dashboard/cards.jsx b/web/src/dashboard/cards.jsx index a05cd4c..5d86781 100644 --- a/web/src/dashboard/cards.jsx +++ b/web/src/dashboard/cards.jsx @@ -161,17 +161,21 @@ function AnteilDetails({ einheit, currency, onClose }) { const { t } = useTranslation(); const { formatDate } = useSettings(); const [data, setData] = useState(null); + // Ein gescheiterter Abruf darf NICHT aussehen wie "nichts gefunden". Genau + // das tat er: Die Karte nannte einen Betrag, das Fenster sagte "keine + // Ausgaben" – und der Fehler blieb unsichtbar. + const [fehler, setFehler] = useState(null); useEffect(() => { let ok = true; api.cardExpenseShareRows(einheit.ids || []) .then((d) => ok && setData(d)) - .catch(() => ok && setData({ rows: [], __error: true })); + .catch((err) => ok && setFehler(err.message || String(err))); return () => { ok = false; }; }, [einheit]); return ( - {!data ? : ( + {fehler ?
{fehler}
: !data ? : ( <>

{formatDate(data.von)} – {formatDate(data.bis)}

{!data.rows.length &&
{t("cards.noExpenses")}
}