"use client"; import React, { useEffect } from "react"; interface PopupProps extends React.HTMLAttributes { show?: boolean; title?: string; children: React.ReactNode; onClickClose?: React.MouseEventHandler; onClickOk?: React.MouseEventHandler; } const Popup: React.FC = ({ show = false, title, children, onClickClose, onClickOk, ...props }) => { useEffect(() => { const handleKeyDown = (event: KeyboardEvent) => { if (event.key === "Escape" && onClickClose) { onClickClose(event as unknown as React.MouseEvent); } if (event.key === "Enter") { if (onClickOk) { onClickOk(event as unknown as React.MouseEvent); } } }; if (show) { window.addEventListener("keydown", handleKeyDown); } return () => { window.removeEventListener("keydown", handleKeyDown); }; }, [show, onClickClose]); if (!show) return null; return ( <>
{title && (

{title}

)} {children}
); }; export default Popup;