zent
Version:
一套前端设计语言和基于React的实现
45 lines (44 loc) • 1.78 kB
TypeScript
import { Component } from 'react';
import { IInnerTab, ITabsNavProps } from '../../types';
interface ITabsItem {
id: string | number;
width: number;
accumWidth: number;
}
interface ITabsInfo {
list: ITabsItem[];
tabsTotalWidth: number;
}
interface IOperationTabsProps<Id> extends Pick<ITabsNavProps<Id>, 'tabDataList' | 'onChange' | 'overflowMode' | 'onAdd' | 'activeId'> {
tabs: React.ReactNode[];
}
declare abstract class OperationTabs<Id extends string | number> extends Component<IOperationTabsProps<Id>> {
tabsWrapperRef: import("react").RefObject<HTMLDivElement>;
tabsMainRef: import("react").RefObject<HTMLDivElement>;
static defaultProps: {
overflowMode: string;
};
state: {
startIndex: number;
endIndex: number;
translateX: number;
};
get tabsWrapperWidth(): number;
get isControlled(): boolean;
getTabsInfo(): ITabsInfo;
getTargetIndex: (translateX: number, tabsInfo: ITabsInfo, isEnd?: boolean) => number;
getHiddenTabs: (tabDataList: Array<IInnerTab<Id>>, startIndex: number, endIndex: number) => any[];
onStartChange: (startIndex: number, tabsInfo: ITabsInfo) => void;
onEndChange: (endIndex: number, tabsInfo: ITabsInfo) => void;
handlePageScroll: (tab: IInnerTab<Id>) => void;
onAnchorPageChange: (tab: IInnerTab<Id>) => void;
onSlidePageChange: (isPrev: boolean, disabled?: boolean) => void;
renderSlideOperations(): JSX.Element;
renderAnchorOperations(tabs: Array<IInnerTab<Id>>): JSX.Element;
componentDidMount(): void;
onResize: (() => void) & import("../../../utils/types").ICancelable;
componentDidUpdate: (prevProps: any) => void;
handleAddClick: () => void;
render(): JSX.Element;
}
export default OperationTabs;