"use client"; import { useState, useEffect } from "react"; import type { ReactNode } from "react"; import { motion, AnimatePresence } from "motion/react"; import { X } from "lucide-react"; import { cls } from "@/lib/utils"; interface ModalProps { trigger: ReactNode; title: string; description?: string; children: ReactNode; className?: string; } const Modal = ({ trigger, title, description, children, className = "" }: ModalProps) => { const [isOpen, setIsOpen] = useState(false); useEffect(() => { const handleEscape = (e: KeyboardEvent) => { if (e.key === "Escape") setIsOpen(false); }; if (isOpen) document.addEventListener("keydown", handleEscape); return () => document.removeEventListener("keydown", handleEscape); }, [isOpen]); return ( <>
{description}
}