@hi-ui/input 4.3.0 → 4.4.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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @hi-ui/input
2
2
 
3
+ ## 4.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#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)
8
+
3
9
  ## 4.3.0
4
10
 
5
11
  ### Minor Changes
@@ -20,6 +20,7 @@ var env = require('@hi-ui/env');
20
20
  var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
21
21
  var icons = require('@hi-ui/icons');
22
22
  var typeAssertion = require('@hi-ui/type-assertion');
23
+ var useLatest = require('@hi-ui/use-latest');
23
24
  function _interopDefaultCompat(e) {
24
25
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
25
26
  'default': e
@@ -67,7 +68,8 @@ var MockInput = /*#__PURE__*/React.forwardRef(function (_a, ref) {
67
68
  suffixProp = _a.suffix,
68
69
  _onMouseOver = _a.onMouseOver,
69
70
  _onMouseLeave = _a.onMouseLeave,
70
- rest = tslib.__rest(_a, ["prefixCls", "role", "className", "data", "defaultValue", "value", "onChange", "placeholder", "disabled", "clearable", "focused", "invalid", "readOnly", "size", "appearance", "clearableTrigger", "displayRender", "prefix", "suffix", "onMouseOver", "onMouseLeave"]);
71
+ onClear = _a.onClear,
72
+ rest = tslib.__rest(_a, ["prefixCls", "role", "className", "data", "defaultValue", "value", "onChange", "placeholder", "disabled", "clearable", "focused", "invalid", "readOnly", "size", "appearance", "clearableTrigger", "displayRender", "prefix", "suffix", "onMouseOver", "onMouseLeave", "onClear"]);
71
73
  var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultValue, valueProp, onChange),
72
74
  value = _useUncontrolledState[0],
73
75
  tryChangeValue = _useUncontrolledState[1];
@@ -88,11 +90,13 @@ var MockInput = /*#__PURE__*/React.forwardRef(function (_a, ref) {
88
90
  }
89
91
  return displayItem.title;
90
92
  }, [displayItem, displayRender]);
93
+ var onClearLatest = useLatest.useLatestCallback(onClear);
91
94
  var handleClear = React.useCallback(function (evt) {
92
95
  if (disabled) return;
93
96
  evt.stopPropagation();
94
97
  tryChangeValue(NOOP_VALUE, displayItem);
95
- }, [tryChangeValue, disabled, displayItem]);
98
+ onClearLatest === null || onClearLatest === void 0 ? void 0 : onClearLatest();
99
+ }, [tryChangeValue, disabled, displayItem, onClearLatest]);
96
100
  var _useState = React.useState(false),
97
101
  hover = _useState[0],
98
102
  setHover = _useState[1];
@@ -14,6 +14,7 @@ import { __DEV__ } from '@hi-ui/env';
14
14
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
15
15
  import { CloseCircleFilled } from '@hi-ui/icons';
16
16
  import { isArray } from '@hi-ui/type-assertion';
17
+ import { useLatestCallback } from '@hi-ui/use-latest';
17
18
  var _role = 'mock-input';
18
19
  var _prefix = getPrefixCls(_role);
19
20
  var NOOP_VALUE = '';
@@ -55,7 +56,8 @@ var MockInput = /*#__PURE__*/forwardRef(function (_a, ref) {
55
56
  suffixProp = _a.suffix,
56
57
  _onMouseOver = _a.onMouseOver,
57
58
  _onMouseLeave = _a.onMouseLeave,
58
- rest = __rest(_a, ["prefixCls", "role", "className", "data", "defaultValue", "value", "onChange", "placeholder", "disabled", "clearable", "focused", "invalid", "readOnly", "size", "appearance", "clearableTrigger", "displayRender", "prefix", "suffix", "onMouseOver", "onMouseLeave"]);
59
+ onClear = _a.onClear,
60
+ rest = __rest(_a, ["prefixCls", "role", "className", "data", "defaultValue", "value", "onChange", "placeholder", "disabled", "clearable", "focused", "invalid", "readOnly", "size", "appearance", "clearableTrigger", "displayRender", "prefix", "suffix", "onMouseOver", "onMouseLeave", "onClear"]);
59
61
  var _useUncontrolledState = useUncontrolledState(defaultValue, valueProp, onChange),
60
62
  value = _useUncontrolledState[0],
61
63
  tryChangeValue = _useUncontrolledState[1];
@@ -76,11 +78,13 @@ var MockInput = /*#__PURE__*/forwardRef(function (_a, ref) {
76
78
  }
77
79
  return displayItem.title;
78
80
  }, [displayItem, displayRender]);
81
+ var onClearLatest = useLatestCallback(onClear);
79
82
  var handleClear = useCallback(function (evt) {
80
83
  if (disabled) return;
81
84
  evt.stopPropagation();
82
85
  tryChangeValue(NOOP_VALUE, displayItem);
83
- }, [tryChangeValue, disabled, displayItem]);
86
+ onClearLatest === null || onClearLatest === void 0 ? void 0 : onClearLatest();
87
+ }, [tryChangeValue, disabled, displayItem, onClearLatest]);
84
88
  var _useState = useState(false),
85
89
  hover = _useState[0],
86
90
  setHover = _useState[1];
@@ -3,7 +3,7 @@ import type { HiBaseAppearanceEnum, HiBaseDataItem, HiBaseHTMLFieldProps } from
3
3
  /**
4
4
  * 支持自定义渲染输入框内容,暂时仅供内部 Picker 类组件使用,不对外提供
5
5
  */
6
- export declare const MockInput: React.ForwardRefExoticComponent<Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "disabled" | "readOnly" | "placeholder" | "defaultValue" | "onChange" | "type" | "focused" | "onSelect" | "title" | "size" | "prefix" | "data" | "onClick" | "appearance" | "suffix" | "clearableTrigger" | "clearable" | "displayRender"> & {
6
+ export declare const MockInput: React.ForwardRefExoticComponent<Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "disabled" | "readOnly" | "placeholder" | "defaultValue" | "onChange" | "type" | "focused" | "onSelect" | "title" | "size" | "prefix" | "data" | "onClick" | "appearance" | "suffix" | "clearableTrigger" | "clearable" | "onClear" | "displayRender"> & {
7
7
  prefixCls?: string | undefined;
8
8
  role?: string | undefined;
9
9
  } & {
@@ -27,6 +27,10 @@ export declare const MockInput: React.ForwardRefExoticComponent<Omit<Pick<React.
27
27
  * 清除按钮展示的触发形态
28
28
  */
29
29
  clearableTrigger?: "always" | "hover" | undefined;
30
+ /**
31
+ * 点击关闭按钮时触发
32
+ */
33
+ onClear?: (() => void) | undefined;
30
34
  /**
31
35
  * 是否禁止使用
32
36
  */
@@ -105,6 +109,10 @@ export declare type MockInputProps = HiBaseHTMLFieldProps<'div', {
105
109
  * 清除按钮展示的触发形态
106
110
  */
107
111
  clearableTrigger?: 'always' | 'hover';
112
+ /**
113
+ * 点击关闭按钮时触发
114
+ */
115
+ onClear?: () => void;
108
116
  /**
109
117
  * 是否禁止使用
110
118
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/input",
3
- "version": "4.3.0",
3
+ "version": "4.4.0",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",