import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)
export default new Vuex.Store({
  state: {
    isApp: false,
    appNavBarShow: false,
    systemInfo: {
      statusHeight: 0
    },
    loggerData: [],
    networkLoggerData: [],
    /**
     * @description: 如果需要在addLoggerData/addNetworkLoggerData打印log
     * @description: 请使用:storeLog(log)的方式避免死循环
     * @return {*}
     */
    storeLog: null
  },
  getters: {
    getIsApp: state => state.isApp,
    getAppNavBarShow: state => state.appNavBarShow,
    getSystemInfo: state => state.systemInfo,
    getTopOffsetHeight: state => {
      if (state.isApp) {
        if (state.appNavBarShow) {
          return 46 + state.systemInfo.statusHeight
        } else {
          return 46
        }
      } else {
        return 0
      }
    },
    getLoggerData: state => state.loggerData,
    getNetworkLoggerData: state => state.networkLoggerData
  },
  mutations: {
    setIsApp(state, isApp) {
      state.isApp = isApp
    },
    setAppNavBarShow(state, isShow) {
      state.appNavBarShow = isShow
    },

    setSystemInfo(state, systemInfo) {
      state.systemInfo = systemInfo
    },
    setStoreLog(state, log) {
      state.storeLog = log
    },
    addLoggerData(state, log) {
      state.loggerData.push(log)
    },
    addNetworkLoggerData(state, networkLog) {
      state.networkLoggerData.push(networkLog)
    }
  },
  actions: {},
  modules: {}
})