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 }, }