settings.js 1.67 KB
import variables from '@/styles/element-variables.scss'
import defaultSettings from '@/settings'
import ncc from '@/utils/ncc'

const {
  showSettings,
  tagsView,
  tagsIcon,
  showLanguage,
  showSearch,
  useCache,
  fixedHeader,
  sidebarLogo,
  themeClass,
  slideClass,
  layoutType
} = defaultSettings

const state = {
  theme: variables.theme,
  showSettings: showSettings,
  tagsView: ncc.storageGet('tagsView') === null ? tagsView : ncc.storageGet('tagsView'),
  tagsIcon: ncc.storageGet('tagsIcon') === null ? tagsIcon : ncc.storageGet('tagsIcon'),
  showLanguage: ncc.storageGet('showLanguage') === null ? showLanguage : ncc.storageGet('showLanguage'),
  showSearch: ncc.storageGet('showSearch') === null ? showSearch : ncc.storageGet('showSearch'),
  useCache: ncc.storageGet('useCache') === null ? useCache : ncc.storageGet('useCache'),
  fixedHeader: ncc.storageGet('fixedHeader') === null ? fixedHeader : ncc.storageGet('fixedHeader'),
  sidebarLogo: ncc.storageGet('sidebarLogo') === null ? sidebarLogo : ncc.storageGet('sidebarLogo'),
  themeClass: ncc.storageGet('themeClass') === null ? themeClass : ncc.storageGet('themeClass'),
  slideClass: ncc.storageGet('slideClass') === null ? slideClass : ncc.storageGet('slideClass'),
  layoutType: ncc.storageGet('layoutType') === null ? layoutType : ncc.storageGet('layoutType')
}

const mutations = {
  CHANGE_SETTING: (state, { key, value }) => {
    if (state.hasOwnProperty(key)) {
      state[key] = value
      ncc.storageSet({
        [key]: value
      })
    }
  }
}

const actions = {
  changeSetting({ commit }, data) {
    commit('CHANGE_SETTING', data)
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}