import BaseComponent, { BaseProps } from '../_base/baseComponent'; import React from 'react'; import PropTypes from 'prop-types'; import ItemFoundation, { ItemAdapter, ItemProps, ItemKey, SelectedItemProps } from '@douyinfe/semi-foundation/lib/cjs/navigation/itemFoundation'; import { NavContextType } from './nav-context'; interface NavItemProps extends ItemProps, Omit { disabled?: boolean; forwardRef?: (ele: HTMLLIElement) => void; icon?: React.ReactNode; itemKey?: ItemKey; level?: number; link?: string; linkOptions?: React.AnchorHTMLAttributes; tabIndex?: number; text?: React.ReactNode; tooltipHideDelay?: number; tooltipShowDelay?: number; onClick?(clickItems: SelectedData): void; onMouseEnter?: React.MouseEventHandler; onMouseLeave?: React.MouseEventHandler; } interface SelectedData extends SelectedItemProps { text?: React.ReactNode; } interface NavItemState { tooltipShow: boolean; } export type { NavItemProps, ItemKey, NavItemState, SelectedData }; export default class NavItem extends BaseComponent { static contextType: React.Context; static propTypes: { text: PropTypes.Requireable>; itemKey: PropTypes.Requireable>; onClick: PropTypes.Requireable<(...args: any[]) => any>; onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>; onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>; icon: PropTypes.Requireable>; className: PropTypes.Requireable; toggleIcon: PropTypes.Requireable; style: PropTypes.Requireable; forwardRef: PropTypes.Requireable<(...args: any[]) => any>; indent: PropTypes.Requireable>; isCollapsed: PropTypes.Requireable; isSubNav: PropTypes.Requireable; link: PropTypes.Requireable; linkOptions: PropTypes.Requireable; disabled: PropTypes.Requireable; tabIndex: PropTypes.Requireable; }; static defaultProps: { isSubNav: boolean; indent: boolean; forwardRef: (...args: any[]) => void; isCollapsed: boolean; onClick: (...args: any[]) => void; onMouseEnter: (...args: any[]) => void; onMouseLeave: (...args: any[]) => void; disabled: boolean; tabIndex: number; }; foundation: ItemFoundation; context: NavContextType; constructor(props: NavItemProps); _invokeContextFunc(funcName: string, ...args: any[]): any; get adapter(): ItemAdapter; renderIcon(icon: React.ReactNode, pos: string, isToggleIcon?: boolean, key?: number | string): React.JSX.Element; setItemRef: (ref: HTMLLIElement) => void; wrapTooltip: (node: React.ReactNode) => React.JSX.Element; handleClick: (e: React.MouseEvent) => void; handleKeyPress: (e: React.KeyboardEvent) => void; render(): React.ReactNode; }