import DarkModeButton from '@/components/DarkModeButton' import { useGlobal } from '@/lib/global' import { Dialog, Transition } from '@headlessui/react' import Link from 'next/link' import { useRouter } from 'next/router' import { Fragment, useEffect, useImperativeHandle, useRef, useState } from 'react' import { MenuListSide } from './MenuListSide' import TagGroups from './TagGroups' /** * 侧边抽屉 * 移动端的菜单在这里 */ export default function SlideOver(props) { const { cRef, tagOptions } = props const [open, setOpen] = useState(false) const { locale } = useGlobal() const router = useRouter() /** * 函数组件暴露方法useImperativeHandle **/ useImperativeHandle(cRef, () => ({ toggleSlideOvers: toggleSlideOvers })) /** * 开关侧拉抽屉 */ const toggleSlideOvers = () => { setOpen(!open) } /** * 自动关闭抽屉 */ useEffect(() => { setOpen(false) }, [router]) return ( setOpen(false)}> Close panel {/* 内容 */} {/* 切换深色模式 */} {locale.COMMON.BLOG} {/* 导航按钮 */} {/* 用户自定义菜单 */} {locale.COMMON.TAGS} ) } /** * 一个包含图标的按钮 */ function DarkModeBlockButton() { const darkModeRef = useRef() const { isDarkMode, locale } = useGlobal() function handleChangeDarkMode() { darkModeRef?.current?.handleChangeDarkMode() } return ( {' '} {isDarkMode ? locale.MENU.LIGHT_MODE : locale.MENU.DARK_MODE} ) } /** * 一个简单的按钮 */ function Button({ title, url }) { return ( {title} ) }