"use client"; import { useState, useRef, useEffect } from "react"; import type { ReactNode } from "react"; import { motion, AnimatePresence } from "motion/react"; import { ChevronDown } from "lucide-react"; import { cls } from "@/lib/utils"; interface DropdownProps { children: ReactNode; label: string; className?: string; } const Dropdown = ({ children, label, className = "" }: DropdownProps) => { const [isOpen, setIsOpen] = useState(false); const ref = useRef(null); useEffect(() => { const handleClickOutside = (e: MouseEvent) => { if (ref.current && !ref.current.contains(e.target as Node)) setIsOpen(false); }; document.addEventListener("mousedown", handleClickOutside); return () => document.removeEventListener("mousedown", handleClickOutside); }, []); return (
{isOpen && ( {children} )}
); }; export default Dropdown;