'use client' import colors from "@/con/colors" import stateNav from "@/state/state-nav" import { ActionIcon, Button, Container, Flex, Image, Menu, MenuTarget, Stack, Tooltip } from "@mantine/core" import { IconSearch, IconUserCog } from "@tabler/icons-react" import { useTransitionRouter } from 'next-view-transitions' import { usePathname, useRouter } from "next/navigation" import { useSnapshot } from "valtio" import { MenuItem } from "../../../../types/menu-item" import { NavbarSearch } from "./NavBarSearch" import { NavbarSubMenu } from "./NavbarSubMenu" import { authStore } from "@/store/authStore"; // contoh state auth (dummy aja dulu, bisa diganti sesuai sistem auth kamu) const isAdmin = authStore.user?.roleId === 0 || authStore.user?.roleId === 1 || authStore.user?.roleId === 2 || authStore.user?.roleId === 3 || authStore.user?.roleId === 4; export function NavbarMainMenu({ listNavbar }: { listNavbar: MenuItem[] }) { const { item, isSearch } = useSnapshot(stateNav) const router = useTransitionRouter() const next = useRouter() const pathname = usePathname(); return ( { router.push("/darmasaba") stateNav.clear() }} > Darmasaba Logo {listNavbar.map((item, k) => ( child.href && pathname.startsWith(child.href)))} /> ))} { stateNav.item = null stateNav.isSearch = !stateNav.isSearch }} radius="xl" > {/* hanya tampil kalau role = admin */} {isAdmin && ( { next.push("/admin/landing-page/profile/program-inovasi") }} color={colors["blue-button"]} radius="xl" variant="light" > )} {item && } {isSearch && } ) } function MenuItemCom({ item, isActive = false }: { item: MenuItem, isActive?: boolean }) { const router = useTransitionRouter() return ( { stateNav.item = item.children || null; stateNav.isSearch = false; }} > ) }