"use client"; import { useRouter, usePathname } from "next/navigation"; import { CopyButton } from "@/components/copy-button"; function formatMonthLabel(monthKey: string): string { const [y, m] = monthKey.split("-").map(Number); const labels = ["янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"]; return `${labels[m - 1]} ${y}`; } interface MonthlyMoneyStats { totalCost: number; totalPrepayment: number; totalDiscount: number; totalOutstanding: number; } function fmtMoney(n: number): string { return n.toLocaleString("ru-RU"); } export function StatisticsView({ monthKey, stats, money, }: { monthKey: string; stats: { name: string; count: number }[]; money: MonthlyMoneyStats; }) { const router = useRouter(); const pathname = usePathname(); const total = stats.reduce((s, r) => s + r.count, 0); const max = Math.max(1, ...stats.map((r) => r.count)); const summaryText = [ `Статистика по бронированиям на ${formatMonthLabel(monthKey)}:`, "", ...stats.map((r) => `${r.name}: ${r.count}`), "", `Сумма бронирований: ${fmtMoney(money.totalCost)} ₽`, `Собрано предоплат: ${fmtMoney(money.totalPrepayment)} ₽`, `Остаток к оплате: ${fmtMoney(money.totalOutstanding)} ₽`, money.totalDiscount > 0 ? `Скидок дано: ${fmtMoney(money.totalDiscount)} ₽` : null, ] .filter((l) => l !== null) .join("\n"); return (
router.push(`${pathname}?month=${e.target.value}`)} className="rounded-md border border-border bg-surface px-3 py-1.5 text-sm outline-none focus:border-accent" /> Всего бронирований: {total} {stats.length > 0 && }

Сумма бронирований

{fmtMoney(money.totalCost)} ₽

Собрано предоплат

{fmtMoney(money.totalPrepayment)} ₽

Остаток к оплате

{fmtMoney(money.totalOutstanding)} ₽

Скидок дано

{fmtMoney(money.totalDiscount)} ₽

{stats.length === 0 ? (

За этот месяц бронирований нет.

) : (
{stats.map((r) => (
{r.name}
{r.count}
))}
)}
); }