PermissionTabs.tsx 945 Bytes
// REQ-USR-001: 权限页签条(权限组 active 承载权限列表 + 5 占位查看权限页签 disabled,D9)
import type { ReactNode } from 'react';
import { Tabs } from 'antd';
import { TAB_PERM_GROUP, PLACEHOLDER_TABS } from './constants';
import styles from './UserDetail.module.css';

export interface PermissionTabsProps {
  activeKey?: string;
  onChange?(key: string): void;
  children: ReactNode;
}

const GROUP_KEY = 'group';

export default function PermissionTabs({ activeKey, onChange, children }: PermissionTabsProps) {
  const items = [
    { key: GROUP_KEY, label: TAB_PERM_GROUP, children },
    ...PLACEHOLDER_TABS.map((label, idx) => ({
      key: 'placeholder-' + idx,
      label,
      disabled: true,
      children: null,
    })),
  ];

  return (
    <Tabs
      className={styles.permTabs}
      defaultActiveKey={GROUP_KEY}
      activeKey={activeKey}
      onChange={onChange}
      items={items}
    />
  );
}