From 60a2755c0a93d158fa030ae9883327190b67d190 Mon Sep 17 00:00:00 2001 From: "Fred K. Schott" Date: Mon, 26 Jul 2021 13:41:32 -0700 Subject: some docs site polish (#853) * some docs polish * attempt to fix theme toggle --- docs/src/components/ThemeToggle.tsx | 52 ++++++++++++++----------------------- 1 file changed, 19 insertions(+), 33 deletions(-) (limited to 'docs/src/components/ThemeToggle.tsx') diff --git a/docs/src/components/ThemeToggle.tsx b/docs/src/components/ThemeToggle.tsx index 95de4fba1..e990d8ea4 100644 --- a/docs/src/components/ThemeToggle.tsx +++ b/docs/src/components/ThemeToggle.tsx @@ -2,22 +2,9 @@ import type { FunctionalComponent } from 'preact'; import { h, Fragment } from 'preact'; import { useState, useEffect } from 'preact/hooks'; -const themes = ['system', 'light', 'dark']; +const themes = ['light', 'dark']; const icons = [ - - - , { const [theme, setTheme] = useState(() => { - if (typeof localStorage === 'undefined') { - return themes[0]; + if (import.meta.env.SSR) { + return undefined; } - - return localStorage.getItem('theme') || themes[0]; + if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) { + return localStorage.getItem('theme'); + } + if (window.matchMedia('(prefers-color-scheme: dark)').matches) { + return 'dark'; + } + return 'light'; }); useEffect(() => { const root = document.documentElement; - if (theme === 'system') { - localStorage.removeItem('theme'); - if (window.matchMedia('(prefers-color-scheme: dark)').matches) { - root.classList.add('theme-dark'); - } else { - root.classList.remove('theme-dark'); - } + if (theme === 'light') { + root.classList.remove('theme-dark'); } else { - localStorage.setItem('theme', theme); - if (theme === 'light') { - root.classList.remove('theme-dark'); - } else { - root.classList.add('theme-dark'); - } + root.classList.add('theme-dark'); } }, [theme]); + return (
{themes.map((t, i) => { const icon = icons[i]; const checked = t === theme; return ( -