import Modal, { ModalDismissButton, ModalProps } from '.'
import { OverlayProvider } from '@react-aria/overlays'
import { useOverlayTriggerState } from 'react-stately'
import Button from '../Button'
import {
ModalAlign,
ModalBody,
ModalButtons,
ModalHeader,
} from './ModalPlumbing'
import TextField from '../TextField'
import DropdownSelector from '../DropdownSelector'
import Checkbox from '../Checkbox'
import DropdownMenuItem from '../DropdownSelector/DropdownMenuItem'
import { Meta, StoryObj } from '@storybook/react-vite'
export default {
title: 'react/Modal',
component: Modal,
args: {
title: 'react/Title',
},
argTypes: {
size: {
options: ['S', 'M', 'L'],
control: {
type: 'inline-radio',
},
defaultValue: 'M',
},
bottomSheet: {
options: ['full', 'true', 'false'],
mapping: { full: 'full', true: true, false: false },
control: {
type: 'inline-radio',
},
defaultValue: false,
},
},
render: function Render(args) {
const state = useOverlayTriggerState({})
return (
// Application must be wrapped in an OverlayProvider so that it can be
// hidden from screen readers when a modal opens.
state.close()}
/>
)
},
} as Meta
const M = (props: ModalProps) => {
return (
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod
placeat tenetur, necessitatibus laudantium cumque exercitationem
provident. Quaerat iure enim, eveniet dolores earum odio quo
possimus fugiat aspernatur, numquam, commodi repellat.
null}
value="10"
showLabel
label="Fruits"
placeholder="Apple"
>
Apple
Banana
Orange
)
}
const ModalVStack = (props: Omit, 'style'>) => {
return (
)
}
const StyledModalText = (props: Omit, 'style'>) => {
return (
)
}
export const Default: StoryObj = {}
export const FullBottomSheet: StoryObj = {
args: {
bottomSheet: 'full',
},
render: function Render(args) {
const state = useOverlayTriggerState({})
return (
// Application must be wrapped in an OverlayProvider so that it can be
// hidden from screen readers when a modal opens.
state.close()}
>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod
placeat tenetur, necessitatibus laudantium cumque exercitationem
provident. Quaerat iure enim, eveniet dolores earum odio quo
possimus fugiat aspernatur, numquam, commodi repellat.
)
},
}
export const BottomSheet: StoryObj = {
render: function Render(args) {
const state = useOverlayTriggerState({})
return (
// Application must be wrapped in an OverlayProvider so that it can be
// hidden from screen readers when a modal opens.
state.close()}
bottomSheet
isDismissable
>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod
placeat tenetur, necessitatibus laudantium cumque exercitationem
provident. Quaerat iure enim, eveniet dolores earum odio quo
possimus fugiat aspernatur, numquam, commodi repellat.
test checkbox
キャンセル
)
},
}
export const NotDismmissableStory: StoryObj = {
render: function Render(args) {
const state = useOverlayTriggerState({})
return (
state.close()}>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod
placeat tenetur, necessitatibus laudantium cumque exercitationem
provident. Quaerat iure enim, eveniet dolores earum odio quo
possimus fugiat aspernatur, numquam, commodi repellat.
)
},
}
export const BackgroundScroll: StoryObj = {
render: function Render(args) {
const state = useOverlayTriggerState({})
return (
state.close()}
/>
)
},
}