Add cards, operations, refunds, categories and monthly summaries with Mantine date controls. Derive banking types from runtime OpenAPI. Cover recovery and session isolation.
45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
import { FormProvider, useForm } from "react-hook-form";
|
|
import type { BankCardValues } from "../model/form-validation";
|
|
import { BankCardFields } from "./BankCardForm.view";
|
|
|
|
const meta = {
|
|
title: "Product/BankCards/CardFields",
|
|
component: BankCardFields,
|
|
tags: ["autodocs"],
|
|
args: { archived: false },
|
|
decorators: [
|
|
(Story) => {
|
|
const methods = useForm<BankCardValues>({
|
|
defaultValues: {
|
|
name: "Учебная повседневная карта",
|
|
bankName: "Вымышленный банк",
|
|
lastFour: "1234",
|
|
openingBalance: "-92233720368547758.08",
|
|
openingDate: "2026-08-01",
|
|
},
|
|
});
|
|
return (
|
|
<FormProvider {...methods}>
|
|
<Story />
|
|
</FormProvider>
|
|
);
|
|
},
|
|
],
|
|
parameters: {
|
|
docs: {
|
|
description: {
|
|
component:
|
|
"Поля ручной дебетовой карты на вымышленных данных. Сохранения и обращения к API нет. Архив оставляет описательные сведения доступными, а финансовые поля — только для чтения.",
|
|
},
|
|
},
|
|
},
|
|
} satisfies Meta<typeof BankCardFields>;
|
|
export default meta;
|
|
type Story = StoryObj<typeof meta>;
|
|
export const Active: Story = { name: "Независимая карта в рублях" };
|
|
export const Archived: Story = {
|
|
name: "Финансовые поля архивной карты",
|
|
args: { archived: true },
|
|
};
|