import store from '@/store'
import { Message } from 'element-ui'

// 登陆成功 ok
function deviceAuthRspHandler(message) {
  let currentUser = message.Extra

  // 隐藏登陆页面的loading
  store.commit('websocket/SET_LOGIN_LOADING', false)
  // 设置用户信息
  store.commit('SET_USER', currentUser)
  // 设置token信息
  store.commit('SET_WEBSOCKET_TOKEN', message.AccessToken)

  // 如果是electron
  if (process.env.VUE_APP_CURRENTMODE === 'electron') {
    const { ipcRenderer } = window.require('electron')
    ipcRenderer.send('operations', 'login')
  }

  // 获取微信列表
  store.dispatch('websocket/GetWeChatsReq')

  if (store.state.route.path === '/login') {
    // 如果是第一次登陆，跳转到会话页面，后台重新登陆
    store.commit('route/ROUTE_CHANGED', { to: { path: '/' } })
  } else {
    // 后台自动登陆
  }
}

// 微信下线通知处理 ok
// 本地更新信息
// 该接口不会立马通知 当发消息的时候会触发
function wwOfflineNoticeHandler(message) {
  for (const wechat of store.getters['conversation/wechats']) {
    if (wechat.WxId === message.WxId) {
      // 弹框提示微信已经下线
      Message({
        message: `${wechat.Name} 下线了！`,
        type: 'error',
        duration: 2000
      })
      // 修改本地不在线微信的信息
      store.commit('conversation/WECHAT_OFF_LINE', message.WxId)
      break
    }
  }
}

// 微信上线 上线后自动登陆
function wwOnlineNoticeHandler(message) {
  // 提示某某已经上线
  Message({
    message: `${message.Name} 上线了！`,
    type: 'success',
    duration: 1000,
    showClose: true
  })
  store.commit('conversation/WECHAT_ON_LINE', message)
}

export default {
  deviceAuthRspHandler,
  wwOfflineNoticeHandler,
  wwOnlineNoticeHandler
}
