All files / src/stories Dropdown.stories.tsx

0% Statements 0/24
100% Branches 0/0
0% Functions 0/6
0% Lines 0/24

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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85                                                                                                                                                                         
import React, { useState } from 'react';
import { action } from '@storybook/addon-actions';
import { Story } from '@storybook/react';
import Dropdown, { Props as DropdownV1Props, DropdownV1, DropdownProps } from '../components/Dropdown';
 
export default {
  title: 'Dropdown',
  component: Dropdown,
};
 
const DropdownV1Template: Story<DropdownV1Props> = (args) => {
  const [selected, setSelected] = React.useState('');
  const handleChange = (value: string) => {
    action('onChange')(value);
    setSelected(value);
  };
 
  return <DropdownV1 {...args} selected={selected} onChange={handleChange} />;
};
 
export const LegacyDropdown = DropdownV1Template.bind({});
 
LegacyDropdown.args = {
  id: '1',
  label: 'Legacy Dropdown',
  values: [
    { label: 'One', value: '1' },
    { label: 'Two', value: '2' },
  ],
};
 
const DropdownTemplate: Story<DropdownProps> = (args) => {
  const [selectedValue, setSelectedValue] = useState(args.selectedValue);
 
  const handleChange = (value: string) => {
    action('onChange')(value);
    setSelectedValue(value);
  };
 
  return <Dropdown {...args} onChange={handleChange} selectedValue={selectedValue} />;
};
 
export const Default = DropdownTemplate.bind({});
 
Default.args = {
  id: '1',
  label: 'Dropdown',
  placeholder: 'Select',
  options: [
    { label: 'One', value: '1' },
    { label: 'Two', value: '2' },
    { label: 'Three', value: '3', fontStyle: 'oblique' },
    { label: 'Four', value: '4', fontWeight: 'bold' },
    { label: 'Five', value: '5', fontStyle: 'italic', fontWeight: 'bold' },
  ],
  selectedValue: '2',
  tooltipTitle: 'A handy tooltip',
};
 
const DropdownAutocompleteTemplate: Story<DropdownProps> = (args) => {
  const [selectedValue, setSelectedValue] = useState(args.selectedValue);
 
  const handleChange = (value: string) => {
    action('onChange')(value);
    setSelectedValue(value);
  };
 
  return <Dropdown {...args} onChange={handleChange} selectedValue={selectedValue} autocomplete={true} />;
};
 
export const Autocomplete = DropdownAutocompleteTemplate.bind({});
 
Autocomplete.args = {
  hideClearIcon: true,
  id: '2',
  label: 'DropdownAutocomplete',
  placeholder: 'Select',
  options: [
    { label: 'One', value: '1' },
    { label: 'Two', value: '2' },
  ],
  selectedValue: '2',
  tooltipTitle: 'A handy tooltip',
};