import type { Meta, StoryObj } from '@storybook/react' import { useState } from 'react' import { Select, type SelectOption } from './Select' const meta = { title: 'Components/Select', component: Select, argTypes: { isDisabled: { control: 'boolean' }, isReadOnly: { control: 'boolean' }, placement: { control: 'select', options: ['bottom', 'top'], }, }, } satisfies Meta export default meta type Story = StoryObj const sampleItems: SelectOption[] = [ { label: '옵션 1', value: '1' }, { label: '옵션 2', value: '2' }, { label: '옵션 3', value: '3' }, { label: '비활성화 옵션', value: '4', isDisabled: true }, ] export const Default: Story = { args: { items: sampleItems, placeholder: '선택해주세요', }, } export const WithSelectedValue: Story = { args: { items: sampleItems, defaultSelectedKey: '2', }, } export const Disabled: Story = { args: { items: sampleItems, defaultSelectedKey: '1', isDisabled: true, }, } export const ReadOnly: Story = { args: { items: sampleItems, defaultSelectedKey: '1', isReadOnly: true, }, } export const PlacementTop: Story = { args: { items: sampleItems, placeholder: '위로 열림', placement: 'top', }, decorators: [ (Story) => (
), ], } export const Controlled: Story = { render: function Render() { const [value, setValue] = useState('1') return (