store/index.js (56 lines of code) (raw):

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, 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 }, 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 = { focusMode({ commit }) { if (_focusTimeout) { return } _focusTimeout = setTimeout(() => commit('setFocusMode', true), 1300) }, clearFocusMode({ commit }) { if (_focusTimeout) { clearTimeout(_focusTimeout) _focusTimeout = null } commit('setFocusMode', false) } }