import type { Meta, StoryObj } from '@storybook/react' import { useState } from 'react' import { Switch } from './Switch' const meta = { title: 'Components/Switch', component: Switch, argTypes: { isDisabled: { control: 'boolean', }, isReadOnly: { control: 'boolean', }, }, } satisfies Meta export default meta type Story = StoryObj export const Default: Story = { args: { children: '알림 설정', }, } export const Selected: Story = { render: function Render() { const [isSelected, setIsSelected] = useState(true) return ( 활성화됨 ) }, } export const Unselected: Story = { render: function Render() { const [isSelected, setIsSelected] = useState(false) return ( 비활성화됨 ) }, } export const Disabled: Story = { args: { isDisabled: true, children: '비활성화된 스위치', }, } export const DisabledSelected: Story = { args: { isDisabled: true, isSelected: true, children: '비활성화됨 (켜짐)', }, } export const ReadOnly: Story = { args: { isReadOnly: true, isSelected: true, children: '읽기 전용', }, } export const WithoutLabel: Story = { args: {}, } export const Controlled: Story = { render: function Render() { const [isSelected, setIsSelected] = useState(false) return (
알림 받기

상태: {isSelected ? '켜짐' : '꺼짐'}

) }, } export const MultipleSettings: Story = { render: function Render() { const [settings, setSettings] = useState({ notifications: true, darkMode: false, autoSave: true, }) const handleChange = (key: keyof typeof settings) => (isSelected: boolean) => { setSettings((prev) => ({ ...prev, [key]: isSelected })) } return (
알림 설정 다크 모드 자동 저장
) }, } export const AllStates: Story = { render: () => (
기본 (꺼짐) 기본 (켜짐) 비활성화 (꺼짐) 비활성화 (켜짐) 읽기 전용
), }