import clsx from "clsx" import React, { useRef } from "react" import { ButtonProps } from "../Button" import { useModal } from "../../providers/modal" import ModalHeader from "./Header" import ModalFooter from "./Footer" export type ModalProps = { className?: string title?: string actions?: ButtonProps[] contentClassName?: string } & React.DetailedHTMLProps< React.DialogHTMLAttributes, HTMLDialogElement > const Modal: React.FC = ({ className, title, actions, children, contentClassName, ...props }) => { const { closeModal } = useModal() const dialogRef = useRef(null) const handleClick = (e: React.MouseEvent) => { // close modal when the user clicks outside the content if (e.target === dialogRef.current) { closeModal() } } return (
{children}
{actions && actions?.length > 0 && }
) } export default Modal