import logoLight from "@assets/images/logo-sidebar-light.svg"; import makeStyles from "@material-ui/core/styles/makeStyles"; import { configurationMenuUrl, createConfigurationMenu } from "@saleor/configuration"; import { User } from "@saleor/fragments/types/User"; import useLocalStorage from "@saleor/hooks/useLocalStorage"; import { sectionNames } from "@saleor/intl"; import classNames from "classnames"; import React from "react"; import SVG from "react-inlinesvg"; import { useIntl } from "react-intl"; import { IMenuItem } from "../AppLayout/menuStructure"; import MenuItem from "./MenuItem"; import { isMenuActive } from "./utils"; const useStyles = makeStyles( theme => ({ logo: { margin: "36px 0 0 19px" }, root: { transition: "width 0.5s ease", width: 210 }, shrunk: { "&$root": { width: 72 } } }), { name: "SideBar" } ); export interface SideBarProps { className?: string; menuItems: IMenuItem[]; location: string; user: User; renderConfigure: boolean; onMenuItemClick: (url: string, event: React.MouseEvent) => void; } export interface IActiveSubMenu { isActive: boolean; label: string | null; } const SideBar: React.FC = ({ location, menuItems, renderConfigure, user, onMenuItemClick }) => { const classes = useStyles({}); const [isShrunk, setShrink] = useLocalStorage("isMenuSmall", false); const intl = useIntl(); return (
{menuItems.map(menuItem => { // const isActive = isMenuActive(location, menuItem); if ( menuItem.permission && !user.userPermissions .map(perm => perm.code) .includes(menuItem.permission) ) { return null; } return ; })} {renderConfigure && ( )}
); }; SideBar.displayName = "SideBar"; export default SideBar;