'use client' import React from "react"; import { cn } from "@/lib/utils"; import { ChevronDown } from "lucide-react"; import { Link, usePathname } from "@/components/navigation"; import { useConfig } from '@/hooks/use-config' import { useTranslations } from 'next-intl'; import { getHorizontalMenuList } from "@/lib/menus"; import { Icon } from "@/components/ui/icon"; import { Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarMenu, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, } from "@/components/ui/menubar" import { useMediaQuery } from "@/hooks/use-media-query"; export default function HorizontalMenu() { const [config] = useConfig() const t = useTranslations("Menu"); const pathname = usePathname(); const menuList = getHorizontalMenuList(pathname, t) const [openDropdown, setOpenDropdown] = React.useState(false); const isDesktop = useMediaQuery('(min-width: 1280px)') if (config.layout !== 'horizontal' || !isDesktop) return null return (
{menuList?.map(({ groupLabel, menus }, index) => ( {menus.map(({ href, label, icon, active, id, submenus }, index) => submenus.length === 0 ? ( {label} ) : ( {label} {submenus.map( ({ href, label, icon, children: subChildren }, index) => subChildren?.length === 0 ? ( {label} ) : ( {icon && ( )} {label} {subChildren?.map( ({ href, label }, index) => ( {label} ) )} ) )} ) )} ))}
); }