import Taro, { useLaunch } from "@tarojs/taro";
import { PropsWithChildren } from "react";
import "./app.less";
import { useAppStore } from "./store/appStore";

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

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

    if (process.env.TARO_ENV == "h5") {
      return;
    }

    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);
      },
    });
  });
  return <>{children}</>;
}

export default App;
