@hi-ui/cascader 4.1.6 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/lib/cjs/Cascader.js +8 -3
- package/lib/esm/Cascader.js +8 -3
- package/lib/types/context.d.ts +6 -2
- package/lib/types/use-cascader.d.ts +12 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# @hi-ui/cascader
|
2
2
|
|
3
|
+
## 4.2.0
|
4
|
+
|
5
|
+
### Minor Changes
|
6
|
+
|
7
|
+
- [#2805](https://github.com/XiaoMi/hiui/pull/2805) [`9146d5ef2`](https://github.com/XiaoMi/hiui/commit/9146d5ef207201a6ff8f42fb3ca66e7929335c1a) Thanks [@zyprepare](https://github.com/zyprepare)! - feat: add closeOnSelect api
|
8
|
+
|
3
9
|
## 4.1.6
|
4
10
|
|
5
11
|
### Patch Changes
|
package/lib/cjs/Cascader.js
CHANGED
@@ -81,7 +81,9 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
81
81
|
onClose = props.onClose,
|
82
82
|
renderExtraFooter = props.renderExtraFooter,
|
83
83
|
dropdownColumnRender = props.dropdownColumnRender,
|
84
|
-
|
84
|
+
_props$closeOnSelect = props.closeOnSelect,
|
85
|
+
closeOnSelect = _props$closeOnSelect === void 0 ? true : _props$closeOnSelect,
|
86
|
+
rest = tslib.__rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "onOpen", "onClose", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect"]);
|
85
87
|
var i18n = core.useLocaleContext();
|
86
88
|
var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
|
87
89
|
var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
|
@@ -99,8 +101,11 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
99
101
|
var onSelect = function onSelect(value, item, itemPaths) {
|
100
102
|
onSelectProp === null || onSelectProp === void 0 ? void 0 : onSelectProp(value, item, itemPaths);
|
101
103
|
setSelectedItem(item);
|
102
|
-
//
|
103
|
-
|
104
|
+
// 选中子节点时一定关闭弹窗,或者点击父节点并且 closeOnSelect 为 true 时也可以关闭弹窗
|
105
|
+
if (!item.children || item.children.length > 0 && closeOnSelect) {
|
106
|
+
// 关闭弹窗
|
107
|
+
menuVisibleAction.off();
|
108
|
+
}
|
104
109
|
};
|
105
110
|
// 拦截 titleRender,自定义高亮展示
|
106
111
|
var proxyTitleRender = function proxyTitleRender(node) {
|
package/lib/esm/Cascader.js
CHANGED
@@ -68,7 +68,9 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
68
68
|
onClose = props.onClose,
|
69
69
|
renderExtraFooter = props.renderExtraFooter,
|
70
70
|
dropdownColumnRender = props.dropdownColumnRender,
|
71
|
-
|
71
|
+
_props$closeOnSelect = props.closeOnSelect,
|
72
|
+
closeOnSelect = _props$closeOnSelect === void 0 ? true : _props$closeOnSelect,
|
73
|
+
rest = __rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "onOpen", "onClose", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect"]);
|
72
74
|
var i18n = useLocaleContext();
|
73
75
|
var placeholder = isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
|
74
76
|
var _useUncontrolledToggl = useUncontrolledToggle({
|
@@ -86,8 +88,11 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
86
88
|
var onSelect = function onSelect(value, item, itemPaths) {
|
87
89
|
onSelectProp === null || onSelectProp === void 0 ? void 0 : onSelectProp(value, item, itemPaths);
|
88
90
|
setSelectedItem(item);
|
89
|
-
//
|
90
|
-
|
91
|
+
// 选中子节点时一定关闭弹窗,或者点击父节点并且 closeOnSelect 为 true 时也可以关闭弹窗
|
92
|
+
if (!item.children || item.children.length > 0 && closeOnSelect) {
|
93
|
+
// 关闭弹窗
|
94
|
+
menuVisibleAction.off();
|
95
|
+
}
|
91
96
|
};
|
92
97
|
// 拦截 titleRender,自定义高亮展示
|
93
98
|
var proxyTitleRender = function proxyTitleRender(node) {
|
package/lib/types/context.d.ts
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { CascaderItemEventData, CascaderExpandTriggerEnum } from './types';
|
3
3
|
export declare const CascaderProvider: React.Provider<(Omit<{
|
4
|
-
rootProps: {
|
4
|
+
rootProps: {
|
5
|
+
closeOnSelect?: boolean | undefined;
|
6
|
+
};
|
5
7
|
reset: () => void;
|
6
8
|
flattedData: any;
|
7
9
|
value: React.ReactText[];
|
@@ -20,7 +22,9 @@ export declare const CascaderProvider: React.Provider<(Omit<{
|
|
20
22
|
dropdownColumnRender?: ((menu: React.ReactElement, level: number) => React.ReactNode) | undefined;
|
21
23
|
}) | null>;
|
22
24
|
export declare const useCascaderContext: () => Omit<{
|
23
|
-
rootProps: {
|
25
|
+
rootProps: {
|
26
|
+
closeOnSelect?: boolean | undefined;
|
27
|
+
};
|
24
28
|
reset: () => void;
|
25
29
|
flattedData: any;
|
26
30
|
value: React.ReactText[];
|
@@ -1,7 +1,13 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { FlattedCascaderDataItem, CascaderItemRequiredProps, CascaderItemEventData, CascaderDataItem } from './types';
|
3
3
|
export declare const useCascader: ({ defaultValue, value: valueProp, onChange: onChangeProp, data, disabled, changeOnSelect, flatted, onSelect: onSelectProp, onLoadChildren, cascaderData: cascaderDataProp, setCascaderData: setCascaderDataProp, flattedData: flattedDataProp, fieldNames, ...rest }: UseCascaderProps) => {
|
4
|
-
rootProps: {
|
4
|
+
rootProps: {
|
5
|
+
/**
|
6
|
+
* 是否启用选择即关闭(用于 changeOnSelect 模式下控制父节点点击交互)
|
7
|
+
* @default true
|
8
|
+
*/
|
9
|
+
closeOnSelect?: boolean | undefined;
|
10
|
+
};
|
5
11
|
reset: () => void;
|
6
12
|
flattedData: any;
|
7
13
|
value: React.ReactText[];
|
@@ -49,6 +55,11 @@ export interface UseCascaderProps {
|
|
49
55
|
* 是否启用选择即改变功能
|
50
56
|
*/
|
51
57
|
changeOnSelect?: boolean;
|
58
|
+
/**
|
59
|
+
* 是否启用选择即关闭(用于 changeOnSelect 模式下控制父节点点击交互)
|
60
|
+
* @default true
|
61
|
+
*/
|
62
|
+
closeOnSelect?: boolean;
|
52
63
|
/**
|
53
64
|
* 将选项拍平展示,不支持 `onLoadChildren` 异步加载交互。暂不对外暴露
|
54
65
|
* @private
|