Skip to content

Commit 96fca5b

Browse files
authored
fix(cascader): fix Cascader add filter select the bug (#2674)
1 parent b2b254a commit 96fca5b

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

Diff for: src/cascader/components/Item.tsx

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, { forwardRef, useMemo } from 'react';
22
import classNames from 'classnames';
33
import { ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-react';
44

5+
import isFunction from 'lodash/isFunction';
56
import TLoading from '../../loading';
67
import Checkbox from '../../checkbox';
78

@@ -114,14 +115,19 @@ const Item = forwardRef(
114115
);
115116
};
116117

118+
const isFiltering = useMemo(
119+
() => Boolean(cascaderContext.filterable) || isFunction(cascaderContext.filter),
120+
[cascaderContext.filterable, cascaderContext.filter],
121+
);
122+
117123
return (
118124
<li
119125
ref={ref || setRefCurrent}
120126
className={itemClass}
121127
onClick={(e: React.MouseEvent) => {
122128
e.stopPropagation();
123129
e?.nativeEvent?.stopImmediatePropagation?.();
124-
130+
if (cascaderContext.inputVal && isFiltering) return;
125131
onClick(node);
126132
}}
127133
onMouseEnter={(e: React.MouseEvent) => {

Diff for: src/cascader/core/effect.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,13 @@ export function valueChangeEffect(node: TreeNode, cascaderContext: CascaderConte
110110
* @param cascaderContext
111111
*/
112112
export function closeIconClickEffect(cascaderContext: CascaderContextType) {
113-
const { setVisible, multiple, setExpend, setValue } = cascaderContext;
113+
const { setVisible, multiple, setExpend, setValue, treeStore } = cascaderContext;
114+
115+
const expanded = treeStore.getExpanded();
116+
setTimeout(() => {
117+
treeStore.replaceExpanded(expanded);
118+
treeStore.refreshNodes();
119+
}, 0);
114120

115121
setVisible(false, {});
116122

0 commit comments

Comments
 (0)