import React, { useState } from 'react' import { type Meta } from '@storybook/react' import isChromatic from 'chromatic' import { StickerSheet, type StickerSheetStory } from '~storybook/components/StickerSheet' import { MultiSelect, type MultiSelectProps } from '../index' const IS_CHROMATIC = isChromatic() export default { title: 'Components/MultiSelect', parameters: { chromatic: { disable: false }, controls: { disable: true }, }, } satisfies Meta const options = [ { label: 'Pancakes', value: 'pancakes', }, { label: 'Waffle', value: 'waffle', }, { label: 'Toastie', value: 'toastie', }, ] const StickerSheetTemplate: StickerSheetStory = { render: () => { const [isOpenClosed, setIsOpenClosed] = useState(false) const [selectedValuesClosed, setSelectedValuesClosed] = useState< MultiSelectProps['selectedValues'] >(new Set()) const [isOpenOpen, setIsOpenOpen] = useState(true) const [selectedValuesOpen, setSelectedValuesOpen] = useState< MultiSelectProps['selectedValues'] >(new Set()) const [isOpenNoItems, setIsOpenNoItems] = useState(true) const [selectedValuesNoItems, setSelectedValuesNoItems] = useState< MultiSelectProps['selectedValues'] >(new Set()) return ( <> undefined} onSelectedValuesChange={() => undefined} selectedValues={selectedValuesOpen} items={options} validationMessage={{ status: 'error', message: 'There are no waffles left.', }} /> undefined} onSelectedValuesChange={() => undefined} selectedValues={selectedValuesNoItems} items={options} validationMessage={{ status: 'caution', message: 'There are only four pancakes left.', }} /> ) }, } export const StickerSheetDefault: StickerSheetStory = { ...StickerSheetTemplate, name: 'Sticker Sheet (Default)', } export const StickerSheetRTL: StickerSheetStory = { ...StickerSheetTemplate, name: 'Sticker Sheet (RTL)', parameters: { textDirection: 'rtl' }, }