import type { Meta, StoryObj } from '@storybook/react' import { useState } from 'react' import { Button } from '../button/Button' import { ModalBody, ModalFooter, ModalHeader, ModalRoot } from './Modal' const meta = { title: 'Components/Modal', component: ModalRoot, argTypes: { isDismissable: { control: 'boolean' }, isKeyboardDismissDisabled: { control: 'boolean' }, }, } satisfies Meta export default meta type Story = StoryObj export const Default: Story = { render: function Render() { const [isOpen, setIsOpen] = useState(false) return ( <> 모달 제목

모달 내용입니다.

) }, } export const WithoutCloseButton: Story = { render: function Render() { const [isOpen, setIsOpen] = useState(false) return ( <> 닫기 버튼 없음

헤더에 닫기 버튼이 없습니다.

) }, } export const LongContent: Story = { render: function Render() { const [isOpen, setIsOpen] = useState(false) return ( <> 긴 내용 {Array.from({ length: 20 }, (_, i) => (

내용 {i + 1}: Lorem ipsum dolor sit amet consectetur adipisicing elit.

))}
) }, } export const NotDismissable: Story = { render: function Render() { const [isOpen, setIsOpen] = useState(false) return ( <> 닫을 수 없음

배경 클릭이나 ESC로 닫을 수 없습니다.

) }, } export const ConfirmDialog: Story = { render: function Render() { const [isOpen, setIsOpen] = useState(false) return ( <>

정말 삭제하시겠습니까?

) }, }