summaryrefslogtreecommitdiff
path: root/static/js/components
diff options
context:
space:
mode:
authorLizzy Hunt <lizzy.hunt@usu.edu>2024-03-26 16:00:05 -0600
committerLizzy Hunt <lizzy.hunt@usu.edu>2024-03-26 16:00:05 -0600
commitfe22956d5dbdeb2b80a9e56b46abe2be9f2bfcdb (patch)
tree6111f03c2da4eb42aff03cda72157a8961da27e8 /static/js/components
parent27aab70386c68f3a0f22c52e72b91cf16b289100 (diff)
downloadhatecomputers.club-fe22956d5dbdeb2b80a9e56b46abe2be9f2bfcdb.tar.gz
hatecomputers.club-fe22956d5dbdeb2b80a9e56b46abe2be9f2bfcdb.zip
initial commit
Diffstat (limited to 'static/js/components')
-rw-r--r--static/js/components/themeSwitcher.js27
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);