From 89da07fe7d328bf214b793a9889134073bd14b47 Mon Sep 17 00:00:00 2001 From: Bairui Su Date: Thu, 1 Aug 2024 10:11:30 +0800 Subject: [PATCH] Fix dark signal for docusaurus (#211) --- .../genji-theme-docusaurus/src/theme/DocRoot/index.jsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/genji-theme-docusaurus/src/theme/DocRoot/index.jsx b/packages/genji-theme-docusaurus/src/theme/DocRoot/index.jsx index 542ad46..179e021 100644 --- a/packages/genji-theme-docusaurus/src/theme/DocRoot/index.jsx +++ b/packages/genji-theme-docusaurus/src/theme/DocRoot/index.jsx @@ -5,6 +5,7 @@ import { useLocation } from "@docusaurus/router"; function useDark() { const [dark, setDark] = React.useState(false); + useEffect(() => { const observer = new MutationObserver((mutationsList) => { for (const mutation of mutationsList) { @@ -14,8 +15,10 @@ function useDark() { } }); observer.observe(document.documentElement, { attributes: true }); + return () => observer.disconnect(); }, []); + return dark; } @@ -26,9 +29,12 @@ export default function DocRoot(props) { useEffect(() => { const config = window.__genjiConfig || {}; - if (!pageRef.current) pageRef.current = new Page(config); + if (!pageRef.current) pageRef.current = new Page({ isDark: dark, ...config }); pageRef.current.render(); - return () => pageRef.current.dispose(); + return () => { + pageRef.current.dispose(); + pageRef.current = null; + }; }, [location.pathname]); useEffect(() => {