import { BurgerProps, Burger as Menu } from '@lobehub/ui';
import { Link } from 'dumi';
import isEqual from 'fast-deep-equal';
import { uniq } from 'lodash-es';
import { memo, useMemo, useState } from 'react';
import { siteSelectors, useSiteStore } from '@/store';
const Burger = memo(() => {
const [opened, setOpened] = useState(false);
const nav = useSiteStore((s) => s.navData, isEqual);
const sidebar = useSiteStore((s) => s.sidebar, isEqual);
const { pathname, activePath } = useSiteStore((s) => ({
activePath: siteSelectors.activePath(s),
pathname: s.location.pathname,
}));
const items: BurgerProps['items'] = useMemo(() => {
const sidebarItems = sidebar?.map((group) => {
return (
!group.link && {
children: group.children.map((item) => ({
key: `s-${item.link}`,
label: (
{
setOpened(false);
}}
to={item.link}
>
{item.title}
),
})),
label: group.title,
type: 'group',
}
);
});
return nav.map((item) => {
return {
children: (item.activePath || item.link) === activePath && sidebarItems,
key: item.activePath! || item.link,
label: {item.title},
};
});
}, [nav, activePath, sidebar]);
return (
);
});
export default Burger;