import { browser } from '@/helpers/utils'
import { Dialog } from 'vant'
import { createRouter, createWebHistory, Router } from 'vue-router'
import { postMessage } from '@/helpers/native-message'
import routes from './routes-teacher'
const router: Router = createRouter({
  history: createWebHistory(),
  routes,
  scrollBehavior(to, from, savedPosition) {
    if (to.hash) {
      return {
        el: to.hash,
        behavior: 'smooth'
      }
    }
  }
})

router.beforeEach((to, from, next) => {
  document.title = (to.meta.title || '酷乐秀') as any
  next()
})

let isOpen = false
router.onError(error => {
  if (error instanceof Error) {
    const isChunkLoadFailed = error.name.indexOf('chunk')
    const targetPath = router.currentRoute.value.fullPath
    if (isChunkLoadFailed && !isOpen) {
      isOpen = true
      Dialog.alert({
        title: '更新提示',
        message: 'APP有更新请点击确定刷新页面?',
        confirmButtonColor: 'var(--van-primary)'
      }).then(() => {
        // on close
        if (browser().isApp) {
          postMessage({ api: 'back' })
        } else {
          location.hash = targetPath
          window.location.reload()
        }
      })
    }
  }
})

export default router
