'use client'; import clsx from 'clsx' import { HTMLMotionProps, motion } from 'framer-motion'; import { CloseCircle } from 'iconsax-react' import React, { useEffect, useRef } from 'react' interface DropdownProps extends Omit, "ref"> { active?: boolean, toggle?: React.MouseEventHandler | undefined, children?: React.ReactNode }; function Dropdown({ active, toggle, children, ...rest }: DropdownProps) { const boxRef = useRef(null); const closeButtonRef = useRef(null); useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (boxRef.current && !boxRef.current.contains(event.target as Node)) { closeButtonRef.current?.click(); } }; if (active) { document.addEventListener('click', handleClickOutside); } return () => { document.removeEventListener('click', handleClickOutside); }; }, [active]); return (
{children}
) } export default Dropdown