import React, { useEffect, useRef } from 'react'; import Image from '../../images/transactions-image-04.svg'; function TransactionPanel({ validatePanelOpen, setValidatePanelOpen }) { const closeBtn = useRef(null); const panelContent = useRef(null); // close on click outside useEffect(() => { const clickHandler = ({ target }) => { if (!validatePanelOpen || panelContent.current.contains(target) || closeBtn.current.contains(target)) return; setValidatePanelOpen(false); }; document.addEventListener('click', clickHandler); return () => document.removeEventListener('click', clickHandler); }); // close if the esc key is pressed useEffect(() => { const keyHandler = ({ keyCode }) => { if (!validatePanelOpen || keyCode !== 27) return; setValidatePanelOpen(false); }; document.addEventListener('keydown', keyHandler); return () => document.removeEventListener('keydown', keyHandler); }); return (