@hi-ui/cascader 4.3.2 → 4.4.1

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 CHANGED
@@ -1,5 +1,27 @@
1
1
  # @hi-ui/cascader
2
2
 
3
+ ## 4.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#3196](https://github.com/XiaoMi/hiui/pull/3196) [`80a909d2d`](https://github.com/XiaoMi/hiui/commit/80a909d2dae99d68d71f2ec6f4b210080d032ec0) Thanks [@KEH3](https://github.com/KEH3)! - fix(popper): ref 中增加更新位置方法解决上游组件弹窗被遮挡问题 (#3195)
8
+
9
+ - Updated dependencies [[`80a909d2d`](https://github.com/XiaoMi/hiui/commit/80a909d2dae99d68d71f2ec6f4b210080d032ec0)]:
10
+ - @hi-ui/picker@4.1.8
11
+ - @hi-ui/popper@4.1.7
12
+
13
+ ## 4.4.0
14
+
15
+ ### Minor Changes
16
+
17
+ - [#3172](https://github.com/XiaoMi/hiui/pull/3172) [`a883d8e19`](https://github.com/XiaoMi/hiui/commit/a883d8e197446ef0e7cefcc5cc44d21ed1d0807f) Thanks [@zyprepare](https://github.com/zyprepare)! - feat(mock-input): 增加 onClear 参数 (#3171)
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies [[`7bf0630`](https://github.com/XiaoMi/hiui/commit/7bf063053a73923af41c33370c31371325206276), [`a883d8e19`](https://github.com/XiaoMi/hiui/commit/a883d8e197446ef0e7cefcc5cc44d21ed1d0807f)]:
22
+ - @hi-ui/highlighter@4.1.2
23
+ - @hi-ui/input@4.4.0
24
+
3
25
  ## 4.3.2
4
26
 
5
27
  ### Patch Changes
@@ -82,13 +82,15 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
82
82
  suffix = props.suffix,
83
83
  onOpen = props.onOpen,
84
84
  onClose = props.onClose,
85
+ onClear = props.onClear,
85
86
  renderExtraFooter = props.renderExtraFooter,
86
87
  dropdownColumnRender = props.dropdownColumnRender,
87
88
  _props$closeOnSelect = props.closeOnSelect,
88
89
  closeOnSelect = _props$closeOnSelect === void 0 ? true : _props$closeOnSelect,
89
90
  customRender = props.customRender,
90
- rest = tslib.__rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "keyword", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "prefix", "suffix", "onOpen", "onClose", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect", "customRender"]);
91
+ rest = tslib.__rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "keyword", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "prefix", "suffix", "onOpen", "onClose", "onClear", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect", "customRender"]);
91
92
  var i18n = core.useLocaleContext();
93
+ var pickerInnerRef = React.useRef(null);
92
94
  var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
93
95
  var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
94
96
  visible: visible,
@@ -219,6 +221,13 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
219
221
  return flattedData;
220
222
  }, [selectedItem, flattedData]);
221
223
  var cls = classname.cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed'));
224
+ React.useEffect(function () {
225
+ var _a;
226
+ if (menuVisible) {
227
+ // 数据改变时更新弹窗显示位置,避免弹窗内容被遮挡
228
+ (_a = pickerInnerRef.current) === null || _a === void 0 ? void 0 : _a.update();
229
+ }
230
+ }, [menuVisible, showData]);
222
231
  return /*#__PURE__*/React__default["default"].createElement(context.CascaderProvider, {
223
232
  value: Object.assign(Object.assign({}, context$1), {
224
233
  expandTrigger: expandTrigger,
@@ -228,6 +237,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
228
237
  })
229
238
  }, /*#__PURE__*/React__default["default"].createElement(picker.Picker, Object.assign({
230
239
  ref: ref,
240
+ innerRef: pickerInnerRef,
231
241
  className: cls,
232
242
  overlayClassName: classname.cx(prefixCls + "__popper", overlayClassName)
233
243
  }, rootProps, {
@@ -247,6 +257,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
247
257
  trigger: customRender ? typeof customRender === 'function' ? customRender(selectedItem) : customRender : ( /*#__PURE__*/React__default["default"].createElement(input.MockInput, {
248
258
  size: size,
249
259
  clearable: clearable,
260
+ onClear: onClear,
250
261
  placeholder: placeholder,
251
262
  displayRender: displayRender,
252
263
  prefix: prefix,
@@ -8,7 +8,7 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { __rest } from 'tslib';
11
- import React, { forwardRef, useState, useMemo, useEffect } from 'react';
11
+ import React, { forwardRef, useRef, useState, useMemo, useEffect } from 'react';
12
12
  import { getPrefixCls, cx } from '@hi-ui/classname';
13
13
  import { __DEV__ } from '@hi-ui/env';
14
14
  import { useUncontrolledToggle } from '@hi-ui/use-toggle';
@@ -69,13 +69,15 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
69
69
  suffix = props.suffix,
70
70
  onOpen = props.onOpen,
71
71
  onClose = props.onClose,
72
+ onClear = props.onClear,
72
73
  renderExtraFooter = props.renderExtraFooter,
73
74
  dropdownColumnRender = props.dropdownColumnRender,
74
75
  _props$closeOnSelect = props.closeOnSelect,
75
76
  closeOnSelect = _props$closeOnSelect === void 0 ? true : _props$closeOnSelect,
76
77
  customRender = props.customRender,
77
- rest = __rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "keyword", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "prefix", "suffix", "onOpen", "onClose", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect", "customRender"]);
78
+ rest = __rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "keyword", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "prefix", "suffix", "onOpen", "onClose", "onClear", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect", "customRender"]);
78
79
  var i18n = useLocaleContext();
80
+ var pickerInnerRef = useRef(null);
79
81
  var placeholder = isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
80
82
  var _useUncontrolledToggl = useUncontrolledToggle({
81
83
  visible: visible,
@@ -206,6 +208,13 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
206
208
  return flattedData;
207
209
  }, [selectedItem, flattedData]);
208
210
  var cls = cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed'));
211
+ useEffect(function () {
212
+ var _a;
213
+ if (menuVisible) {
214
+ // 数据改变时更新弹窗显示位置,避免弹窗内容被遮挡
215
+ (_a = pickerInnerRef.current) === null || _a === void 0 ? void 0 : _a.update();
216
+ }
217
+ }, [menuVisible, showData]);
209
218
  return /*#__PURE__*/React.createElement(CascaderProvider, {
210
219
  value: Object.assign(Object.assign({}, context), {
211
220
  expandTrigger: expandTrigger,
@@ -215,6 +224,7 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
215
224
  })
216
225
  }, /*#__PURE__*/React.createElement(Picker, Object.assign({
217
226
  ref: ref,
227
+ innerRef: pickerInnerRef,
218
228
  className: cls,
219
229
  overlayClassName: cx(prefixCls + "__popper", overlayClassName)
220
230
  }, rootProps, {
@@ -234,6 +244,7 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
234
244
  trigger: customRender ? typeof customRender === 'function' ? customRender(selectedItem) : customRender : ( /*#__PURE__*/React.createElement(MockInput, {
235
245
  size: size,
236
246
  clearable: clearable,
247
+ onClear: onClear,
237
248
  placeholder: placeholder,
238
249
  displayRender: displayRender,
239
250
  prefix: prefix,
@@ -89,4 +89,8 @@ export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | '
89
89
  * 自定义触发器
90
90
  */
91
91
  customRender?: React.ReactNode | ((selectedItem: CascaderItemEventData | null) => React.ReactNode);
92
+ /**
93
+ * 点击关闭按钮时触发
94
+ */
95
+ onClear?: () => void;
92
96
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/cascader",
3
- "version": "4.3.2",
3
+ "version": "4.4.1",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",
@@ -47,11 +47,11 @@
47
47
  "@hi-ui/classname": "^4.0.5",
48
48
  "@hi-ui/env": "^4.0.5",
49
49
  "@hi-ui/func-utils": "^4.0.4",
50
- "@hi-ui/highlighter": "^4.0.9",
50
+ "@hi-ui/highlighter": "^4.1.2",
51
51
  "@hi-ui/icons": "^4.0.19",
52
- "@hi-ui/input": "^4.1.1",
53
- "@hi-ui/picker": "^4.1.6",
54
- "@hi-ui/popper": "^4.1.5",
52
+ "@hi-ui/input": "^4.4.0",
53
+ "@hi-ui/picker": "^4.1.8",
54
+ "@hi-ui/popper": "^4.1.7",
55
55
  "@hi-ui/spinner": "^4.0.9",
56
56
  "@hi-ui/tree-utils": "^4.1.4",
57
57
  "@hi-ui/type-assertion": "^4.0.4",