import { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react' import StyledButton, { StyledButtonProps } from './StyledButton' import React from 'react' import classNames from '~/lib/classNames' interface StyledModalProps { onClose?: () => void title: string cancelText?: string confirmText?: string confirmVariant?: StyledButtonProps['variant'] open: boolean onCancel?: () => void onConfirm?: () => void children: React.ReactNode icon?: React.ReactNode large?: boolean } const StyledModal: React.FC = ({ children, title, open, onClose, cancelText = 'Cancel', confirmText = 'Confirm', confirmVariant = 'action', onCancel, onConfirm, icon, large = false, }) => { return ( { if (onClose) onClose() }} className="relative z-50" >
{icon &&
{icon}
}
{title}
{children}
{cancelText && onCancel && ( { if (onCancel) onCancel() }} > {cancelText} )} {confirmText && onConfirm && ( { if (onConfirm) onConfirm() }} > {confirmText} )}
) } export default StyledModal