'use client'; import { Dialog, DialogHeading, DialogDismiss } from '@ariakit/react'; import classnames from 'classnames'; import React, { useRef } from 'react'; import MdIconClose from '../icons-material/MdIconClose'; export interface MdModalProps extends React.HTMLAttributes { children: React.ReactNode; heading?: string; headingIcon?: React.ReactNode | string; open?: boolean; error?: boolean; className?: string; contentClassName?: string; closeOnOutsideClick?: boolean; headingDivider?: boolean; footerDivider?: boolean; footer?: React.ReactNode; /** * v6.0.0: Removed event argument. */ onClose?: () => void; } export const MdModal: React.FunctionComponent = ({ children, heading = '', open = false, error = false, onClose = () => {}, headingIcon, closeOnOutsideClick = true, headingDivider = false, footerDivider = false, footer, className = '', contentClassName = '', ...rest }: MdModalProps) => { const dismissRef = useRef(null); const classNames = classnames('md-modal', { 'md-modal--error': !!error, [className]: className, }); const contentClassNames = classnames('md-modal__content', { [contentClassName]: contentClassName, }); return ( } className={classNames} modal unmountOnHide {...rest} >
}> {headingIcon} {heading}
{headingDivider &&
}
{children}
{footer && (
{footerDivider &&
}
{footer}
)}
); }; export default MdModal;