var defaultTabbarItem = [
  "pages/person/person",
  "pages/residents/report",
  "pages/index/index"
]

export function toggle(that) {
  let pages = getCurrentPages()
  let route = pages[pages.length - 1].route
  console.log("[CustomTabBar] route", route)

  if (!typeof that.getTabBar === 'function' || !that.getTabBar()) {
    // wx.showModal({
    //   title: '版本太旧',
    //   content: '您的微信版本太旧,无法使用本小程序',
    //   showCancel: false,
    //   complete: (res) => {
    //     wx.exitMiniProgram()
    //   }
    // })
    return
  }

  // 找出要选择哪一项
  let tabBar = that.getTabBar()
  console.log("[CustomTabBar] tabBar", tabBar)

  let data = tabBar.data
  console.log("[CustomTabBar] data", data)

  let showPagePathList = wx.getStorageSync('tabbarItem') || defaultTabbarItem
  console.log("[CustomTabBar] showPagePathList", showPagePathList)

  let list = tabBar.data.rawList.filter((page) => showPagePathList.includes(page.pagePath))
  console.log("[CustomTabBar] tabBarList", list)

  let selected = list ? list.indexOf(list.find(p => p.pagePath == route)) : -1
  console.log("[CustomTabBar] selected", selected)

  console.log("更新tabbar")

  // 选中这一项
  tabBar.setData({
    selected: selected,
    list: list
  })
}

export function updateConfig(baseUrl) {
  // 请求配置文件(用于审核时隐藏部分功能)
  wx.request({
    url: baseUrl + '/getConfig',
    success(result) {
      let data = result.data
      if (data.tabbarItem) {
        console.log("[CustomTabBar] tabbar数据拉取完毕")
        wx.setStorageSync('tabbarItem', data.tabbarItem)
        wx.setStorageSync('indexItem', data.indexItem)

        const pages = getCurrentPages();
        const indexPage = pages[0]
        const currentPage = pages[pages.length - 1]
        console.log("[CustomTabBar] indexPage", indexPage)
        console.log("[CustomTabBar] currentPage", currentPage)

        // // 更新tabbar
        // toggle(currentPage)
        // 刷新首页中包含了触发 toggle 的代码 此处不重复触发

        // 刷新首页
        indexPage && indexPage.onLoad()

        // let tabBar = currentPage.getTabBar()
        // tabBar.setData({
        //   list: tabBar.data.rawList.filter((page) => itemList.includes(page.pagePath))
        // })
      }
    },
    fail() {
      wx.showModal({
        title: '小程序启动失败',
        content: '点击确认重试,若多次失败请检查网络连接',
        complete: (res) => {
          if (res.cancel) {
            wx.exitMiniProgram()
          }

          if (res.confirm) {
            wx.reLaunch({
              url: 'pages/index/index',
            })
          }
        }
      })
    }
  })
}