import React, { useEffect, useState } from 'react'; import { ModalProps } from './types'; import Button from '../Button/Button'; import { iconTypes } from '../Icon/collection'; import styles from './Modal.styles'; const { CustomFooterStyled, DivStyled, DivStyledContent, DivStyledWrap, FooterStyled, HeaderStyled, } = styles; const Modal: React.FC = ({ cancelText = 'Cancel', children, headerHasBottomBorder = false, fixedMode = false, hasCancel = true, hasFooter = true, id = String(Date.now()), isCancelDisabled, isCentered = false, isOkDisabled, isVisible = true, okText = 'Ok', okButtonColor, onCancel, onCloseButtonPressed, onOk, title, width = '70vw', customFooter, closeButton, canOverflow = false, ...props }: ModalProps) => { const [visible, setVisible] = useState(isVisible); useEffect(() => { document.addEventListener('click', handleContentClick); return () => document.removeEventListener('click', handleContentClick); }, []); const handleContentClick = (event: any) => { const target = event.target as Element; if (target.id === 'close') toggleVisibility(); }; useEffect(() => { setVisible(isVisible); }, [isVisible]); const toggleVisibility = () => { setVisible(!visible); }; return ( <> {typeof title == 'string' ?

{title}

: title} {closeButton ? ( closeButton ) : (