import { useLocation } from '@umijs/max';
import { useEffect } from 'react';
// import { tabsManager } from './MyPageContainer'; // 不再导入tabsManager

export interface UsePageTabsOptions {
  /** 标签页的唯一标识 */
  tabKey: string;
  /** 标签页显示的标题 */
  tabLabel: string;
  /** 是否可关闭，默认为true */
  closable?: boolean;
  /** 是否自动添加到标签页，默认为true */
  autoAdd?: boolean;
}

/**
 * 页面标签页Hook
 * 用于简化页面标签页的管理
 *
 * 功能特性：
 * - 自动添加当前页面为标签页
 * - 新标签页默认在当前激活标签页的右边插入
 * - 支持标签页的增删改查操作
 * - 支持标签页位置管理（关闭左侧/右侧/其他标签页）
 */
export function usePageTabs(options?: UsePageTabsOptions) {
  const location = useLocation();
  const { tabKey, tabLabel, closable = true, autoAdd = true } = options || {};

  // 不再自动添加标签页
  useEffect(() => {
    // 多标签页功能已取消，不再执行任何操作
  }, [tabKey, tabLabel, closable, autoAdd, location.pathname, location.search]);

  return {
    /** 添加新标签页 - 多标签页功能已取消 */
    addTab: () => {
      // 多标签页功能已取消，不再执行任何操作
    },

    /** 在当前标签页右边添加新标签页 - 多标签页功能已取消 */
    addTabNext: () => {
      // 多标签页功能已取消，不再执行任何操作
    },

    /** 关闭指定标签页 - 多标签页功能已取消 */
    removeTab: () => {
      // 多标签页功能已取消，不再执行任何操作
    },

    /** 切换到指定标签页 - 多标签页功能已取消 */
    switchTab: () => {
      // 多标签页功能已取消，不再执行任何操作
    },

    /** 关闭其他标签页 - 多标签页功能已取消 */
    closeOtherTabs: () => {
      // 多标签页功能已取消，不再执行任何操作
    },

    /** 关闭左侧标签页 - 多标签页功能已取消 */
    closeLeftTabs: () => {
      // 多标签页功能已取消，不再执行任何操作
    },

    /** 关闭右侧标签页 - 多标签页功能已取消 */
    closeRightTabs: () => {
      // 多标签页功能已取消，不再执行任何操作
    },

    /** 刷新标签页 - 多标签页功能已取消 */
    refreshTab: () => {
      // 多标签页功能已取消，不再执行任何操作
    },

    /** 获取当前所有标签页 - 多标签页功能已取消 */
    getTabs: () => [],

    /** 获取当前激活的标签页key - 多标签页功能已取消 */
    getActiveKey: () => '',
  };
}

/**
 * 标签页管理器Hook - 多标签页功能已取消
 */
export function useTabsManager() {
  return {
    // 多标签页功能已取消，返回空对象和空函数
    tabsManager: {},
    addTab: () => {},
    addTabNext: () => {},
    removeTab: () => {},
    setActiveKey: () => {},
    closeOtherTabs: () => {},
    closeLeftTabs: () => {},
    closeRightTabs: () => {},
    refreshTab: () => {},
    getTabs: () => [],
    getActiveKey: () => '',
  };
}
