'use client' import { useEffect, useRef, useState } from 'react' import { RiAddLine, RiArrowDownSLine } from '@remixicon/react' import Button from '@/app/components/base/button' import { MagicBox } from '@/app/components/base/icons/src/vender/solid/mediaAndDevices' import { FileZip } from '@/app/components/base/icons/src/vender/solid/files' import { Github } from '@/app/components/base/icons/src/vender/solid/general' import cn from '@/utils/classnames' const InstallPluginDropdown = () => { const [isMenuOpen, setIsMenuOpen] = useState(false) const menuRef = useRef(null) useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (menuRef.current && !menuRef.current.contains(event.target as Node)) setIsMenuOpen(false) } document.addEventListener('mousedown', handleClickOutside) return () => { document.removeEventListener('mousedown', handleClickOutside) } }, []) return (
{isMenuOpen && (
Install Form {[ { icon: MagicBox, text: 'Marketplace', action: 'marketplace' }, { icon: Github, text: 'GitHub', action: 'github' }, { icon: FileZip, text: 'Local Package File', action: 'local' }, ].map(({ icon: Icon, text, action }) => (
{ console.log(action) setIsMenuOpen(false) }} > {text}
))}
)}
) } export default InstallPluginDropdown