2022-04-18 04:50:39 +03:00
|
|
|
import React, { useState } from 'react';
|
|
|
|
import { ComponentStory, ComponentMeta } from '@storybook/react';
|
|
|
|
import {
|
|
|
|
Button,
|
|
|
|
Form,
|
|
|
|
Input,
|
|
|
|
Radio,
|
|
|
|
Select,
|
|
|
|
Cascader,
|
|
|
|
DatePicker,
|
|
|
|
InputNumber,
|
|
|
|
TreeSelect,
|
|
|
|
Switch,
|
|
|
|
} from 'antd';
|
2022-05-12 09:31:31 +03:00
|
|
|
import { SizeType } from 'antd/lib/config-provider/SizeContext';
|
2022-04-18 04:50:39 +03:00
|
|
|
|
|
|
|
const FormExample = () => {
|
|
|
|
const [componentSize, setComponentSize] = useState('default');
|
|
|
|
|
|
|
|
const onFormLayoutChange = ({ size }) => {
|
|
|
|
setComponentSize(size);
|
|
|
|
};
|
|
|
|
|
|
|
|
return (
|
|
|
|
<Form
|
|
|
|
labelCol={{
|
|
|
|
span: 4,
|
|
|
|
}}
|
|
|
|
wrapperCol={{
|
|
|
|
span: 14,
|
|
|
|
}}
|
|
|
|
layout="horizontal"
|
|
|
|
initialValues={{
|
|
|
|
size: componentSize,
|
|
|
|
}}
|
|
|
|
onValuesChange={onFormLayoutChange}
|
2022-05-12 09:31:31 +03:00
|
|
|
size={componentSize as SizeType}
|
2022-04-18 04:50:39 +03:00
|
|
|
>
|
|
|
|
<Form.Item label="Form Size" name="size">
|
|
|
|
<Radio.Group>
|
|
|
|
<Radio.Button value="small">Small</Radio.Button>
|
|
|
|
<Radio.Button value="default">Default</Radio.Button>
|
|
|
|
<Radio.Button value="large">Large</Radio.Button>
|
|
|
|
</Radio.Group>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="Required text input" required>
|
|
|
|
<Input />
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="Select">
|
|
|
|
<Select>
|
|
|
|
<Select.Option value="demo">Demo</Select.Option>
|
|
|
|
</Select>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="TreeSelect">
|
|
|
|
<TreeSelect
|
|
|
|
treeData={[
|
|
|
|
{
|
|
|
|
title: 'Light',
|
|
|
|
value: 'light',
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
title: 'Bamboo',
|
|
|
|
value: 'bamboo',
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
]}
|
|
|
|
/>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="Cascader">
|
|
|
|
<Cascader
|
|
|
|
options={[
|
|
|
|
{
|
|
|
|
value: 'zhejiang',
|
|
|
|
label: 'Zhejiang',
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
value: 'hangzhou',
|
|
|
|
label: 'Hangzhou',
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
]}
|
|
|
|
/>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="DatePicker">
|
|
|
|
<DatePicker />
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="InputNumber">
|
|
|
|
<InputNumber />
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="Switch" valuePropName="checked">
|
|
|
|
<Switch />
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="Button">
|
|
|
|
<Button>Button</Button>
|
|
|
|
</Form.Item>
|
|
|
|
</Form>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default {
|
2022-04-28 09:19:20 +03:00
|
|
|
title: 'example/Form',
|
2022-04-18 04:50:39 +03:00
|
|
|
component: Form,
|
|
|
|
// parameters: {},
|
|
|
|
} as ComponentMeta<typeof Form>;
|
|
|
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
|
|
const Template: ComponentStory<typeof Form> = args => <FormExample />;
|
|
|
|
|
|
|
|
export const Demo = Template.bind({});
|