import { CloseIcon } from '@chakra-ui/icons' import { Box, BoxProps, Flex } from '@chakra-ui/react' import { keyframes } from '@chakra-ui/system' import React, { ReactNode, useEffect } from 'react' interface ICustomModalProps extends BoxProps { isOpen: boolean onClose: () => void header?: string closeOnOverlayClick?: boolean animationOverlay?: ReactNode } const zoomIn = keyframes` from { transform: translate(-50%, -50%) scale(0.90) } to { transform: translate(-50%, -50%) scale(1) } ` const CustomModal: React.FunctionComponent = (props) => { const { isOpen, onClose, header, children, closeOnOverlayClick = true, animationOverlay, ...modalProps } = props useEffect(() => { if (isOpen) { document.body.classList.add('hiddenScroll') } return () => { document.body.classList.remove('hiddenScroll') } }, [isOpen]) if (isOpen === false) { return null } return ( {}} css={{ '> div': { cursor: 'default', }, }} position={'absolute'} width={'100%'} height={'100vh'} top={'0'} left={'0'} bgColor={'blackAlpha.600'} > {animationOverlay} {header} {children} ) } export default CustomModal