feat: add server-status theme (#295)

*  feat: add server-status theme

* add `ServerStatus` theme to README

---------

Co-authored-by: naiba <hi@nai.ba>
This commit is contained in:
unclezs
2023-11-06 23:46:28 -06:00
committed by GitHub
parent 150612a1d9
commit 470fa69ad9
27 changed files with 1660 additions and 13 deletions

View File

@@ -0,0 +1,49 @@
const mixinsVue = {
data: {
cache: [],
theme: "light",
isSystemTheme: false
},
created() {
this.initTheme()
},
methods: {
setTheme(title, store = false) {
this.theme = title
document.body.setAttribute("theme", title)
if (store) {
localStorage.setItem("theme", title)
this.isSystemTheme = false
}
},
setSystemTheme() {
localStorage.removeItem("theme")
this.initTheme()
this.isSystemTheme = true
},
initTheme() {
const storeTheme = localStorage.getItem("theme")
if (storeTheme === 'dark' || storeTheme === 'light') {
this.setTheme(storeTheme, true);
} else {
this.isSystemTheme = true
const handleChange = (mediaQueryListEvent) => {
if (localStorage.getItem("theme")) {
return
}
if (mediaQueryListEvent.matches) {
this.setTheme('dark');
} else {
this.setTheme('light');
}
}
const mediaQueryListDark = window.matchMedia('(prefers-color-scheme: dark)');
this.setTheme(mediaQueryListDark.matches ? 'dark' : 'light');
mediaQueryListDark.addEventListener("change", handleChange);
}
},
toFixed2(f) {
return f.toFixed(2)
},
}
}