import { View, Text } from '@tarojs/components';
import Taro from '@tarojs/taro';
import './index.scss';

interface TabItem {
  key: string;
  icon: string;
  activeIcon: string;
  label: string;
  url: string;
}

const DOCTOR_TABS: TabItem[] = [
  { key: 'workbench', icon: '🏠', activeIcon: '🏠', label: '工作台', url: '/pages/pkg-doctor-core/index' },
  { key: 'patients', icon: '👤', activeIcon: '👤', label: '患者', url: '/pages/pkg-doctor-core/patients/index' },
  { key: 'consultation', icon: '💬', activeIcon: '💬', label: '咨询', url: '/pages/pkg-doctor-core/consultation/index' },
  { key: 'settings', icon: '⚙️', activeIcon: '⚙️', label: '我的', url: '/pages/pkg-profile/settings/index' },
];

interface DoctorTabBarProps {
  active?: string;
}

export default function DoctorTabBar({ active }: DoctorTabBarProps) {
  const currentPath = `/${Taro.getCurrentPages().pop()?.path ?? ''}`;
  const activeKey = active ?? DOCTOR_TABS.find((t) => currentPath.startsWith(t.url.replace('/index', '')))?.key ?? 'workbench';

  const handleTab = (tab: TabItem) => {
    if (tab.key === activeKey) return;
    Taro.reLaunch({ url: tab.url }).catch(() => {
      Taro.redirectTo({ url: tab.url }).catch(() => {});
    });
  };

  return (
    <View className="doctor-tabbar" role="tablist">
      {DOCTOR_TABS.map((tab) => (
        <View
          key={tab.key}
          className={`doctor-tabbar__item ${tab.key === activeKey ? 'doctor-tabbar__item--active' : ''}`}
          role="tab"
          aria-selected={tab.key === activeKey}
          onClick={() => handleTab(tab)}
        >
          <Text className="doctor-tabbar__icon">{tab.key === activeKey ? tab.activeIcon : tab.icon}</Text>
          <Text className="doctor-tabbar__label">{tab.label}</Text>
        </View>
      ))}
    </View>
  );
}
