'use client';
import { useEffect, useRef, useState } from 'react';
import {
Activity,
ArrowUpRight,
Bell,
ClipboardList,
LayoutGrid,
Menu,
Search,
X,
Zap,
} from 'lucide-react';
import Link from 'next/link';
import * as Button from '@/components/ui/button';
import * as LinkButton from '@/components/ui/link-button';
import { cn } from '@/utils/cn';
function NavDropdownMenu() {
return (
QUICK ACCESS HUB
Quick access hub
Manage projects in one unified workspace.
Overview
Workflow
Checklists
v.1.5.69 · Apex Tech™
TOOLS
Centralized workspace
Real-time sync
Smart alerts
Fast lookups
SUPPORTS
Help center
Getting started
Community forum
featured
Your wallet, anywhere
Securely manage money on the go
Get the app
);
}
const Logo = ({ className }: { className?: string }) => (
);
type Header03Props = {
announcement?: boolean;
};
export default function ApexMinimalMegaMenuHeader({ announcement = false }: Header03Props) {
const [isMenuOpen, setIsMenuOpen] = useState(false);
const toggleRef = useRef(null);
const panelRef = useRef(null);
useEffect(() => {
document.body.style.overflow = isMenuOpen ? 'hidden' : '';
return () => {
document.body.style.overflow = '';
};
}, [isMenuOpen]);
const toggleMenu = () => {
setIsMenuOpen(!isMenuOpen);
};
useEffect(() => {
if (!isMenuOpen) return;
const handleDocumentClick = (event: MouseEvent) => {
const targetNode = event.target as Node;
if (panelRef.current && panelRef.current.contains(targetNode)) return;
if (toggleRef.current && toggleRef.current.contains(targetNode)) return;
setIsMenuOpen(false);
};
document.addEventListener('mousedown', handleDocumentClick);
return () => document.removeEventListener('mousedown', handleDocumentClick);
}, [isMenuOpen]);
return (
);
}