@hi-ui/cascader 4.4.0 → 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,15 @@
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
+
3
13
  ## 4.4.0
4
14
 
5
15
  ### Minor Changes
@@ -90,6 +90,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
90
90
  customRender = props.customRender,
91
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"]);
92
92
  var i18n = core.useLocaleContext();
93
+ var pickerInnerRef = React.useRef(null);
93
94
  var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
94
95
  var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
95
96
  visible: visible,
@@ -220,6 +221,13 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
220
221
  return flattedData;
221
222
  }, [selectedItem, flattedData]);
222
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]);
223
231
  return /*#__PURE__*/React__default["default"].createElement(context.CascaderProvider, {
224
232
  value: Object.assign(Object.assign({}, context$1), {
225
233
  expandTrigger: expandTrigger,
@@ -229,6 +237,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
229
237
  })
230
238
  }, /*#__PURE__*/React__default["default"].createElement(picker.Picker, Object.assign({
231
239
  ref: ref,
240
+ innerRef: pickerInnerRef,
232
241
  className: cls,
233
242
  overlayClassName: classname.cx(prefixCls + "__popper", overlayClassName)
234
243
  }, rootProps, {
@@ -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';
@@ -77,6 +77,7 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
77
77
  customRender = props.customRender,
78
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"]);
79
79
  var i18n = useLocaleContext();
80
+ var pickerInnerRef = useRef(null);
80
81
  var placeholder = isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
81
82
  var _useUncontrolledToggl = useUncontrolledToggle({
82
83
  visible: visible,
@@ -207,6 +208,13 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
207
208
  return flattedData;
208
209
  }, [selectedItem, flattedData]);
209
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]);
210
218
  return /*#__PURE__*/React.createElement(CascaderProvider, {
211
219
  value: Object.assign(Object.assign({}, context), {
212
220
  expandTrigger: expandTrigger,
@@ -216,6 +224,7 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
216
224
  })
217
225
  }, /*#__PURE__*/React.createElement(Picker, Object.assign({
218
226
  ref: ref,
227
+ innerRef: pickerInnerRef,
219
228
  className: cls,
220
229
  overlayClassName: cx(prefixCls + "__popper", overlayClassName)
221
230
  }, rootProps, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/cascader",
3
- "version": "4.4.0",
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>",
@@ -50,8 +50,8 @@
50
50
  "@hi-ui/highlighter": "^4.1.2",
51
51
  "@hi-ui/icons": "^4.0.19",
52
52
  "@hi-ui/input": "^4.4.0",
53
- "@hi-ui/picker": "^4.1.6",
54
- "@hi-ui/popper": "^4.1.5",
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",