import * as React from 'react'; import classNames from 'classnames'; import { isLeaf, toPathKey } from '../utils/commonUtil'; import CascaderContext from '../context'; import Checkbox from './Checkbox'; import type { DefaultOptionType, SingleValueType } from '../Cascader'; import { SEARCH_MARK } from '../hooks/useSearchOptions'; export interface ColumnProps { prefixCls: string; multiple?: boolean; options: DefaultOptionType[]; /** Current Column opened item key */ activeValue?: React.Key; /** The value path before current column */ prevValuePath: React.Key[]; onToggleOpen: (open: boolean) => void; onSelect: (valuePath: SingleValueType, leaf: boolean) => void; onActive: (valuePath: SingleValueType) => void; checkedSet: Set; halfCheckedSet: Set; loadingKeys: React.Key[]; isSelectable: (option: DefaultOptionType) => boolean; } export default function Column({ prefixCls, multiple, options, activeValue, prevValuePath, onToggleOpen, onSelect, onActive, checkedSet, halfCheckedSet, loadingKeys, isSelectable, }: ColumnProps) { const menuPrefixCls = `${prefixCls}-menu`; const menuItemPrefixCls = `${prefixCls}-menu-item`; const { fieldNames, changeOnSelect, expandTrigger, expandIcon, loadingIcon, dropdownMenuColumnStyle, } = React.useContext(CascaderContext); const hoverOpen = expandTrigger === 'hover'; // ============================ Render ============================ return ( ); }