import { FC } from 'react'
import ContextBlueTooth from '@/use/contextBlueTooth'
import { Provider } from 'react-redux'
import configStore from './store'
import './app.scss'
import Taro, { onAppShow, useDidShow } from '@tarojs/taro'
import { shareShop } from './common/util'

type ParamsType = {
  children?: React.ReactNode
}

const store = configStore()
const App: FC<ParamsType> = (params) => {
  const { children } = params

  Taro.showShareMenu({
    withShareTicket: true,
  })

  //分享
  shareShop()

  //检查版本更新
  onAppShow(() => {
    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 () {
      console.log('新版本更新失败')
    })
  })

  return (
    <ContextBlueTooth>
      <Provider store={store}>{children}</Provider>
    </ContextBlueTooth>
  )
}

export default App
