diff options
| author | Lizzy Hunt <lizzy.hunt@usu.edu> | 2024-03-26 16:00:05 -0600 |
|---|---|---|
| committer | Lizzy Hunt <lizzy.hunt@usu.edu> | 2024-03-26 16:00:05 -0600 |
| commit | fe22956d5dbdeb2b80a9e56b46abe2be9f2bfcdb (patch) | |
| tree | 6111f03c2da4eb42aff03cda72157a8961da27e8 /static/js/components/themeSwitcher.js | |
| parent | 27aab70386c68f3a0f22c52e72b91cf16b289100 (diff) | |
| download | hatecomputers.club-fe22956d5dbdeb2b80a9e56b46abe2be9f2bfcdb.tar.gz hatecomputers.club-fe22956d5dbdeb2b80a9e56b46abe2be9f2bfcdb.zip | |
initial commit
Diffstat (limited to 'static/js/components/themeSwitcher.js')
| -rw-r--r-- | static/js/components/themeSwitcher.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/static/js/components/themeSwitcher.js b/static/js/components/themeSwitcher.js new file mode 100644 index 0000000..5f6d927 --- /dev/null +++ b/static/js/components/themeSwitcher.js @@ -0,0 +1,27 @@ +const THEMES = { + DARK: "DARK", + LIGHT: "LIGHT", +}; + +const flipFlopTheme = (theme) => + THEMES[theme] === THEMES.DARK ? THEMES.LIGHT : THEMES.DARK; + +const themePickerText = { + DARK: "light mode.", + LIGHT: "dark mode.", +}; + +const themeSwitcher = document.getElementById("theme-switcher"); + +const setTheme = (theme) => { + themeSwitcher.textContent = `${themePickerText[theme]}`; + + document.documentElement.setAttribute("data-theme", theme); + localStorage.setItem("theme", theme); +}; + +themeSwitcher.addEventListener("click", () => + setTheme(flipFlopTheme(document.documentElement.getAttribute("data-theme"))), +); + +setTheme(localStorage.getItem("theme") ?? THEMES.LIGHT); |
