feat(ui): kart özeti, KMH paneli, taksit seçimi ve kalan taksit iptali

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 11:19:17 +03:00
parent cc624af69f
commit 0ad52757ad
7 changed files with 512 additions and 9 deletions
@@ -27,6 +27,8 @@ import { todayIstanbul } from "@/shared/dates";
import { formatDate, formatMoney } from "@/shared/format";
import { previewReconciliationAction, reconcileAccountAction } from "../actions";
import type { AccountStatement, ReconcilePreview, StatementRow } from "../statement";
import type { CardSummary, OverdraftSummary } from "../card";
import { CardSummaryPanel, OverdraftPanel } from "./card-summary";
import { RowIcon, rowSubtitle, rowTitle, useTransactionDetail } from "./transaction-parts";
const t = tr.statement;
@@ -57,9 +59,13 @@ function SignedMoney({ minor, className }: { minor: number; className?: string }
export function StatementView({
statement: s,
card,
overdraft,
canWrite,
}: {
statement: AccountStatement;
card?: CardSummary | null;
overdraft?: OverdraftSummary | null;
canWrite: boolean;
}) {
const { openDetail, element: detailElement } = useTransactionDetail(canWrite);
@@ -95,6 +101,13 @@ export function StatementView({
}
/>
{card ? (
<CardSummaryPanel summary={card} accountId={s.account.id} canWrite={canWrite} />
) : null}
{overdraft ? (
<OverdraftPanel summary={overdraft} accountId={s.account.id} canWrite={canWrite} />
) : null}
<div className="flex items-center justify-between gap-2">
<Button variant="outline" size="icon-sm" asChild aria-label={t.prevMonth}>
<Link href={`${base}?ay=${s.prevMonth}`}>