import {createApp} from 'vue'
import '@/app.scss'
import '@/assets/css/main.css'
import {pinia} from "@/store";
import Taro from "@tarojs/taro";
import {MINI_PROGRAM_USER_CONFIG} from "@/config";
import {useUserStore} from "@/store/userStore";
import {initEnum} from "@/enums";

const App = createApp({
  onLaunch(opt) {
    initEnum()
    if (opt.path === 'subPages/projectManager/securityUserForm/securityUserForm' && opt.query.type === 'QcCodeInput') {
      return
    }
    const tokenInfo = useUserStore().getTokenInfo();
    if (tokenInfo) {
      Taro.switchTab({
        url: MINI_PROGRAM_USER_CONFIG[tokenInfo.extData.identity.value].toIndex
      })
    } else {
      Taro.navigateTo({
        url: '/pages/login/login',
      })
    }
  },
  onShow(){
    const updateManager = Taro.getUpdateManager()
    updateManager.onCheckForUpdate(function(res) {
      // 请求完新版本信息的回调
      if (res.hasUpdate) {
        // 新版本已经下载好，调用 applyUpdate 应用新版本并重启
        updateManager.applyUpdate()
      }
    })
    updateManager.onUpdateReady(function() {
      // 新版本已经准备好，可以提示用户更新
      Taro.showModal({
        title: '更新提示',
        content: '发现新版本，是否重启应用？',
        success: function (res) {
          if (res.confirm) {
            // 新的版本已经准备好，调用 applyUpdate 应用新版本
            updateManager.applyUpdate()
          }
        }
      }).then(res=>{
        console.log(res)
      })
    })
    updateManager.onUpdateFailed(function() {
      // 新版本下载失败，可进行一些提示用户的操作
      Taro.showModal({
        title: '已有新版本',
        content: '请删除当前小程序，重新从搜索界面打开获取最新版本',
      }).then(res => {
        console.log(res)
      })
    })
  }
  // 入口组件不需要实现 render 方法，即使实现了也会被 taro 所覆盖
})

App.use(pinia)

export default App
