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")}
}