@@ -23,6 +23,7 @@ export interface ColumnProps<OptionType extends DefaultOptionType = DefaultOptio
2323 halfCheckedSet : Set < React . Key > ;
2424 loadingKeys : React . Key [ ] ;
2525 isSelectable : ( option : DefaultOptionType ) => boolean ;
26+ disabled ?: boolean ;
2627}
2728
2829export default function Column < OptionType extends DefaultOptionType = DefaultOptionType > ( {
@@ -38,6 +39,7 @@ export default function Column<OptionType extends DefaultOptionType = DefaultOpt
3839 halfCheckedSet,
3940 loadingKeys,
4041 isSelectable,
42+ disabled : propsDisabled ,
4143} : ColumnProps < OptionType > ) {
4244 const menuPrefixCls = `${ prefixCls } -menu` ;
4345 const menuItemPrefixCls = `${ prefixCls } -menu-item` ;
@@ -54,6 +56,8 @@ export default function Column<OptionType extends DefaultOptionType = DefaultOpt
5456
5557 const hoverOpen = expandTrigger === 'hover' ;
5658
59+ const isOptionDisabled = ( disabled ?: boolean ) => propsDisabled || disabled ;
60+
5761 // ============================ Option ============================
5862 const optionInfoList = React . useMemo (
5963 ( ) =>
@@ -115,7 +119,7 @@ export default function Column<OptionType extends DefaultOptionType = DefaultOpt
115119 } ) => {
116120 // >>>>> Open
117121 const triggerOpenPath = ( ) => {
118- if ( disabled ) {
122+ if ( isOptionDisabled ( disabled ) ) {
119123 return ;
120124 }
121125 const nextValueCells = [ ...fullPath ] ;
@@ -127,7 +131,7 @@ export default function Column<OptionType extends DefaultOptionType = DefaultOpt
127131
128132 // >>>>> Selection
129133 const triggerSelect = ( ) => {
130- if ( isSelectable ( option ) ) {
134+ if ( isSelectable ( option ) && ! isOptionDisabled ( disabled ) ) {
131135 onSelect ( fullPath , isMergedLeaf ) ;
132136 }
133137 } ;
@@ -148,7 +152,7 @@ export default function Column<OptionType extends DefaultOptionType = DefaultOpt
148152 [ `${ menuItemPrefixCls } -expand` ] : ! isMergedLeaf ,
149153 [ `${ menuItemPrefixCls } -active` ] :
150154 activeValue === value || activeValue === fullPathKey ,
151- [ `${ menuItemPrefixCls } -disabled` ] : disabled ,
155+ [ `${ menuItemPrefixCls } -disabled` ] : isOptionDisabled ( disabled ) ,
152156 [ `${ menuItemPrefixCls } -loading` ] : isLoading ,
153157 } ) }
154158 style = { dropdownMenuColumnStyle }
@@ -185,7 +189,7 @@ export default function Column<OptionType extends DefaultOptionType = DefaultOpt
185189 prefixCls = { `${ prefixCls } -checkbox` }
186190 checked = { checked }
187191 halfChecked = { halfChecked }
188- disabled = { disabled || disableCheckbox }
192+ disabled = { isOptionDisabled ( disabled ) || disableCheckbox }
189193 disableCheckbox = { disableCheckbox }
190194 onClick = { ( e : React . MouseEvent < HTMLSpanElement > ) => {
191195 if ( disableCheckbox ) {
0 commit comments