diff --git a/apps/bot/src/miniapp-dashboard.ts b/apps/bot/src/miniapp-dashboard.ts
index 84890d5..6839438 100644
--- a/apps/bot/src/miniapp-dashboard.ts
+++ b/apps/bot/src/miniapp-dashboard.ts
@@ -124,6 +124,27 @@ export function createMiniAppDashboardHandler(options: {
})),
explanations: line.explanations
})),
+ paymentPeriods: (dashboard.paymentPeriods ?? []).map((period) => ({
+ period: period.period,
+ utilityTotalMajor: period.utilityTotal.toMajorString(),
+ hasOverdueBalance: period.hasOverdueBalance,
+ isCurrentPeriod: period.isCurrentPeriod,
+ kinds: period.kinds.map((kind) => ({
+ kind: kind.kind,
+ totalDueMajor: kind.totalDue.toMajorString(),
+ totalPaidMajor: kind.totalPaid.toMajorString(),
+ totalRemainingMajor: kind.totalRemaining.toMajorString(),
+ unresolvedMembers: kind.unresolvedMembers.map((member) => ({
+ memberId: member.memberId,
+ displayName: member.displayName,
+ suggestedAmountMajor: member.suggestedAmount.toMajorString(),
+ baseDueMajor: member.baseDue.toMajorString(),
+ paidMajor: member.paid.toMajorString(),
+ remainingMajor: member.remaining.toMajorString(),
+ effectivelySettled: member.effectivelySettled
+ }))
+ }))
+ })),
ledger: dashboard.ledger.map((entry) => ({
id: entry.id,
kind: entry.kind,
diff --git a/apps/miniapp/src/components/layout/shell.tsx b/apps/miniapp/src/components/layout/shell.tsx
index c2f5a54..5675a9f 100644
--- a/apps/miniapp/src/components/layout/shell.tsx
+++ b/apps/miniapp/src/components/layout/shell.tsx
@@ -5,6 +5,7 @@ import { Settings } from 'lucide-solid'
import { useSession } from '../../contexts/session-context'
import { useI18n } from '../../contexts/i18n-context'
import { useDashboard } from '../../contexts/dashboard-context'
+import { formatCyclePeriod } from '../../lib/dates'
import { NavigationTabs } from './navigation-tabs'
import { Badge } from '../ui/badge'
import { Button, IconButton } from '../ui/button'
@@ -234,7 +235,9 @@ export function AppShell(props: ParentProps) {
{copy().unresolvedPurchasesEmpty}
} @@ -664,13 +708,23 @@ export default function LedgerRoute() {{copy().resolvedPurchasesEmpty}
} @@ -703,13 +756,25 @@ export default function LedgerRoute() {{copy().utilityLedgerEmpty}
} - > -{copy().utilityLedgerEmpty}
} + > +{copy().utilityLedgerEmpty}
} + > +{error()}
} +{copy().paymentsEmpty}
} > -