diff --git a/themes/hexo/components/MenuItemCollapse.js b/themes/hexo/components/MenuItemCollapse.js index fe6fcdf6..032fa3a5 100644 --- a/themes/hexo/components/MenuItemCollapse.js +++ b/themes/hexo/components/MenuItemCollapse.js @@ -26,26 +26,26 @@ export const MenuItemCollapse = ({ link }) => { } return <> -
+
{!hasSubMenu && - {link?.name} + {link?.icon && }{link?.name} } - {hasSubMenu &&
- {link?.name} - + className="font-extralight flex items-center justify-between pl-2 pr-4 cursor-pointer dark:text-gray-200 no-underline tracking-widest pb-1"> + {link?.icon && }{link?.name} +
}
{/* 折叠子菜单 */} {hasSubMenu && {link.subMenus.map(sLink => { - return
+ return
- {sLink.title} + {link?.icon && } {sLink.title}
})} diff --git a/themes/hexo/components/SideBar.js b/themes/hexo/components/SideBar.js index 3f259de5..6f0fc4e9 100644 --- a/themes/hexo/components/SideBar.js +++ b/themes/hexo/components/SideBar.js @@ -1,4 +1,6 @@ import BLOG from '@/blog.config' +import { useRouter } from 'next/router' +import MenuGroupCard from './MenuGroupCard' import { MenuListSide } from './MenuListSide' /** @@ -10,19 +12,22 @@ import { MenuListSide } from './MenuListSide' */ const SideBar = (props) => { const { siteInfo } = props - + const router = useRouter() return ( - + ) } diff --git a/themes/hexo/components/SideBarDrawer.js b/themes/hexo/components/SideBarDrawer.js new file mode 100644 index 00000000..629889b9 --- /dev/null +++ b/themes/hexo/components/SideBarDrawer.js @@ -0,0 +1,51 @@ +import { useRouter } from 'next/router' +import React from 'react' + +/** + * 侧边栏抽屉面板,可以从侧面拉出 + * @returns {JSX.Element} + * @constructor + */ +const SideBarDrawer = ({ children, isOpen, onOpen, onClose, className }) => { + const router = useRouter() + React.useEffect(() => { + const sideBarDrawerRouteListener = () => { + switchSideDrawerVisible(false) + } + router.events.on('routeChangeComplete', sideBarDrawerRouteListener) + return () => { + router.events.off('routeChangeComplete', sideBarDrawerRouteListener) + } + }, [router.events]) + + // 点击按钮更改侧边抽屉状态 + const switchSideDrawerVisible = (showStatus) => { + if (showStatus) { + onOpen && onOpen() + } else { + onClose && onClose() + } + const sideBarDrawer = window.document.getElementById('sidebar-drawer') + const sideBarDrawerBackground = window.document.getElementById('sidebar-drawer-background') + + if (showStatus) { + sideBarDrawer.classList.replace('-mr-72', 'mr-0') + sideBarDrawerBackground.classList.replace('hidden', 'block') + } else { + sideBarDrawer.classList.replace('mr-0', '-mr-72') + sideBarDrawerBackground.classList.replace('block', 'hidden') + } + } + + return