import React from 'react'; import { Modal, ModalOverlay, ModalContent, ModalHeader, ModalCloseButton, ModalContentProps, Box } from '@chakra-ui/react'; import MyBox from '../MyBox'; import { useSystem } from '../../../hooks/useSystem'; import Avatar from '../Avatar'; export interface MyModalProps extends ModalContentProps { iconSrc?: string; iconColor?: string; title?: any; isCentered?: boolean; isLoading?: boolean; isOpen?: boolean; onClose?: () => void; closeOnOverlayClick?: boolean; size?: 'md' | 'lg'; } const MyModal = ({ isOpen = true, onClose, iconSrc, title, children, isCentered, isLoading, w = 'auto', maxW = ['90vw', '600px'], closeOnOverlayClick = true, iconColor, size = 'md', ...props }: MyModalProps) => { const { isPc } = useSystem(); return ( onClose && onClose()} size={size} autoFocus={false} isCentered={isPc ? isCentered : true} blockScrollOnMount={false} closeOnOverlayClick={closeOnOverlayClick} > {!title && onClose && } {!!title && ( {iconSrc && ( <> )} {title} {onClose && ( )} )} {children} ); }; export default React.memo(MyModal);