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

100% Statements 45/45
100% Branches 2/2
100% Functions 2/2
100% Lines 45/45

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 551x         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 7x 7x 7x   1x 1x   1x 8x   8x 8x   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 { Datepicker, DatepickerProps } from './datepicker'
 
export default {
  title: 'Shared/Datepicker',
  component: Datepicker,
  args: {
    name: 'storybook-datepicker',
    inputProps: {
      label: 'Date',
    },
  },
  argTypes: {
    disabled: {
      control: 'boolean',
      defaultValue: false,
    },
    isSaved: {
      control: 'boolean',
      defaultValue: false,
    },
    inputProps: {
      table: {
        disable: true,
      },
    },
  },
  decorators: [
    Story => (
      <div className='flex justify-center p-12'>
        <Story />
      </div>
    ),
  ],
} as Meta
 
const Template: Story<DatepickerProps> = args => {
  const [date, setDate] = useState<Nullable<string>>()
 
  return <Datepicker value={date} onChange={setDate} className='w-80' {...args} />
}
 
export const Default = Template.bind({})
Default.args = {}
 
export const WithError = Template.bind({})
WithError.args = {
  inputProps: {
    label: 'Date',
    error: { type: 'required', message: 'Invalid date' },
  },
}