"use client"; import React, { useEffect, useState } from "react"; import ThemeSwitcher from "@/components/partials/header/theme-switcher"; import { FiFile, FiImage, FiMusic, FiYoutube } from "react-icons/fi"; import { useParams, usePathname, useRouter } from "next/navigation"; import { generateLocalizedPath } from "@/utils/globals"; import { Link } from "@/i18n/routing"; import { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle } from "@/components/ui/navigation-menu"; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from "../ui/dropdown-menu"; import Image from "next/image"; import { Icon } from "../ui/icon"; import { getCookiesDecrypt } from "@/lib/utils"; import Cookies from "js-cookie"; import { getInfoProfile } from "@/service/auth"; import { useTranslations } from "next-intl"; type Detail = { id: number; userId: any; firstName: string; username: string; fullname: string; memberIdentity: any; email: string; address: string; phoneNumber: any; message: string; }; const Navbar = () => { const [menuOpen, setMenuOpen] = useState(false); const router = useRouter(); const pathname = usePathname(); const params = useParams(); const locale = params?.locale; const [language, setLanguage] = useState<"id" | "en">("id"); const [isOpen, setIsOpen] = useState(false); const fullname = getCookiesDecrypt("ufne"); const levelName = getCookiesDecrypt("ulnae"); const roleId = getCookiesDecrypt("urie"); const [detail, setDetail] = useState(); const t = useTranslations("Menu"); const onLogout = () => { Object.keys(Cookies.get()).forEach((cookieName) => { Cookies.remove(cookieName); }); router.push("/"); }; // const profilePicture = Cookies.get("profile_picture"); const fullName = getCookiesDecrypt("ufne"); const roleName = getCookiesDecrypt("urne"); const handleLanguageChange = (lang: "id" | "en") => { setLanguage(lang); setIsOpen(false); }; useEffect(() => { async function initState() { const response = await getInfoProfile(); const details = response.data?.data; setDetail(details); console.log("data", details); } initState(); }, []); return (
{/* Logo */} Media Hub Logo {/* Mobile Menu Toggle */} {/* Desktop Navigation */}
{/* Nav Menu */} {t("content")} router.push(generateLocalizedPath("/video/filter", String(locale)))} className="flex items-start gap-1.5 p-2 ">

Video

router.push(generateLocalizedPath("/audio/filter", String(locale)))} className="flex place-items-start gap-1.5 p-2 ">

Audio

router.push(generateLocalizedPath("/image/filter", String(locale)))} className="flex place-items-start gap-1.5 p-2">

Foto

router.push(generateLocalizedPath("/document/filter", String(locale)))} className="flex place-items-start gap-1.5 p-2">

Teks

Jadwal Indeks
Live
{/* Tombol Utama */} {/* Dropdown Menu */} {isOpen && (
)}
{/*
{fullName ? ( <> avatar-profile

{fullName}

{`(${roleName})`}

Profile Kelola Konten Keluar
) : ( <> Masuk Daftar {" "} )}
*/} {roleId === "5" || roleId === "6" || roleId === "7" || roleId === "8" ? ( {detail !== undefined ? (
{"Image"}
{detail?.fullname}

({detail?.fullname})

) : ( "" )}
{[ { name: "Profile & Settings", icon: "heroicons:user", href: "/profile", }, { name: "Kelola Konten", icon: "stash:save-ribbon-duotone", href: "/content-management/galery", }, ].map((item, index) => ( {item.name} ))}
) : roleId === "2" || roleId === "3" || roleId === "4" || roleId === "9" || roleId === "10" || roleId === "11" || roleId === "12" || roleId === "13" ? ( // Dropdown menu for roleId === 3 {detail !== undefined ? (
{"Image"}
{detail?.fullname}

({detail?.fullname})

) : ( "" )}
{[ { name: "Profile & Settings", icon: "heroicons:user", href: "/profile", }, { name: "Dashboard", icon: "material-symbols:dashboard", href: "/dashboard", }, ].map((item, index) => ( {item.name} ))}
) : ( // Masuk and Daftar buttons for roleId === null
Masuk Daftar
)}
{/* Mobile Menu */} {menuOpen && (
Konten router.push(generateLocalizedPath("/video/filter", String(locale)))} className="flex items-start gap-1.5 p-2 hover:bg-white">

Video

router.push(generateLocalizedPath("/audio/filter", String(locale)))} className="flex place-items-start gap-1.5 p-2 hover:bg-white">

Audio

router.push(generateLocalizedPath("/image/filter", String(locale)))} className="flex place-items-start gap-1.5 p-2 hover:bg-white">

Foto

router.push(generateLocalizedPath("/document/filter", String(locale)))} className="flex place-items-start gap-1.5 p-2 hover:bg-white">

Teks

Jadwal Indeks
Live
{/* Tombol Utama Bahasa */} {/* Dropdown Menu */} {isOpen && (
)}
{fullName ? ( <> avatar-profile

{fullName}

{`(${roleName})`}

Profile Kelola Konten
) : ( <> Masuk Daftar {" "} )}
)}
); }; export default Navbar;