"use client"; import { AnimatePresence, motion } from "motion/react"; import { useCallback, useEffect, useState } from "react"; import { createPortal } from "react-dom"; function ExpandedGifOverlay({ src, alt, onClose, }: { src: string; alt: string; onClose: () => void; }) { useEffect(() => { const handleKey = (e: KeyboardEvent) => { if (e.key === "Escape") onClose(); }; document.addEventListener("keydown", handleKey); return () => document.removeEventListener("keydown", handleKey); }, [onClose]); return createPortal( , document.body ); } function useExpandedGif() { const [expanded, setExpanded] = useState(false); const open = useCallback(() => setExpanded(true), []); const close = useCallback(() => setExpanded(false), []); return { expanded, open, close }; } export { ExpandedGifOverlay, useExpandedGif };