import Vue from 'vue'
import vuex from 'vuex'
Vue.use(vuex)

var store = new vuex.Store({
  state: {
    // 登录 token
    userInfo: null,
    // 媒体对象
    mediaObj: {},
    mediaIdArr: []
  },
  getters: {
    getMedieId: ({mediaIdArr}) => {
      let id = 'medie_' + mediaIdArr.length
      return id
    }
  },
  mutations: {
    /**
     * 更改登录凭证
     * @param token 登录凭证
     */
    changeUserInfo (state, userInfo) {
      state.userInfo = userInfo
      wx.setStorageSync('userInfo', JSON.stringify(userInfo))
    },
    /**
     * 增加媒体对象
     * @param state 监听变量触发事件
     * @param id 唯一id
     * @param mediaObj 媒体对象
     */
    addMedieObj (state, {id, mediaObj}) {
      state.mediaObj[id] = mediaObj
    },
    /**
     * 增加 id
     * @param state 监听变量触发事件
     * @param id 唯一id
     */
    addMediaId (state, id) {
      state.mediaIdArr.push(id)
    },
    /**
     * 保证媒体对象唯一播放
     * @param state 监听变量触发事件
     * @param id 唯一id
     */
    playOnlyMedia (state, id) {
      for (let i in state.mediaObj) {
        if (i !== id) {
          state.mediaObj[i].isPlay = false
          state.mediaObj[i].pause()
        }
      }
    }
  }
})

export default store
