import type { FunctionalComponent } from 'preact'; import { h, Fragment } from 'preact'; import { useState, useEffect } from 'preact/hooks'; const themes = ['system', 'light', 'dark']; const icons = [ , , , ]; const ThemeToggle: FunctionalComponent = () => { const [theme, setTheme] = useState(themes[0]); useEffect(() => { const user = localStorage.getItem('theme'); if (!user) return; setTheme(user); }, []); 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'); } } else { localStorage.setItem('theme', theme); if (theme === 'light') { root.classList.remove('theme-dark'); } else { root.classList.add('theme-dark'); } } }, [theme]); return (
{themes.map((t, i) => { const icon = icons[i]; const checked = t === theme; return ( ); })}
); }; export default ThemeToggle; ion value='dave/nodemodule-preloadmodules'>dave/nodemodule-preloadmodules Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets/array-arguments-slice.mjs (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2023-10-09added commands (#6314)Gravatar babar 1-1/+2
2023-10-09Update README.md (#6291)Gravatar TPLJ 1-1/+1
2023-10-09docs: fixing a couple typos (#6331)Gravatar Michael Di Prisco 2-2/+2
2023-10-09fix: support uint8 exit code range (#6303)Gravatar Liz 2-2/+11
2023-10-09Fix array variables preview in debugger (#6379)Gravatar 2hu 1-1/+4
2023-10-07feat(KeyObject) (#5940)Gravatar Ciro Spaciari 106-67/+9342
2023-10-07Exclude more filesGravatar Jarred Sumner 1-1/+1
2023-10-07Exclude more filesGravatar Jarred Sumner 1-1/+2
2023-10-07Update settings.jsonGravatar Jarred Sumner 1-1/+2
2023-10-07Update settings.jsonGravatar Jarred Sumner 1-2/+3
2023-10-06fix a couple install testsGravatar Dylan Conway 1-8/+8
2023-10-06formatGravatar Dylan Conway 1-1/+2
2023-10-06Fix memory leak in fetch() (#6350)Gravatar Jarred Sumner 1-2/+0
2023-10-06[types] allow onLoad plugin callbacks to return undefined (#6346)Gravatar Silver 1-1/+1
2023-10-06docs: `file.stream()` is not a promise (#6337)Gravatar Paul Nodet 1-1/+1