import { useEffect, useState } from "react"; import clsx from "clsx"; type HTMLImageElementProps = React.ComponentProps<"img">; function ZoomableImage(props: HTMLImageElementProps) { const [modalOpen, setModalOpen] = useState(false); const [zoom, setZoom] = useState(false); const openModal = () => { setZoom(false); setModalOpen(true); }; const closeModal = () => { setModalOpen(false); }; useEffect(() => { function handleEscKey(e: KeyboardEvent) { if (modalOpen && e.key === "Escape") { closeModal(); } } document.addEventListener("keydown", handleEscKey); return () => { document.removeEventListener("keydown", handleEscKey); }; }, [modalOpen]); return (