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 <noreply@anthropic.com>
This commit is contained in:
@@ -161,17 +161,21 @@ function AnteilDetails({ einheit, currency, onClose }) {
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { formatDate } = useSettings();
|
const { formatDate } = useSettings();
|
||||||
const [data, setData] = useState(null);
|
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(() => {
|
useEffect(() => {
|
||||||
let ok = true;
|
let ok = true;
|
||||||
api.cardExpenseShareRows(einheit.ids || [])
|
api.cardExpenseShareRows(einheit.ids || [])
|
||||||
.then((d) => ok && setData(d))
|
.then((d) => ok && setData(d))
|
||||||
.catch(() => ok && setData({ rows: [], __error: true }));
|
.catch((err) => ok && setFehler(err.message || String(err)));
|
||||||
return () => { ok = false; };
|
return () => { ok = false; };
|
||||||
}, [einheit]);
|
}, [einheit]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal title={einheit.name} onClose={onClose} wide>
|
<Modal title={einheit.name} onClose={onClose} wide>
|
||||||
{!data ? <Loading /> : (
|
{fehler ? <div className="dash-empty neg">{fehler}</div> : !data ? <Loading /> : (
|
||||||
<>
|
<>
|
||||||
<p className="muted small">{formatDate(data.von)} – {formatDate(data.bis)}</p>
|
<p className="muted small">{formatDate(data.von)} – {formatDate(data.bis)}</p>
|
||||||
{!data.rows.length && <div className="dash-empty muted">{t("cards.noExpenses")}</div>}
|
{!data.rows.length && <div className="dash-empty muted">{t("cards.noExpenses")}</div>}
|
||||||
|
|||||||
Reference in New Issue
Block a user