UNPKG

@alifd/next

Version:

A configurable component library for web built on React.

40 lines (39 loc) 1.89 kB
import React, { Component, type KeyboardEvent, type MouseEvent } from 'react'; import PropTypes from 'prop-types'; import { type ClassPropsWithDefault } from '../../util'; import type { ChildItemPropsInMenu, ItemProps } from '../types'; export type ItemWithDefaultsProps = ClassPropsWithDefault<ItemProps, typeof SelectableItem.defaultProps>; export type ItemInMenuProps = ChildItemPropsInMenu<ItemWithDefaultsProps>; export default class SelectableItem extends Component<ItemProps> { static menuChildType: string; static propTypes: { _key: PropTypes.Requireable<string>; root: PropTypes.Requireable<object>; selected: PropTypes.Requireable<boolean>; onSelect: PropTypes.Requireable<(...args: any[]) => any>; inlineIndent: PropTypes.Requireable<number>; disabled: PropTypes.Requireable<boolean>; helper: PropTypes.Requireable<PropTypes.ReactNodeLike>; children: PropTypes.Requireable<PropTypes.ReactNodeLike>; className: PropTypes.Requireable<string>; onKeyDown: PropTypes.Requireable<(...args: any[]) => any>; onClick: PropTypes.Requireable<(...args: any[]) => any>; needIndent: PropTypes.Requireable<boolean>; hasSelectedIcon: PropTypes.Requireable<boolean>; isSelectIconRight: PropTypes.Requireable<boolean>; icons: PropTypes.Requireable<object>; }; static defaultProps: { disabled: boolean; needIndent: boolean; icons: {}; }; readonly props: ItemWithDefaultsProps; constructor(props: ItemProps); getSelected(): boolean; handleSelect(e: MouseEvent | KeyboardEvent): void; handleKeyDown(e: KeyboardEvent): void; handleClick(e: MouseEvent): void; renderSelectedIcon(selected: boolean): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null; render(): React.JSX.Element; }