feat(@vant/cli): mobile site support dark mode

This commit is contained in:
chenjiahan
2022-01-26 15:57:28 +08:00
parent 966af9dd68
commit df24a3b683
10 changed files with 80 additions and 26 deletions
@@ -21,7 +21,7 @@
</a>
</li>
<li v-if="supportDarkMode" class="van-doc-header__top-nav-item">
<li v-if="darkModeClass" class="van-doc-header__top-nav-item">
<a
class="van-doc-header__link"
target="_blank"
@@ -76,6 +76,7 @@
<script>
import SearchInput from './SearchInput.vue';
import { packageVersion } from 'site-desktop-shared';
import { getDefaultTheme, syncThemeToChild } from '../../common/iframe-sync';
export default {
name: 'VanDocHeader',
@@ -89,12 +90,12 @@ export default {
config: Object,
versions: Array,
langConfigs: Array,
supportDarkMode: Boolean,
darkModeClass: String,
},
data() {
return {
currentTheme: this.getDefaultTheme(),
currentTheme: getDefaultTheme(),
packageVersion,
showVersionPop: false,
};
@@ -136,16 +137,13 @@ export default {
window.localStorage.setItem('vantTheme', newVal);
document.body.classList.remove(`van-doc-theme-${oldVal}`);
document.body.classList.add(`van-doc-theme-${newVal}`);
syncThemeToChild(newVal);
},
immediate: true,
},
},
methods: {
getDefaultTheme() {
return window.localStorage.getItem('vantTheme') || 'light';
},
toggleTheme() {
this.currentTheme = this.currentTheme === 'light' ? 'dark' : 'light';
},
@@ -5,7 +5,7 @@
:config="config"
:versions="versions"
:lang-configs="langConfigs"
:support-dark-mode="supportDarkMode"
:dark-mode-class="darkModeClass"
@switch-version="$emit('switch-version', $event)"
/>
<doc-nav :lang="lang" :nav-config="config.nav" />
@@ -42,7 +42,7 @@ export default {
simulator: String,
langConfigs: Array,
hasSimulator: Boolean,
supportDarkMode: Boolean,
darkModeClass: String,
config: {
type: Object,
required: true,