diff --git a/src/App.vue b/src/App.vue index 551267a5..735ced1b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -95,21 +95,25 @@ export default { }, methods: { setTheme() { - let themePref = this.getPreferenceString("theme", "dark"); - if (themePref == "auto") this.theme = darkModePreference.matches ? "dark" : "light"; - else this.theme = themePref; + let themePref = this.getPreferenceString("theme", "dark"); // dark, light or auto + const themes = { + dark: "dark", + light: "light", + auto: darkModePreference.matches ? "dark" : "light", + }; - // Change title bar color based on user's theme - const themeColor = document.querySelector("meta[name='theme-color']"); - if (this.theme === "light") { - themeColor.setAttribute("content", "#FFF"); - } else { - themeColor.setAttribute("content", "#0F0F0F"); - } + this.theme = themes[themePref]; + + this.changeTitleBarColor(); // Used for the scrollbar const root = document.querySelector(":root"); - this.theme == "dark" ? root.classList.add("dark") : root.classList.remove("dark"); + this.theme === "dark" ? root.classList.add("dark") : root.classList.remove("dark"); + }, + changeTitleBarColor() { + const currentColor = { dark: "#0F0F0F", light: "#FFF" }; + const themeColor = document.querySelector("meta[name='theme-color']"); + themeColor.setAttribute("content", currentColor[this.theme]); }, }, };