import { history, useLocation, useModel } from "@umijs/max"; import PropTypes from "prop-types"; import { useEffect, useState } from "react"; // @mui import ChevronLeftIcon from "@mui/icons-material/ChevronLeft"; import { Avatar, Box, Button, Drawer, Stack, Typography } from "@mui/material"; // mock // hooks import useResponsive from "@/hooks/useResponsive"; // components import Logo from "@/components/logo"; import NavSection from "@/components/nav-section"; import { doFetch } from "@/utils/doFetch"; import { useRequest } from "ahooks"; import { Scrollbars } from "react-custom-scrollbars"; import navConfig from "./config"; Nav.propTypes = { openNav: PropTypes.bool, onCloseNav: PropTypes.func, }; export default function Nav({ openNav, onCloseNav }) { const { pathname } = useLocation(); const isDesktop = useResponsive("up", "lg"); const [navConfigs, setNavConfigs] = useState(navConfig); const { initialState: { nav, currentUser, menuNum }, setInitialState, } = useModel("@@initialState"); const setnav = (fn) => { const res = fn(nav); setInitialState((s) => ({ ...s, nav: res, })); }; const { data } = useRequest(async () => { let res = await doFetch({ url: "/system/message", params: {} }); let result = {}; res?.data?.dataList?.map((it, i) => { result[it?.menu] = it?.count; }); return result; }); console.log(menuNum); useEffect(() => { if (!data) { return; } setNavConfigs((s) => { let news = navConfig?.map((it) => { return { ...it, children: it?.children?.map((item, i) => { const info = menuNum?.[item?.key ?? ""] === 0 ? {} : menuNum?.[item?.key ?? ""] ? { info: (