import { createPortal } from 'react-dom'; import Icon from '../Icon/Icon.js'; import { DrawerProps } from './Types.js'; import Button from '../Button/Button.js'; import classNames from 'classnames'; import './Drawer.scss'; import { useEffect } from 'react'; import Tooltip from '../Tooltip/Tooltip.js'; const Drawer = ({ isOpen = true, children = 'Drawer content area', onClose = () => {}, title = 'drawer', primaryButtonProps = {}, secondaryButtonProps = {}, showEditButton = false, onEdit = () => {}, overlay = false, isFooterRequired = true, footerContent = null, paddingNotRequired = false, size = 'medium', }: DrawerProps) => { let titleLength = 0; if (typeof title === 'string') { titleLength = title.length; } const onCancel = () => { if (secondaryButtonProps.onClick) { secondaryButtonProps.onClick(); } else { onClose(); } }; const handleKeyDown: (event: KeyboardEvent) => void = (event) => { if (event?.key === 'Escape') { onClose(); } }; useEffect(() => { if (isOpen) { document.addEventListener('keydown', handleKeyDown); } return () => { document.removeEventListener('keydown', handleKeyDown); }; }, [isOpen]); if (!isOpen) { return null; } return createPortal(