import React, { useState, useMemo, useRef, useEffect } from "react"; import { AppBar, // Badge, Box, IconButton, Toolbar, Typography, List, // ListItem, ListItemButton, ListItemIcon, ListItemText, useMediaQuery, Button, } from "@mui/material"; import HrLogo from "../../assets/images/HR.png"; // import x from "../../assets/images/x.png"; import avatarLogo from "../../assets/images/Avatar.png"; import { useTheme } from "@mui/system"; import MenuOutlinedIcon from "@mui/icons-material/MenuOutlined"; // import ShoppingBasketIcon from "@mui/icons-material/ShoppingBasket"; // import Brightness4Icon from "@mui/icons-material/Brightness4"; // import Brightness7Icon from "@mui/icons-material/Brightness7"; // import MenuList from "./MenuListComponent"; import Drawer from "./DrawerComponent"; // import { ColorModeContext } from "../../context/ColorModeContext"; import { useTranslation } from "react-i18next"; import CloseIcon from "@mui/icons-material/Close"; import LogoutIcon from "@mui/icons-material/Logout"; import UserProfile from "../Profile/UserProfile"; import { useSelector } from "react-redux"; //import { userSelector } from "../../store/selectors/userSelectors"; import { Link, useLocation } from "react-router-dom"; import rs from "../../assets/images/rs.png"; import en from "../../assets/images/en.png"; const NavbarComponent = () => { const navItems = [ "users", "files" ]; const { pathname } = useLocation(); const [openDrawer, setOpenDrawer] = useState(false); const [preview, setPreview] = useState(false); const theme = useTheme(); const matches = useMediaQuery(theme.breakpoints.down("sm")); // const toggleColorMode = useContext(ColorModeContext); let userRef = useRef(); let btnRef = useRef(); // get authenticated user const { user } = useSelector((s) => s.user); const { t, i18n } = useTranslation(); const handleToggleDrawer = () => { setOpenDrawer(!openDrawer); }; const changeLanguageHandler = () => { i18n.language === "en" ? i18n.changeLanguage("rs") : i18n.changeLanguage("en"); }; const userPreviewHandler = () => { setPreview(!preview); }; const filterNavItems = () => { return navItems.filter(n => ((n === "users" && user.role === "SuperAdmin") || n !== "users")) } useEffect(() => { let handler = (e) => { if (userRef.current) { if ( !userRef.current.contains(e.target) && !btnRef.current.contains(e.target) ) { setPreview(false); } } }; document.addEventListener("mousedown", handler, { capture: true }); return () => { document.removeEventListener("mousedown", handler, { capture: true }); }; }, []); const drawerContent = useMemo( () => (
{t("nav.navigation")}
{user.firstName + " " + user.lastName} HR {t("common.specialist")}
RS EN
{navItems.map((n) => ( {t("nav." + n)} ))} {/* Toggle {theme.palette.mode} mode {theme.palette.mode === "dark" ? ( ) : ( )} */} {/*
), [handleToggleDrawer] ); return ( {matches ? (
{/* */}
) : ( {/* */} )}
{matches ? ( ) : ( {filterNavItems().map((n) => ( {t("nav." + n)} ))}
{/* user.profilePic ? user.profilePic : */} {user.firstName[0] + "" + user.lastName[0]}
)} {!matches && } {/* */}
); }; export default NavbarComponent;