Fix Net Worth tab crash and rebuild for balance sheet endpoint

- Replace invalid currency="%"/currency="" StatCard calls that caused
  Intl.NumberFormat to throw RangeError and blank the page
- Render 30d change % and snapshot count as plain inline cards

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
megaproxy 2026-04-21 15:50:28 +00:00
parent eaea2c6ce9
commit 74e57a35c0

View file

@ -247,8 +247,16 @@ function NetWorthTab() {
<div className="space-y-4"> <div className="space-y-4">
<div className="grid grid-cols-3 gap-4"> <div className="grid grid-cols-3 gap-4">
<StatCard label="Net Worth" value={Number(data.current_net_worth)} change={Number(data.change_30d)} currency={data.base_currency} /> <StatCard label="Net Worth" value={Number(data.current_net_worth)} change={Number(data.change_30d)} currency={data.base_currency} />
<StatCard label="30d Change %" value={Number(data.change_30d_pct)} currency="%" /> <div className="bg-card border border-border rounded-xl p-4">
<StatCard label="Data Points" value={data.points.length} currency="" /> <p className="text-xs text-muted-foreground mb-1">30d Change</p>
<p className={cn("text-xl font-bold tabular-nums", Number(data.change_30d_pct) >= 0 ? "text-success" : "text-destructive")}>
{Number(data.change_30d_pct) >= 0 ? "+" : ""}{Number(data.change_30d_pct).toFixed(2)}%
</p>
</div>
<div className="bg-card border border-border rounded-xl p-4">
<p className="text-xs text-muted-foreground mb-1">History</p>
<p className="text-xl font-bold tabular-nums">{data.points.length} snapshot{data.points.length !== 1 ? "s" : ""}</p>
</div>
</div> </div>
{data.points.length === 0 ? ( {data.points.length === 0 ? (
<EmptyChart message="No snapshots yet — snapshots are taken daily at 2am" /> <EmptyChart message="No snapshots yet — snapshots are taken daily at 2am" />