jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
44 lines (43 loc) • 1.56 kB
TypeScript
import React from 'react';
import type { NavDropInfo, NavLink, NavOverflow, NavigationProps } from '../types';
interface NavigationState {
error?: string;
dropIndicator?: {
top: number;
left: number;
width: number;
height?: number;
opacity?: number;
};
}
export default class Navigation extends React.Component<NavigationProps, NavigationState> {
static defaultProps: Pick<NavigationProps, 'indentSize'>;
dragNode: {
node: HTMLElement;
link: NavLink | null;
} | null;
dropInfo: NavDropInfo | null;
startPoint: {
y: number;
x: number;
};
state: NavigationState;
componentDidMount(): void;
componentDidUpdate(prevProps: Readonly<NavigationProps>, prevState: Readonly<NavigationState>, snapshot?: any): void;
/**
* 初始加载当前激活的link的deferApi
*/
fetchActiveLinkDeferApi: () => void;
handleClick: (link: NavLink) => void;
toggleLink: (target: NavLink, forceFold?: boolean) => void;
getDropInfo: (e: DragEvent, id: string, depth: number) => NavDropInfo;
updateDropIndicator(e: DragEvent): void;
handleDragStart(link: NavLink): (e: React.DragEvent) => void;
handleDragOver(e: DragEvent): void;
handleDragEnd(e: DragEvent): void;
makeLinkClassName: (link: NavLink) => string;
renderItem(link: NavLink, index: number, depth?: number, overflow?: boolean): JSX.Element | null;
renderOverflowNavs(overflowConfig: NavOverflow): JSX.Element;
render(): JSX.Element;
}
export {};