All files / app/src/shared/ui/select select.stories.tsx

100% Statements 49/49
100% Branches 1/1
100% Functions 1/1
100% Lines 49/49

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 591x         1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x   1x 2x   2x 2x   1x 1x   1x 1x 1x 1x   1x 1x 1x 1x 1x 1x  
import { Nullable } from '@/shared/@types'
import { Story, Meta } from '@storybook/react'
import { useState } from 'react'
import { Select, SelectProps } from './select'
 
export default {
  title: 'Shared/Select',
  component: Select,
  args: {
    options: [
      { id: 1, label: 'Durward Reynolds' },
      { id: 2, label: 'Kenton Towne' },
      { id: 3, label: 'Therese Wunsch' },
      { id: 4, label: 'Benedict Kessler' },
      { id: 5, label: 'Katelyn Rohan' },
    ],
  },
  argTypes: {
    disabled: {
      control: 'boolean',
      defaultValue: false,
    },
    isLoading: {
      control: 'boolean',
      defaultValue: false,
    },
    isSaved: {
      control: 'boolean',
      defaultValue: false,
    },
    options: {
      table: {
        disable: true,
      },
    },
  },
} as Meta
 
const Template: Story<SelectProps<number>> = args => {
  const [value, onChange] = useState<Nullable<number>>(null)
 
  return <Select className='max-w-sm' {...args} value={value} onChange={onChange} label='StorySelect' />
}
 
export const Default = Template.bind({})
Default.args = {}
 
export const Empty = Template.bind({})
Empty.args = {
  options: [],
}
 
export const WithError = Template.bind({})
WithError.args = {
  inputProps: {
    error: { type: 'required', message: 'StorySelectSearchError' },
  },
}