import { createPortal } from 'react-dom'; import { DrawerProps } from './Types.js'; import Button from '../Button/Button.js'; import classNames from 'classnames'; import './Drawer.scss'; import { useEffect, useState } from 'react'; import Icon from '../Icon'; import useEscapeKey from '../../hooks/keyboardevents/useEscKeyEvent.js'; const Drawer = ({ isOpen = true, children = 'Drawer content area', onClose = () => {}, title = 'drawer', primaryButtonProps = {}, secondaryButtonProps = {}, leftPrimaryButtonProps = {}, leftSecondaryButtonProps = {}, showEditButton = false, onEdit = () => {}, overlay = false, isFooterRequired = true, footerContent = null, size = 'medium', _isExpanded = false, isBackButtonVisible = false, _isCloseModalButtonVisible = true, }: DrawerProps) => { const [isExpanded, setIsExpanded] = useState(_isExpanded); const handleEsc = useEscapeKey('Escape'); handleEsc(onClose); const toggleExpand = () => { setIsExpanded((prev) => !prev); }; const onCancel = () => { if (secondaryButtonProps.onClick) { secondaryButtonProps.onClick(); } else { onClose(); } }; useEffect(() => { closeModal(); }, [isOpen]); const closeModal = () => { if (!isOpen) { setTimeout(() => { return null; }, 1000); } }; const drawerSize = isExpanded ? 'x-large' : size; return createPortal(