fix: handle optional lifetime in consumption page UI

lifetime is now optional in DailyConsumption — guard all .lifetime
accesses. The Ömür boyu card uses the derived total (sum of days).

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
TCFDONMEZ
2026-10-09 23:56:04 +03:00
co-authored by Claude
parent ed5e38bdb8
commit 8f49871e6f
+4 -3
View File
@@ -28,7 +28,8 @@ export default async function ConsumptionPage({
const chartDays = days.map((day) => ({ date: day.date, kwh: day.day.kwh, km: day.day.km })); const chartDays = days.map((day) => ({ date: day.date, kwh: day.day.kwh, km: day.day.km }));
const total = sumDays(days); const total = sumDays(days);
const lifetime = days[days.length - 1].lifetime; // Lifetime is derived: the sum of every day's totals, same as the backend computes.
const lifetime = { km: total.km, kwh: total.kwh, hours: total.hours, socDrop: 0 };
// Newest first for reading; the charts above keep chronological order. // Newest first for reading; the charts above keep chronological order.
const table = [...days].reverse(); const table = [...days].reverse();
@@ -91,7 +92,7 @@ export default async function ConsumptionPage({
<div className="rows"> <div className="rows">
<Row label="Sürüş süresi" value={duration(selected.day.hours * 3600)} /> <Row label="Sürüş süresi" value={duration(selected.day.hours * 3600)} />
<Row label="Doluluk düşüşü" value={`%${num(selected.day.socDrop)}`} /> <Row label="Doluluk düşüşü" value={`%${num(selected.day.socDrop)}`} />
<Row label="O gün sonu ömür boyu" value={`${num(selected.lifetime.km)} km`} /> <Row label="O gün sonu ömür boyu" value={selected.lifetime ? `${num(selected.lifetime.km)} km` : "—"} />
</div> </div>
</> </>
) : ( ) : (
@@ -163,7 +164,7 @@ export default async function ConsumptionPage({
value={day.day.hours > 0 ? `${num(day.day.km / day.day.hours)} km/h` : "—"} value={day.day.hours > 0 ? `${num(day.day.km / day.day.hours)} km/h` : "—"}
/> />
<Row label="Doluluk düşüşü" value={`%${num(day.day.socDrop)}`} /> <Row label="Doluluk düşüşü" value={`%${num(day.day.socDrop)}`} />
<Row label="O gün sonu ömür boyu" value={`${num(day.lifetime.km)} km`} /> <Row label="O gün sonu ömür boyu" value={day.lifetime ? `${num(day.lifetime.km)} km` : "—"} />
</div> </div>
</div> </div>
</details> </details>