import Taro, {useDidShow, useDidHide} from '@tarojs/taro'
import './app.scss'
import {CustomWrapper} from "@tarojs/components";
import {Profile} from '@/store'
import storageDep from "@/hooks/storageDep";


function updateApp() {
  if (Taro.canIUse('getUpdateManager.onCheckForUpdate')) {
    const updateManager = Taro.getUpdateManager()
    updateManager.onCheckForUpdate((res) => {
      console.log('新版本', res.hasUpdate)
    })

    updateManager.onUpdateReady(() => {
      Taro.showModal({
        title: '更新提示',
        content: '新版本已经准备好，是否重启应用？',
        success(res) {
          if (res.confirm) {
            updateManager.applyUpdate()
          }
        }
      })
    })
    updateManager.onUpdateFailed(() => {
      // 新版本下载失败
      Taro.showToast({title: '新版本下载失败'})
    })
  }
}


function App(props) {

  Taro.useLaunch(() => {
    updateApp()
    storageDep.remove()
  })

  Taro.getSystemInfo({
    success(res) {
      Taro.getApp().globalData = {
        statusBarHeight: res.statusBarHeight || 0,
        screenWidth: res.screenWidth,
        screenHeight: res.screenHeight,
        windowHeight: res.windowHeight,
        safeArea: res.safeArea,
        menu:Taro.getMenuButtonBoundingClientRect(),
      }
      console.log(Taro.getApp().globalData)
    }
  })

  // 对应 onShow
  useDidShow(() => {
  })

  // 对应 onHide
  useDidHide(() => {
  })


  return (
    <CustomWrapper>
      <Profile.Provider>
        {props.children}
      </Profile.Provider>
    </CustomWrapper>
  )
}

export default App
