From a042dc859ae22d9c62c314ccc7c26eb8fe58ef3a Mon Sep 17 00:00:00 2001 From: "tangly1024.com" Date: Mon, 19 Jun 2023 19:03:09 +0800 Subject: [PATCH] feat/theme-switch --- components/DebugPanel.js | 21 +++---- components/ThemeSwitch.js | 10 ++- lib/global.js | 33 +++++----- lib/theme.js | 77 ++++++++++++++++++------ lib/utils.js | 15 ++++- pages/404.js | 25 +------- pages/[...slug].js | 23 +------ pages/_app.js | 11 +++- pages/archive/index.js | 28 ++------- pages/category/[category]/index.js | 28 ++------- pages/category/[category]/page/[page].js | 27 +-------- pages/category/index.js | 28 +-------- pages/index.js | 28 +-------- pages/page/[page].js | 28 +-------- pages/search/[keyword]/index.js | 26 +------- pages/search/[keyword]/page/[page].js | 26 +------- pages/search/index.js | 27 ++------- pages/tag/[tag]/index.js | 28 ++------- pages/tag/[tag]/page/[page].js | 25 +------- pages/tag/index.js | 24 +------- themes/example/index.js | 25 ++++++++ themes/fukasawa/index.js | 25 ++++++++ themes/hexo/index.js | 25 ++++++++ themes/matery/indexj.js | 25 ++++++++ themes/medium/index.js | 25 ++++++++ themes/next/index.js | 25 ++++++++ themes/nobelium/index.js | 25 ++++++++ themes/simple/index.js | 25 ++++++++ 28 files changed, 353 insertions(+), 385 deletions(-) create mode 100644 themes/example/index.js create mode 100644 themes/fukasawa/index.js create mode 100644 themes/hexo/index.js create mode 100644 themes/matery/indexj.js create mode 100644 themes/medium/index.js create mode 100644 themes/next/index.js create mode 100644 themes/nobelium/index.js create mode 100644 themes/simple/index.js diff --git a/components/DebugPanel.js b/components/DebugPanel.js index 7765e827..2a037ce8 100644 --- a/components/DebugPanel.js +++ b/components/DebugPanel.js @@ -3,6 +3,7 @@ import { useEffect, useState } from 'react' import Select from './Select' import { useGlobal } from '@/lib/global' import { ALL_THEME } from '@/lib/theme' +import { useRouter } from 'next/router' /** * @@ -10,16 +11,14 @@ import { ALL_THEME } from '@/lib/theme' */ const DebugPanel = () => { const [show, setShow] = useState(false) - const { changeTheme, switchTheme, locale } = useGlobal() + const { theme, switchTheme, locale } = useGlobal() + const router = useRouter() const [siteConfig, updateSiteConfig] = useState({}) - // const [themeConfig, updateThemeConfig] = useState({}) - const [debugTheme, updateDebugTheme] = useState(BLOG.THEME) // 主题下拉框 const themeOptions = ALL_THEME.map(t => ({ value: t, text: t })) useEffect(() => { - changeTheme(BLOG.THEME) updateSiteConfig(Object.assign({}, BLOG)) // updateThemeConfig(Object.assign({}, ThemeMap[BLOG.THEME].THEME_CONFIG)) }, []) @@ -29,15 +28,13 @@ const DebugPanel = () => { } function handleChangeDebugTheme() { - const newTheme = switchTheme() - // updateThemeConfig(Object.assign({}, ThemeMap[newTheme].THEME_CONFIG)) - updateDebugTheme(newTheme) + switchTheme() } - function handleUpdateDebugTheme(e) { - changeTheme(e) - // updateThemeConfig(Object.assign({}, ThemeMap[theme].THEME_CONFIG)) - updateDebugTheme(e) + function handleUpdateDebugTheme(newTheme) { + console.log('触发切换主题', newTheme) + const query = { ...router.query, theme: newTheme } + router.push({ pathname: router.pathname, query }) } function filterResult(text) { @@ -75,7 +72,7 @@ const DebugPanel = () => {