import { Meta, StoryObj } from '@storybook/react'; import InputField from './Input'; import { ChangeEvent, useState } from 'react'; const meta: Meta = { title: 'Components/Input', component: InputField, parameters: { layout: 'centered' }, tags: ['autodocs'], }; type Story = StoryObj; const defaultArgs = { name: 'input', label: '', disabled: false, placeholder: 'Enter your name', value: '', type: 'text', }; export const Primary: Story = { args: { ...defaultArgs, label: 'Name', variant: 'primary', type: 'text', }, }; export const Success: Story = { args: { ...defaultArgs, variant: 'success', helperText: 'Success text', showMessageIcon: true, className: '', type: 'text', }, }; export const Warning: Story = { args: { ...defaultArgs, variant: 'warning', helperText: 'Warning text', showMessageIcon: true, type: 'text', }, }; export const Danger: Story = { args: { ...defaultArgs, variant: 'danger', helperText: 'Error text', showMessageIcon: true, type: 'text', }, }; export const Disabled: Story = { args: { ...defaultArgs, label: 'Name', variant: 'info', disabled: true, helperText: 'Disable text', showMessageIcon: true, type: 'text', }, }; export const WithValue: Story = { render: () => { const [value, setValue] = useState('Web Element'); const [error, setError] = useState(false); const [helperText, setHelperText] = useState(); const onChangeHandler = (event: ChangeEvent) => { const value = event.target.value; if (event.target.required) { if (value.length <= 0) { setError(true); setHelperText(`${event?.target?.name} is required`); } else { setError(false); setHelperText(''); } } setValue(value); }; return ( <> ); }, }; export const Controlled: Story = { render: () => { const [value, setValue] = useState(''); const [error, setError] = useState(true); const [helperText, setHelperText] = useState('Field is required'); const onChangeHandler = (event: ChangeEvent) => { const value = event.target.value; if (event.target.required) { if (value.length <= 0) { setError(true); setHelperText('Field is required'); } else { setError(false); setHelperText(''); } } setValue(value); }; return ( <> ); }, }; export const Number: Story = { render: () => { const [value, setValue] = useState('1'); const [minValue, setMinValue] = useState(-Infinity); const [maxValue, setMaxValue] = useState(Infinity); const onChangeHandler = (event: React.ChangeEvent) => { setValue(String(event.target.value)); }; return ( <> ); }, }; export default meta;