import { StyledProps } from "../_type";
export interface TabsProps extends StyledProps {
/**
* 选项卡列表
*/
tabs?: Tab[];
/**
* 是否在切换时销毁未激活的 TabPanel
* @default true
*/
destroyInactiveTabPanel?: boolean;
/**
* 当前选中的选项卡
*/
activeId?: string;
/**
* 当用户激活指定选项卡时回调
*/
onActive?: (tab: Tab, evt: React.SyntheticEvent) => void;
/**
* 默认选中的选项卡。
* 如果已经提供了 `activeId`,此属性会被忽略。
*/
defaultActiveId?: string;
/**
* 在 的子节点中:
*
* - 如果是 ,则只有 `tabId` 和当前 `activeId` 匹配的才会被渲染
* - 如果是其它节点,会直接渲染
*/
children?: React.ReactNode;
/**
* 自定义 TabBar 中项渲染
*
* @default children => {children}
*/
tabBarRender?: (children: JSX.Element, tab: Tab) => JSX.Element;
/**
* 自定义 TabBar 样式
*/
tabBarStyle?: React.CSSProperties;
/**
* 是否开启切换带动画效果
* @default true
*/
animated?: boolean;
/**
* 选项卡书签位置
* @default "top"
*/
placement?: "top" | "left";
/**
* 是否使用 ceiling 样式(搭配 Layout 使用)
* @default
*/
ceiling?: boolean;
/**
* 在选项卡后可选的内容。可以附加跳转按钮、操作按钮等
*/
addon?: React.ReactNode;
/**
* 垂直(`placement = "left"`)时选项卡容器的最大高度
*/
maxHeight?: number;
/**
* 选项卡超出宽度产生滚动时,是否自动滚动至当前选中项
* @default true
* @since 2.7.0
*/
activeTabAutoScrollIntoView?: boolean;
/**
* 禁用tab滚动条。在特殊分辨率或浏览器,当tab个数较少时仍出现tab滚动条,可使用该选项禁用滚动条
* @default false
*/
disableTabScrolling?: boolean;
}
export interface Tab {
/**
* 选项卡标签 ID
*/
id: string;
/**
* 选项卡标签内容
*/
label: React.ReactNode;
/**
* 如果提供了关闭回调处理函数,则选项卡会渲染关闭按钮,点击时调用
*/
onClose?: (tab: Tab, event: React.SyntheticEvent) => void;
/**
* 禁用当前选项卡
* @default false
*/
disabled?: boolean;
/**
* 选项卡标签自定义类名
* @since 2.7.0
*/
className?: string;
/**
* 选项卡标签自定义样式
* @since 2.7.0
*/
style?: React.CSSProperties;
}