diff --git a/docs/offlegacy.org/src/components/demo-playground.tsx b/docs/offlegacy.org/src/components/demo-playground.tsx index 10a461f..dd2e8a9 100644 --- a/docs/offlegacy.org/src/components/demo-playground.tsx +++ b/docs/offlegacy.org/src/components/demo-playground.tsx @@ -2,9 +2,8 @@ import { highlight, Pre, type HighlightedCode } from "codehike/code"; import { DemoButton } from "./demo-button"; -import { useTheme } from "nextra-theme-docs"; -import { useSystemDarkMode } from "../logo/useSystemDarkMode"; -import { useEffect, useState } from "react"; +import { Link, useTheme } from "nextra-theme-docs"; +import { useLayoutEffect, useState } from "react"; import { motion } from "motion/react"; import { Toaster } from "sonner"; @@ -31,13 +30,11 @@ function App() { }`; export function DemoCode() { - const { theme } = useTheme(); - const isSystemDarkMode = useSystemDarkMode(); - const resolvedTheme = theme === "system" ? (isSystemDarkMode ? "dark" : "light") : theme; + const { resolvedTheme } = useTheme(); const codeTheme = resolvedTheme === "dark" ? "github-dark" : "github-light"; const [highlighted, setHighlighted] = useState(null); - useEffect(() => { + useLayoutEffect(() => { highlight( { value: code, @@ -66,7 +63,9 @@ export function DemoCode() {
- example-basic.tsx + + example-basic.tsx +
diff --git a/docs/offlegacy.org/src/components/home-page.tsx b/docs/offlegacy.org/src/components/home-page.tsx index 4dbb6a0..812721c 100644 --- a/docs/offlegacy.org/src/components/home-page.tsx +++ b/docs/offlegacy.org/src/components/home-page.tsx @@ -46,7 +46,7 @@ export default async function HomePage({
-
+
diff --git a/docs/offlegacy.org/src/content/en/index.mdx b/docs/offlegacy.org/src/content/en/index.mdx index ee84f82..8d2d4cd 100644 --- a/docs/offlegacy.org/src/content/en/index.mdx +++ b/docs/offlegacy.org/src/content/en/index.mdx @@ -7,7 +7,7 @@ import HomePage from "@/components/home-page"; { - const isSystemDarkMode = useSystemDarkMode(); - const { theme } = useTheme(); + const { resolvedTheme } = useTheme(); + const [src, setSrc] = useState(LIGHT_LOGO_PATH); - const isDarkMode = theme === "system" ? isSystemDarkMode : theme === "dark"; + useLayoutEffect(() => { + setSrc(resolvedTheme === "dark" ? DARK_LOGO_PATH : LIGHT_LOGO_PATH); + }, [resolvedTheme]); - return ( - event-tracker logo - ); + return event-tracker logo; }; diff --git a/docs/offlegacy.org/src/logo/useSystemDarkMode.ts b/docs/offlegacy.org/src/logo/useSystemDarkMode.ts deleted file mode 100644 index e3b3cd5..0000000 --- a/docs/offlegacy.org/src/logo/useSystemDarkMode.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { useEffect, useState } from "react"; - -const DARK_MODE_QUERY = "(prefers-color-scheme: dark)"; - -export const useSystemDarkMode = () => { - const [isSystemDarkMode, setIsSystemDarkMode] = useState(false); - - useEffect(() => { - const matchMedia = window.matchMedia(DARK_MODE_QUERY); - setIsSystemDarkMode(matchMedia.matches); - - const handleChange = (e: MediaQueryListEvent) => { - setIsSystemDarkMode(e.matches); - }; - - matchMedia.addEventListener("change", handleChange); - - return () => { - matchMedia.removeEventListener("change", handleChange); - }; - }, []); - - return isSystemDarkMode; -};