Add theme3 body class helper
This commit is contained in:
parent
d0f894b653
commit
2d8f99f86b
2 changed files with 27 additions and 0 deletions
1
changelog.d/theme3-body-class.add
Normal file
1
changelog.d/theme3-body-class.add
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Indicate currently active V3 theme as a body element class
|
||||||
26
src/App.js
26
src/App.js
|
|
@ -52,6 +52,9 @@ export default {
|
||||||
themeApplied () {
|
themeApplied () {
|
||||||
this.removeSplash()
|
this.removeSplash()
|
||||||
},
|
},
|
||||||
|
currentTheme () {
|
||||||
|
this.setThemeBodyClass()
|
||||||
|
},
|
||||||
layoutType () {
|
layoutType () {
|
||||||
document.getElementById('modal').classList = ['-' + this.layoutType]
|
document.getElementById('modal').classList = ['-' + this.layoutType]
|
||||||
}
|
}
|
||||||
|
|
@ -71,6 +74,7 @@ export default {
|
||||||
this.scrollParent.addEventListener('scroll', this.updateScrollState)
|
this.scrollParent.addEventListener('scroll', this.updateScrollState)
|
||||||
|
|
||||||
if (useInterfaceStore().themeApplied) {
|
if (useInterfaceStore().themeApplied) {
|
||||||
|
this.setThemeBodyClass()
|
||||||
this.removeSplash()
|
this.removeSplash()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -82,6 +86,9 @@ export default {
|
||||||
themeApplied () {
|
themeApplied () {
|
||||||
return useInterfaceStore().themeApplied
|
return useInterfaceStore().themeApplied
|
||||||
},
|
},
|
||||||
|
currentTheme () {
|
||||||
|
return this.mergedConfig.style || this.$store.state.instance.style
|
||||||
|
},
|
||||||
layoutModalClass () {
|
layoutModalClass () {
|
||||||
return '-' + this.layoutType
|
return '-' + this.layoutType
|
||||||
},
|
},
|
||||||
|
|
@ -172,6 +179,25 @@ export default {
|
||||||
this.$refs.appContentRef.classList.remove(['-scrolled'])
|
this.$refs.appContentRef.classList.remove(['-scrolled'])
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
setThemeBodyClass () {
|
||||||
|
const themeName = this.currentTheme
|
||||||
|
const classList = Array.from(document.body.classList)
|
||||||
|
const oldTheme = classList.filter(c => c.startsWith('theme-'))
|
||||||
|
|
||||||
|
if (themeName !== null && themeName !== '') {
|
||||||
|
const newTheme = `theme-${themeName.toLowerCase()}`
|
||||||
|
|
||||||
|
// remove old theme reference if there are any
|
||||||
|
if (oldTheme.length) {
|
||||||
|
document.body.classList.replace(oldTheme[0], newTheme)
|
||||||
|
} else {
|
||||||
|
document.body.classList.add(newTheme)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// remove theme reference if non-V3 theme is used
|
||||||
|
document.body.classList.remove(...oldTheme)
|
||||||
|
}
|
||||||
|
},
|
||||||
removeSplash () {
|
removeSplash () {
|
||||||
document.querySelector('#status').textContent = this.$t('splash.fun_' + Math.ceil(Math.random() * 4))
|
document.querySelector('#status').textContent = this.$t('splash.fun_' + Math.ceil(Math.random() * 4))
|
||||||
const splashscreenRoot = document.querySelector('#splash')
|
const splashscreenRoot = document.querySelector('#splash')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue