@ucloud-fe/react-components 1.4.2 → 1.4.5

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.
@@ -7,5 +7,5 @@ declare type TProps<D> = {
7
7
  interface DisplayToFormatAndTimeMode<D> {
8
8
  (display?: D): [string[]] | [string[], string[]];
9
9
  }
10
- declare const usePicker: <D>(props: TProps<D>, displayToFormatAndTimeMode: DisplayToFormatAndTimeMode<D>, mode: 'date' | 'month') => any[];
10
+ declare const usePicker: <D>(props: TProps<D>, displayToFormatAndTimeMode: DisplayToFormatAndTimeMode<D>, mode: 'date' | 'month', onClear?: (() => void) | undefined) => any[];
11
11
  export default usePicker;
@@ -106,7 +106,7 @@ var align = {
106
106
  targetOffset: [0, 0]
107
107
  };
108
108
 
109
- var usePicker = function usePicker(props, displayToFormatAndTimeMode, mode) {
109
+ var usePicker = function usePicker(props, displayToFormatAndTimeMode, mode, onClear) {
110
110
  var _this2 = this;
111
111
 
112
112
  (0, _newArrowCheck2.default)(this, _this);
@@ -259,6 +259,10 @@ var usePicker = function usePicker(props, displayToFormatAndTimeMode, mode) {
259
259
  setInputValue('');
260
260
  setCalValue(null);
261
261
  }.bind(this), []);
262
+ var hide = (0, _react.useCallback)(function () {
263
+ (0, _newArrowCheck2.default)(this, _this2);
264
+ setVisible(false);
265
+ }.bind(this), []);
262
266
  var handleConfirm = (0, _react.useCallback)(function (v) {
263
267
  (0, _newArrowCheck2.default)(this, _this2);
264
268
  var currentValue = v !== undefined ? v : calValue;
@@ -273,18 +277,15 @@ var usePicker = function usePicker(props, displayToFormatAndTimeMode, mode) {
273
277
  setVisible(false);
274
278
  }.bind(this), [calValue, nullable, onChange, rules, value]);
275
279
  var handleInputClear = (0, _react.useCallback)(function () {
276
- var _this3 = this;
277
-
278
280
  (0, _newArrowCheck2.default)(this, _this2);
279
- setTimeout(function () {
280
- (0, _newArrowCheck2.default)(this, _this3);
281
- handleInputChange({
282
- target: {
283
- value: ''
284
- }
285
- });
286
- }.bind(this), 0);
287
- }.bind(this), [handleInputChange]);
281
+ clear(); // 不走 onChange,区分两种操作
282
+
283
+ if (onClear) {
284
+ onClear();
285
+ } else {
286
+ handleConfirm(null);
287
+ }
288
+ }.bind(this), [clear, handleConfirm, onClear]);
288
289
  var handleCalendarChange = (0, _react.useCallback)(function (v) {
289
290
  (0, _newArrowCheck2.default)(this, _this2);
290
291
  v = (0, _utils.getValidDate)(v, rules);
@@ -298,12 +299,12 @@ var usePicker = function usePicker(props, displayToFormatAndTimeMode, mode) {
298
299
  }
299
300
  }.bind(this), [clickConfirm, format, onChange, rules]);
300
301
  var handleInputFocus = (0, _react.useCallback)(function () {
301
- var _this4 = this;
302
+ var _this3 = this;
302
303
 
303
304
  (0, _newArrowCheck2.default)(this, _this2);
304
305
  setCalValue(value == null ? null : value);
305
306
  setCalCurrentValue(function (currentValue) {
306
- (0, _newArrowCheck2.default)(this, _this4);
307
+ (0, _newArrowCheck2.default)(this, _this3);
307
308
  return getValidCurrentDate(value, d, currentValue);
308
309
  }.bind(this));
309
310
  setUseInputValue(true);
@@ -349,7 +350,10 @@ var usePicker = function usePicker(props, displayToFormatAndTimeMode, mode) {
349
350
  size: size,
350
351
  status: status,
351
352
  placeholder: placeholder === undefined ? locale.placeholder : placeholder,
352
- clearable: nullable,
353
+ clearable: nullable ? {
354
+ autoFocus: false,
355
+ callOnChange: false
356
+ } : false,
353
357
  onClear: handleInputClear
354
358
  };
355
359
 
@@ -401,7 +405,8 @@ var usePicker = function usePicker(props, displayToFormatAndTimeMode, mode) {
401
405
  error: typeof error === 'string' ? error : null,
402
406
  active: visible
403
407
  }, {
404
- clear: clear
408
+ clear: clear,
409
+ hide: hide
405
410
  }];
406
411
  }.bind(void 0);
407
412
 
@@ -2,15 +2,17 @@ import { ReactNode, MutableRefObject } from 'react';
2
2
  import { DatePickerProps } from './DatePicker';
3
3
  export declare type RangeActionRef = {
4
4
  clear: () => void;
5
+ hide: () => void;
5
6
  };
6
7
  export declare type RangePickerRef = {
7
8
  focus: () => void;
8
9
  clear: () => void;
9
10
  } | undefined;
10
- declare const useRangePicker: ({ prefix, type, suffix, actionRef, ...pickProps }: DatePickerProps & {
11
+ declare const useRangePicker: ({ prefix, type, suffix, actionRef, onClear, ...pickProps }: DatePickerProps & {
11
12
  prefix?: boolean | undefined;
12
13
  type?: "date" | "month" | undefined;
13
14
  suffix?: ReactNode;
14
15
  actionRef: MutableRefObject<RangeActionRef | undefined>;
16
+ onClear?: (() => void) | undefined;
15
17
  }) => any[];
16
18
  export default useRangePicker;
@@ -29,7 +29,7 @@ var _Month = require("./Month");
29
29
 
30
30
  var _usePicker3 = _interopRequireDefault(require("./usePicker"));
31
31
 
32
- var _excluded = ["prefix", "type", "suffix", "actionRef"];
32
+ var _excluded = ["prefix", "type", "suffix", "actionRef", "onClear"];
33
33
 
34
34
  var _this = void 0;
35
35
 
@@ -57,10 +57,11 @@ var useRangePicker = function useRangePicker(_ref) {
57
57
  type = _ref$type === void 0 ? 'date' : _ref$type,
58
58
  suffix = _ref.suffix,
59
59
  actionRef = _ref.actionRef,
60
+ onClear = _ref.onClear,
60
61
  pickProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
61
62
  var isMonth = type === 'month';
62
63
 
63
- var _usePicker = (0, _usePicker3.default)(_objectSpread({}, pickProps), isMonth ? _Month.displayToFormatAndTimeMode : _DatePicker.displayToFormatAndTimeMode, type),
64
+ var _usePicker = (0, _usePicker3.default)(_objectSpread({}, pickProps), isMonth ? _Month.displayToFormatAndTimeMode : _DatePicker.displayToFormatAndTimeMode, type, onClear),
64
65
  _usePicker2 = (0, _slicedToArray2.default)(_usePicker, 9),
65
66
  inputProps = _usePicker2[0],
66
67
  popoverProps = _usePicker2[2],
@@ -75,9 +76,10 @@ var useRangePicker = function useRangePicker(_ref) {
75
76
  (0, _react.useImperativeHandle)(actionRef, function () {
76
77
  (0, _newArrowCheck2.default)(this, _this2);
77
78
  return {
78
- clear: actions.clear
79
+ clear: actions.clear,
80
+ hide: actions.hide
79
81
  };
80
- }.bind(this), [actions.clear]);
82
+ }.bind(this), [actions.clear, actions.hide]);
81
83
  return [// inputProps
82
84
  _objectSpread(_objectSpread({}, inputProps), {}, {
83
85
  customStyle: inputCustomStyle,
@@ -11,7 +11,10 @@ export interface DefinedInputProps {
11
11
  /** 后缀 */
12
12
  suffix?: ReactNode;
13
13
  /** 是否可清空 */
14
- clearable?: boolean;
14
+ clearable?: boolean | {
15
+ autoFocus?: boolean;
16
+ callOnChange?: boolean;
17
+ };
15
18
  /** 尺寸 */
16
19
  size?: Size;
17
20
  /** 状态 */
@@ -124,11 +124,17 @@ var Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
124
124
  e.target = input;
125
125
  e.currentTarget = input;
126
126
  var cacheV = input.value;
127
- input.value = '';
128
- onChange(e);
129
- input.value = cacheV;
130
- input.focus();
131
- }.bind(this), [disabled, onChange, onClear]);
127
+
128
+ if ((clearable === null || clearable === void 0 ? void 0 : clearable.callOnChange) !== false) {
129
+ input.value = '';
130
+ onChange(e);
131
+ input.value = cacheV;
132
+ }
133
+
134
+ if ((clearable === null || clearable === void 0 ? void 0 : clearable.autoFocus) !== false) {
135
+ input.focus();
136
+ }
137
+ }.bind(this), [clearable, disabled, onChange, onClear]);
132
138
  var handleWrapMouseDown = (0, _react.useCallback)(function (e) {
133
139
  var _inputRef$current;
134
140