blob: 970d4f0f88bd6c8378bd84ac4382b79ac73e0af5 [file] [log] [blame]
import zhPosts from '~/contents/zh/posts.yml'
import enPosts from '~/contents/en/posts.yml'
import config from '~/configs/config'
export const state = () => ({
filled: false,
docVersion: '',
ghVersion: '',
visibleAffix: false,
locale: 'en',
lang: {},
menu: {},
homepage: {},
adBlocked: false,
focusMode: false,
posts: {
zh: zhPosts,
en: enPosts
},
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)
}
}