'use client'; import { useEffect, useRef, useState } from 'react'; import Link from 'next/link'; import { ChevronDown, ArrowUpLeft, FlaskConical, Microscope, Package, ShieldCheck } from 'lucide-react'; import catalog from '../app/catalog.json'; const groups = [ { title: 'اندیکاتورهای شیمیایی', icon: FlaskConical, start: 2, end: 15 }, { title: 'اندیکاتورهای بیولوژیکال', icon: Microscope, start: 0, end: 2 }, { title: 'بسته‌بندی استریل', icon: Package, start: 15, end: 26 }, { title: 'بهداشت و کنترل عفونت', icon: ShieldCheck, start: 26, end: 30 }, ]; export default function ProductMenu() { const [open, setOpen] = useState(false); const root = useRef(null); const trigger = useRef(null); useEffect(() => { if (!open) return; function outside(event: PointerEvent) { if (!root.current?.contains(event.target as Node)) setOpen(false); } function escape(event: KeyboardEvent) { if (event.key === 'Escape') { setOpen(false); trigger.current?.focus(); } } document.addEventListener('pointerdown', outside); document.addEventListener('keydown', escape); return () => { document.removeEventListener('pointerdown', outside); document.removeEventListener('keydown', escape); }; }, [open]); return
{ if (!event.currentTarget.contains(event.relatedTarget as Node)) setOpen(false); }}>
; }