import { useGlobal } from '@/lib/global' import { getQueryParam } from '@/lib/utils' import { THEMES } from '@/themes/theme' import { useRouter } from 'next/router' import { useState } from 'react' import DarkModeButton from './DarkModeButton' import { Draggable } from './Draggable' import LazyImage from './LazyImage' import SideBarDrawer from './SideBarDrawer' /** * * @returns 主题切换 */ const ThemeSwitch = () => { const { theme, lang, changeLang, locale, isDarkMode, toggleDarkMode } = useGlobal() const router = useRouter() const currentTheme = getQueryParam(router.asPath, 'theme') || theme const [sideBarVisible, setSideBarVisible] = useState(false) const changeTheme = newTheme => { const query = router.query query.theme = newTheme router.push({ pathname: router.pathname, query }).then(() => {}) } const onLangSelectChange = e => { document.ontouchmove = document.ontouchend = document.onmousemove = document.onmouseup = null const newLang = e.target.value changeLang(newLang) } return ( <> {/* 悬浮的主题切换按钮 */}
{/* 主题切换按钮 */}
{/* 点击弹出主题切换面板 */}
{ setSideBarVisible(true) }} className='uppercase cursor-pointer' title='Click To Switch Theme' alt='Click To Switch Theme'> {currentTheme}
{ setSideBarVisible(false) }}> {/* 开关 */}
{/* 深色模式切换 */}
{isDarkMode ? locale.MENU.DARK_MODE : locale.MENU.LIGHT_MODE}
{/* 关闭 */}
{ setSideBarVisible(false) }}>

点击下方主题进行切换.
Click below to switch the theme.
{/* 陈列所有主题 */}
{THEMES?.map(t => { return (
{ changeTheme(t) }}>
{t}
) })}
) } export default ThemeSwitch