import {createApp} from 'vue';
import Taro from '@tarojs/taro';
import './app.scss';

// 小程序场景值
const scenes = [1007, 1008, 1011, 1012, 1013, 1047, 1048, 1049];

const App = createApp({
  onLaunch(options: {
    path: string;
    scene: number;
    query: object | any;
    shareTicket: string;
    referrerInfo: object | any;
  }) {
    // 检测更新
    if (Taro.canIUse('getUpdateManager') && options.scene !== 1154) {
      const updateManager = Taro.getUpdateManager();
      updateManager.onCheckForUpdate(function (res) {
        if (res.hasUpdate) {
          updateManager.onUpdateFailed(function () {
            return Taro.showToast({
              title: '新版本下载失败',
              icon: 'none',
            });
          });
          updateManager.onUpdateReady(function () {
            Taro.showModal({
              title: '更新提示',
              content: '新版本已经下载好，是否重启当前应用？',
              success(res) {
                if (res.confirm) {
                  updateManager.applyUpdate();
                }
              },
            });
          });
          updateManager.onUpdateFailed(function () {
            Taro.showModal({
              title: '发现新版本',
              content: '请删除当前小程序，重启搜索打开...',
            });
          });
        }
      });
    }
  },
  onShow() {
    const options = Taro.getCurrentInstance().router as any;
    if (scenes.includes(options.scene)) {
      if (options.query.scene) {
        Taro.showToast({
          title: '已检测到推荐人',
          icon: 'none',
        });
        Taro.setStorageSync('bind_id', options.query.scene);
      }
    }
  },
});

export default App;
