import React, { useState } from 'react'
import { type Meta, type StoryObj } from '@storybook/react'
import { fn } from '@storybook/test'
import isChromatic from 'chromatic'
import { Text } from '~components/Text'
import { chromaticModalSettings } from '../../_docs/controls'
import { ConfirmationModal } from '../index'
const IS_CHROMATIC = isChromatic()
const meta = {
title: 'Components/Modals/ConfirmationModal',
component: ConfirmationModal,
args: {
isOpen: false,
title: 'Confirmation modal title',
variant: 'success',
children: (
Confirmation modals contain smaller pieces of content and can provide additional information
to aide the user.
),
onConfirm: fn(),
onDismiss: fn(),
},
argTypes: {
children: {
control: {
disable: true,
},
},
},
} satisfies Meta
export default meta
type Story = StoryObj
const ConfirmationModalTemplate: Story = {
render: (args) => {
const [isOpen, setIsOpen] = useState(IS_CHROMATIC)
const handleOpen = (): void => setIsOpen(true)
const handleClose = (): void => setIsOpen(false)
return (
<>
>
)
},
...chromaticModalSettings,
}
export const Playground: Story = {
...ConfirmationModalTemplate,
parameters: {
docs: {
canvas: {
sourceState: 'shown',
},
},
},
}
export const Prominent: Story = {
...ConfirmationModalTemplate,
args: { isProminent: true },
}
export const Cautionary: Story = {
...ConfirmationModalTemplate,
args: { variant: 'cautionary' },
}
export const Unpadded: Story = {
...ConfirmationModalTemplate,
args: { unpadded: true },
}