diff options
author | 2021-07-20 01:18:02 +0200 | |
---|---|---|
committer | 2021-07-19 16:18:02 -0700 | |
commit | 7f57651686fb63e2158aa512a0b00dc262ee7425 (patch) | |
tree | 952150140d52b1fdcd65a804ad4c1515d26c3cae /docs/src/components/ThemeToggle.tsx | |
parent | 054e79acd7211920c2ee992bab0f1916c4f6aa35 (diff) | |
download | astro-7f57651686fb63e2158aa512a0b00dc262ee7425.tar.gz astro-7f57651686fb63e2158aa512a0b00dc262ee7425.tar.zst astro-7f57651686fb63e2158aa512a0b00dc262ee7425.zip |
fix: :bug: ThemeToggle should initialize from localstorage immediately (#748)
Co-authored-by: Tony Sullivan <tony.f.sullivan@gmail.com>
Diffstat (limited to 'docs/src/components/ThemeToggle.tsx')
-rw-r--r-- | docs/src/components/ThemeToggle.tsx | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/docs/src/components/ThemeToggle.tsx b/docs/src/components/ThemeToggle.tsx index 31ab5ea74..95de4fba1 100644 --- a/docs/src/components/ThemeToggle.tsx +++ b/docs/src/components/ThemeToggle.tsx @@ -43,13 +43,13 @@ const icons = [ ]; const ThemeToggle: FunctionalComponent = () => { - const [theme, setTheme] = useState(themes[0]); + const [theme, setTheme] = useState(() => { + if (typeof localStorage === 'undefined') { + return themes[0]; + } - useEffect(() => { - const user = localStorage.getItem('theme'); - if (!user) return; - setTheme(user); - }, []); + return localStorage.getItem('theme') || themes[0]; + }); useEffect(() => { const root = document.documentElement; |