'use client'; /** * Transactions Dashboard — Transaction volume, types, and financial flow. * * Displays: * - 2 KPI cards: total Transaction count, total Transaction amount * - Line chart: transaction volume over time (monthly count) * - Pie chart: transactions by type (royalty, fee, advance, adjustment) * - Bar chart: transaction amounts by currency * - Bar chart: monthly transaction totals (sum of amounts) * - DateRangeFilter at the top * * Requirements: 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7 */ import { useTransactionsData } from '@/lib/api/queries'; import { useTranslation } from '@/lib/hooks/useTranslation'; import { formatNumber } from '@/lib/utils/format'; import { useCurrencyFormatter, useCurrencyAxisFormatter } from '@/lib/hooks/useCurrencyFormatter'; import { chartColors } from '@/lib/constants/theme'; import DateRangeFilter from '@/components/dashboard/DateRangeFilter'; import KpiGrid from '@/components/dashboard/KpiGrid'; import KpiCard from '@/components/dashboard/KpiCard'; import ChartGrid from '@/components/dashboard/ChartGrid'; import ChartCard from '@/components/charts/ChartCard'; import LineChartWidget from '@/components/charts/LineChartWidget'; import PieChartWidget from '@/components/charts/PieChartWidget'; import BarChartWidget from '@/components/charts/BarChartWidget'; export default function TransactionsPage() { const { data, isLoading } = useTransactionsData(); const t = useTranslation(); const fmtCurrency = useCurrencyFormatter(); const fmtAxis = useCurrencyAxisFormatter(); if (isLoading || !data) { return (

{t.dashboard.loading}

); } const { kpis, volumeOverTime, byType, byCurrency, monthlyTotals } = data; return (
{/* Date Range Filter */} {/* KPI Cards */} {/* Charts */} {/* Line chart: transaction volume over time */} {/* Pie chart: by type */} {/* Bar chart: by currency */} {/* Bar chart: monthly totals */}
); }