import Taro, { useLaunch } from "@tarojs/taro";
import { PropsWithChildren } from "react";
import "./app.less";
import { useAppStore } from "./store/appStore";
import { generateRandomId } from '@/utils/index'
import {LOGIN_ID_STORAGE_KEY } from '@/xiaolanbenlib/constant'
import dayjs from "dayjs";
import 'dayjs/locale/zh-cn'
import relativeTime from  'dayjs/plugin/relativeTime'
dayjs.locale('zh-cn');

dayjs.extend(relativeTime)

if (process.env.TARO_ENV == "h5") {
  const VConsole = require("vconsole");
  new VConsole();
}
function App({ children }: PropsWithChildren<any>) {
  const { setSystemInfo } = useAppStore();

  useLaunch((options) => {
    console.log("App launched.", options.query);
    

    const updateManager = Taro.getUpdateManager();

    updateManager.onCheckForUpdate(function (res) {
      // 请求完新版本信息的回调
      console.log("需要更新: ", res.hasUpdate);
    });

    updateManager.onUpdateReady(function () {
      Taro.showModal({
        title: "更新提示",
        content: "新版本已经准备好，是否重启应用？",
        success: function (res) {
          if (res.confirm) {
            // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate();
          }
        },
      });
    });

    updateManager.onUpdateFailed(function () {
      // 新版本下载失败
    });

    Taro.getSystemInfoAsync({
      success(res) {
        setSystemInfo(res);
      },
    });

    const uuid = generateRandomId()
    console.log(uuid)
    Taro.setStorageSync(LOGIN_ID_STORAGE_KEY, uuid) // 打开小程序时创建 login_uuid

  });
  return <>{children}</>;
}

export default App;
