import React, { useState } from 'react' import { Button, ConfirmModal, Text, TextInput } from '../' import { Action, actions, HIDE_CONTROL, ICON_ARG, Story, STRING } from '../helpers/storybook' export default { title: 'ConfirmModal', component: ConfirmModal, argTypes: { title: STRING, confirmButtonText: STRING, cancelButtonText: STRING, iconName: { ...ICON_ARG, mapping: undefined }, modalLabel: STRING, className: HIDE_CONTROL, isOpen: HIDE_CONTROL, ...actions('onConfirm', 'onClose'), }, args: { cancelButtonText: 'Cancel', confirmButtonText: 'Confirm', variant: 'action', description: 'Your actions can override past setting causing unintended consequences.', }, } as const interface Args { description: string onConfirm: Action onClose: Action } export const BasicUsage: Story = ({ description, onConfirm, onClose, ...args }) => { const [isOpen, setOpen] = useState(true) return isOpen ? ( setOpen(false))} onConfirm={onConfirm.wrap(() => setOpen(false))} > {description} ) : ( ) } // A little weird but needed to match how the knobs behaved. BasicUsage.argTypes = { title: { mapping: null } } export const WithTextInputIcon: Story = ({ description, onConfirm, onClose, ...args }) => { const [isOpen, setOpen] = useState(true) return isOpen ? ( setOpen(false))} onConfirm={onConfirm.wrap(() => setOpen(false))} > {description} ) : ( ) } WithTextInputIcon.storyName = 'With text input icon'