Files
fluxent-web/app/transactions/page.tsx
T
SerinaNya c33857ffac feat(ledger): add bookkeeping workbench and transaction views
- Add transactions_dirty table and zero-tolerance cleansing action

- Implement bookkeeping workbench (/bookkeeping) with searchable Combobox channel selector and card suffix / account identifier

- Implement transaction ledger (/transactions) with date groupings, multi-currency metrics, and filters

- Update AGENTS.md guidelines for Base UI Select and Combobox bindings
2026-09-06 23:23:29 +08:00

42 lines
1.1 KiB
TypeScript

import { redirect } from "next/navigation"
import { auth } from "@/lib/auth"
import { getOfficialTransactionsAction } from "@/lib/actions/transaction"
import { AppSidebar } from "@/components/app-sidebar"
import { AppHeader } from "@/components/app-header"
import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar"
import { TransactionsView } from "./transactions-view"
export default async function TransactionsPage() {
const session = await auth()
if (!session?.user) {
redirect("/login")
}
const user = session.user
const userName = user.name || "Fluxent 用户"
const userEmail = user.email || ""
const userAvatar = user.image || null
const txnsRes = await getOfficialTransactionsAction()
const initialTransactions =
txnsRes.success && txnsRes.data ? txnsRes.data : []
return (
<SidebarProvider>
<AppSidebar
user={{
name: userName,
email: userEmail,
avatar: userAvatar,
}}
/>
<SidebarInset>
<AppHeader title="交易记录" />
<TransactionsView initialTransactions={initialTransactions} />
</SidebarInset>
</SidebarProvider>
)
}