@douyinfe/semi-ui
Version:
A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.
64 lines (63 loc) • 3.18 kB
TypeScript
import React, { MouseEvent, ReactElement, ReactNode, RefCallback, RefObject } from 'react';
import PropTypes from 'prop-types';
import TabsFoundation, { TabsAdapter } from '@douyinfe/semi-foundation/lib/es/tabs/foundation';
import BaseComponent from '../_base/baseComponent';
import '@douyinfe/semi-foundation/lib/es/tabs/tabs.css';
import TabPane from './TabPane';
import { PlainTab, TabsProps } from './interface';
export * from './interface';
export interface TabsState {
activeKey: string;
panes: Array<PlainTab>;
prevActiveKey: string | null;
forceDisableMotion: boolean;
}
declare class Tabs extends BaseComponent<TabsProps, TabsState> {
static TabPane: typeof TabPane;
static TabItem: React.ForwardRefExoticComponent<import("./TabItem").TabItemProps & React.RefAttributes<HTMLDivElement>>;
static propTypes: {
activeKey: PropTypes.Requireable<string>;
className: PropTypes.Requireable<string>;
collapsible: PropTypes.Requireable<boolean>;
contentStyle: PropTypes.Requireable<object>;
defaultActiveKey: PropTypes.Requireable<string>;
keepDOM: PropTypes.Requireable<boolean>;
lazyRender: PropTypes.Requireable<boolean>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onTabClick: PropTypes.Requireable<(...args: any[]) => any>;
renderTabBar: PropTypes.Requireable<(...args: any[]) => any>;
showRestInDropdown: PropTypes.Requireable<boolean>;
size: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
tabBarClassName: PropTypes.Requireable<string>;
tabBarExtraContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
tabBarStyle: PropTypes.Requireable<object>;
tabList: PropTypes.Requireable<any[]>;
tabPaneMotion: PropTypes.Requireable<boolean>;
tabPosition: PropTypes.Requireable<string>;
type: PropTypes.Requireable<string>;
onTabClose: PropTypes.Requireable<(...args: any[]) => any>;
preventScroll: PropTypes.Requireable<boolean>;
more: PropTypes.Requireable<NonNullable<number | object>>;
arrowPosition: PropTypes.Requireable<string>;
renderArrow: PropTypes.Requireable<(...args: any[]) => any>;
dropdownProps: PropTypes.Requireable<object>;
};
static __SemiComponentName__: string;
static defaultProps: TabsProps;
contentRef: RefObject<HTMLDivElement>;
contentHeight: string;
foundation: TabsFoundation;
constructor(props: TabsProps);
get adapter(): TabsAdapter<TabsProps, TabsState>;
static getDerivedStateFromProps(props: TabsProps, state: TabsState): Partial<TabsState>;
componentDidUpdate(prevProps: TabsProps, prevState: TabsState): void;
setContentRef: RefCallback<HTMLDivElement>;
getPanes: () => PlainTab[];
onTabClick: (activeKey: string, event: MouseEvent<HTMLDivElement>) => void;
rePosChildren: (children: ReactElement[], activeKey: string) => ReactElement[];
getActiveItem: () => ReactNode | ReactNode[];
deleteTabItem: (tabKey: string, event: MouseEvent<HTMLDivElement>) => void;
render(): ReactNode;
}
export default Tabs;