import { ref } from 'vue'

/**
 * 导航栏状态管理 Composable
 * 检查当前路由栈是否大于1条，用于决定是否显示返回首页按钮
 * @returns 包含路由栈状态和相关方法的对象
 */
export function useNavigation() {
  // 是否有多个页面在路由栈中
  const hasMultiplePages = ref(false)
  // 当前页面是否为 tabBar 页面
  const isTabBarPage = ref(false)
  // tabBar 页面路径列表
  const tabBarPages = [
    'pages/index/index',
    'pages/message/index',
    'pages/mine/index'
  ]

  /**
   * 检查当前页面是否为 tabBar 页面
   */
  const checkIsTabBarPage = (currentRoute: string) => {
    isTabBarPage.value = tabBarPages.includes(currentRoute)
  }

  /**
   * 检查当前路由栈状态
   * 在每个页面的 onShow 或 onLoad 生命周期调用此方法
   */
  const checkRouteStack = () => {
    // 获取当前页面路由
    const pages = getCurrentPages()
    // 获取当前页面路径
    const currentRoute = pages[pages.length - 1]?.route || ''
    
    // 更新路由栈状态
    hasMultiplePages.value = pages.length > 1
    // 检查是否为 tabBar 页面
    checkIsTabBarPage(currentRoute)
  }

  return {
    hasMultiplePages,
    isTabBarPage,
    checkRouteStack
  }
}
