import React, { useEffect } from "react"; import { X } from "lucide-react"; interface DrawerProps { isOpen: boolean; onClose: () => void; title: string; subtitle?: string; children: React.ReactNode; } export const Drawer: React.FC = ({ isOpen, onClose, title, subtitle, children, }) => { useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { if (e.key === "Escape") { onClose(); } }; if (isOpen) { window.addEventListener("keydown", handleKeyDown); document.body.style.overflow = "hidden"; } return () => { window.removeEventListener("keydown", handleKeyDown); document.body.style.overflow = "unset"; }; }, [isOpen, onClose]); if (!isOpen) return null; return (

{title}

{subtitle &&

{subtitle}

}
{children}
); };