import type { Meta, StoryObj } from "@storybook/react-vite"; import { BankSummaryView } from "./BankSummary.view"; const money = (value: string) => ({ currency: "RUB", value }); const meta = { title: "Product/BankCards/Summary", component: BankSummaryView, tags: ["autodocs"], parameters: { docs: { description: { component: "Месячные расходы ручного учёта. Вымышленные суммы, без API и сохранения. Один итог с учётом возвратов и компактные строки категорий. Отрицательные суммы сохраняют знак.", }, }, }, args: { loading: false, error: false, fetching: false, retry: () => {}, data: { month: "2026-09", cardId: null, expenses: money("8500"), refunds: money("1000"), net: money("7500"), categories: [ { categoryId: "food", categoryName: "Продукты", expenses: money("3500"), refunds: money("1000"), net: money("2500"), }, { categoryId: "cafe", categoryName: "Кафе", expenses: money("2200"), refunds: money("0"), net: money("2200"), }, { categoryId: "taxi", categoryName: "Такси", expenses: money("1800"), refunds: money("0"), net: money("1800"), }, { categoryId: "health", categoryName: "Здоровье", expenses: money("1000"), refunds: money("0"), net: money("1000"), }, ], }, }, } satisfies Meta; export default meta; type Story = StoryObj; export const Loaded: Story = { name: "Расходы по категориям" }; export const RefundMonth: Story = { name: "Возврат покупки прошлого месяца", args: { data: { month: "2026-09", cardId: null, expenses: money("0"), refunds: money("600"), net: money("-600"), categories: [ { categoryId: "shopping", categoryName: "Покупки с длинным пользовательским названием категории", expenses: money("0"), refunds: money("600"), net: money("-600"), }, ], }, }, }; export const Empty: Story = { name: "Известные нули", args: { data: { month: "2026-09", cardId: null, expenses: money("0"), refunds: money("0"), net: money("0"), categories: [], }, }, }; export const Loading: Story = { name: "Начальная загрузка", args: { data: undefined, loading: true }, }; export const Failed: Story = { name: "Ошибка без данных", args: { data: undefined, error: true }, }; export const CachedError: Story = { name: "Сохранённые суммы при ошибке обновления", args: { error: true }, }; export const LongAmounts: Story = { name: "Точный итог длиннее предела отдельного ввода", args: { data: { month: "2026-09", cardId: null, expenses: money("184467440737095516.14"), refunds: money("0"), net: money("184467440737095516.14"), categories: [ { categoryId: "shopping", categoryName: "Покупки", expenses: money("184467440737095516.14"), refunds: money("0"), net: money("184467440737095516.14"), }, ], }, }, };