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