|
- import ParameterInput, { ParameterInputValue } from '@/components/ParameterInput';
- import { action } from '@storybook/addon-actions';
- import type { Meta, StoryObj } from '@storybook/react';
- import { fn } from '@storybook/test';
- import { Button } from 'antd';
- import { useState } from 'react';
-
- // More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
- const meta = {
- title: 'Components/ParameterInput 参数输入框',
- component: ParameterInput,
- parameters: {
- // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
- // layout: 'centered',
- },
- // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
- tags: ['autodocs'],
- // More on argTypes: https://storybook.js.org/docs/api/argtypes
- argTypes: {
- // backgroundColor: { control: 'color' },
- },
- // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args
- args: { onChange: fn() },
- } satisfies Meta<typeof ParameterInput>;
-
- export default meta;
- type Story = StoryObj<typeof meta>;
-
- // More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
- export const Input: Story = {
- args: {
- placeholder: '请输入工作目录',
- style: { width: 300 },
- canInput: true,
- textArea: false,
- allowClear: true,
- size: 'large',
- },
- };
-
- export const Select: Story = {
- args: {
- placeholder: '请输入工作目录',
- style: { width: 300 },
- canInput: true,
- size: 'large',
- },
- render: function Render(args) {
- const [value, setValue] = useState<ParameterInputValue | undefined>('');
-
- const onClick = () => {
- const value = {
- value: 'storybook',
- showValue: 'storybook',
- fromSelect: true,
- otherValue: 'others',
- };
- setValue(value);
- action('onChange')(value);
- };
- return (
- <>
- <ParameterInput
- {...args}
- value={value}
- onChange={(value) => {
- setValue(value);
- action('onChange')(value);
- }}
- ></ParameterInput>
- <Button type="primary" style={{ display: 'block', marginTop: 10 }} onClick={onClick}>
- 模拟从全局参数选择
- </Button>
- </>
- );
- },
- };
-
- export const Ellipse: Story = {
- args: {
- placeholder: '请输入工作目录',
- style: { width: 300 },
- canInput: true,
- size: 'large',
- },
- render: function Render(args) {
- const [value, setValue] = useState<ParameterInputValue | undefined>('');
-
- const onClick = () => {
- const value = {
- value: 'storybook',
- showValue:
- 'storybookstorybookstorybookstorybookstorybookstorybookstorybookstorybookstorybookstorybook',
- fromSelect: true,
- otherValue: 'others',
- };
- setValue(value);
- action('onChange')(value);
- };
- return (
- <>
- <ParameterInput
- {...args}
- value={value}
- onChange={(value) => {
- setValue(value);
- action('onChange')(value);
- }}
- ></ParameterInput>
- <Button type="primary" style={{ display: 'block', marginTop: 10 }} onClick={onClick}>
- 模拟从全局参数选择
- </Button>
- </>
- );
- },
- };
-
- export const Disabled: Story = {
- args: {
- placeholder: '请输入工作目录',
- style: { width: 300 },
- value: {
- value: 'storybook',
- showValue: 'storybook',
- fromSelect: true,
- },
- canInput: true,
- size: 'large',
- disabled: true,
- },
- };
|