summaryrefslogtreecommitdiff
path: root/docs/src/components/ThemeToggle.tsx
diff options
context:
space:
mode:
authorGravatar Tony Sullivan <tony.f.sullivan@outlook.com> 2021-07-20 01:18:02 +0200
committerGravatar GitHub <noreply@github.com> 2021-07-19 16:18:02 -0700
commit7f57651686fb63e2158aa512a0b00dc262ee7425 (patch)
tree952150140d52b1fdcd65a804ad4c1515d26c3cae /docs/src/components/ThemeToggle.tsx
parent054e79acd7211920c2ee992bab0f1916c4f6aa35 (diff)
downloadastro-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.tsx12
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;