blob: c487d4eb22a9f10296b6f38d78fee0ff74e0793d [file] [log] [blame]
import zhPosts from '~/contents/zh/posts.js';
import config from '~/configs/config';
export const state = () => ({
filled: false,
docVersion: '',
ghVersion: '',
visibleAffix: false,
locale: 'zh',
lang: {},
menu: {},
homepage: {},
adBlocked: false,
focusMode: false,
posts: {
zh: zhPosts
},
config: config
})
export const mutations = {
toggle (state, key) {
state[key] = !state[key]
},
setDocVersion (state, docVersion) {
state.docVersion = docVersion
},
setGhVersion (state, ghVersion) {
state.ghVersion = ghVersion
},
setLocale (state, locale) {
state.locale = locale
},
setLang (state, lang) {
state.lang = lang
},
setMenu (state, menu) {
state.menu = menu
},
setHomepage (state, homepage) {
state.homepage = homepage
},
setFilled (state) {
state.filled = true
},
setAdBlocked (state, value) {
state.adBlocked = value
},
setFocusMode (state, value) {
state.focusMode = value
}
}
let _focusTimeout = null
export const actions = {
async getLangData ({ commit }, locale) {
const lang = await this.$docs.get('/lang/' + locale)
commit('setLang', lang)
commit('setDocVersion', lang.docVersion)
const menu = await this.$docs.get('/menu/' + locale)
commit('setMenu', menu)
const homepage = await this.$docs.get('/homepage/' + locale)
commit('setHomepage', homepage)
},
focusMode ({ commit }) {
if (_focusTimeout) {
return
}
_focusTimeout = setTimeout(() => commit('setFocusMode', true), 1300)
},
clearFocusMode ({ commit }) {
if (_focusTimeout) {
clearTimeout(_focusTimeout)
_focusTimeout = null
}
commit('setFocusMode', false)
}
}