@rc-component/picker 1.4.0 → 1.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.
@@ -15,7 +15,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
15
15
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16
16
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
17
17
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
- import { useEvent, useMergedState } from '@rc-component/util';
18
+ import { useEvent, useControlledState } from '@rc-component/util';
19
19
  import cls from 'classnames';
20
20
  import useLayoutEffect from "@rc-component/util/es/hooks/useLayoutEffect";
21
21
  import omit from "@rc-component/util/es/omit";
@@ -192,12 +192,10 @@ function RangePicker(props, ref) {
192
192
  }, [showTime, activeIndex, calendarValue, activeIndexList]);
193
193
 
194
194
  // ========================= Mode =========================
195
- var _useMergedState = useMergedState([picker, picker], {
196
- value: mode
197
- }),
198
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
199
- modes = _useMergedState2[0],
200
- setModes = _useMergedState2[1];
195
+ var _useControlledState = useControlledState([picker, picker], mode),
196
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
197
+ modes = _useControlledState2[0],
198
+ setModes = _useControlledState2[1];
201
199
  var mergedMode = modes[activeIndex] || picker;
202
200
 
203
201
  /** Extends from `mergedMode` to patch `datetime` mode */
@@ -15,7 +15,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
15
15
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16
16
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
17
17
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
- import { useEvent, useMergedState } from '@rc-component/util';
18
+ import { useEvent, useControlledState } from '@rc-component/util';
19
19
  import cls from 'classnames';
20
20
  import useLayoutEffect from "@rc-component/util/es/hooks/useLayoutEffect";
21
21
  import omit from "@rc-component/util/es/omit";
@@ -163,12 +163,10 @@ function Picker(props, ref) {
163
163
  };
164
164
 
165
165
  // ========================= Mode =========================
166
- var _useMergedState = useMergedState(picker, {
167
- value: mode
168
- }),
169
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
170
- mergedMode = _useMergedState2[0],
171
- setMode = _useMergedState2[1];
166
+ var _useControlledState = useControlledState(picker, mode),
167
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
168
+ mergedMode = _useControlledState2[0],
169
+ setMode = _useControlledState2[1];
172
170
 
173
171
  /** Extends from `mergedMode` to patch `datetime` mode */
174
172
  var internalMode = mergedMode === 'date' && showTime ? 'datetime' : mergedMode;
@@ -4,7 +4,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
4
4
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
5
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- import { useEvent, useMergedState } from '@rc-component/util';
7
+ import { useEvent, useControlledState } from '@rc-component/util';
8
8
  import raf from "@rc-component/util/es/raf";
9
9
  import React from 'react';
10
10
 
@@ -13,12 +13,19 @@ import React from 'react';
13
13
  * But will be `false` for a delay of effect.
14
14
  */
15
15
  export default function useDelayState(value, defaultValue, onChange) {
16
- var _useMergedState = useMergedState(defaultValue, {
17
- value: value
18
- }),
19
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
20
- state = _useMergedState2[0],
21
- setState = _useMergedState2[1];
16
+ var _useControlledState = useControlledState(defaultValue, value),
17
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
18
+ state = _useControlledState2[0],
19
+ setState = _useControlledState2[1];
20
+
21
+ // Need force update to ensure React re-render
22
+ var _React$useState = React.useState({}),
23
+ _React$useState2 = _slicedToArray(_React$useState, 2),
24
+ forceUpdate = _React$useState2[1];
25
+ var triggerUpdate = useEvent(function (nextState) {
26
+ setState(nextState);
27
+ forceUpdate({});
28
+ });
22
29
  var nextValueRef = React.useRef(value);
23
30
 
24
31
  // ============================= Update =============================
@@ -27,7 +34,7 @@ export default function useDelayState(value, defaultValue, onChange) {
27
34
  raf.cancel(rafRef.current);
28
35
  };
29
36
  var doUpdate = useEvent(function () {
30
- setState(nextValueRef.current);
37
+ triggerUpdate(nextValueRef.current);
31
38
  if (onChange && state !== nextValueRef.current) {
32
39
  onChange(nextValueRef.current);
33
40
  }
@@ -4,7 +4,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
4
4
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
5
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- import { useMergedState } from '@rc-component/util';
7
+ import { useControlledState } from '@rc-component/util';
8
8
  import useLayoutEffect from "@rc-component/util/es/hooks/useLayoutEffect";
9
9
  import * as React from 'react';
10
10
  import { fillTime, isSame } from "../../utils/dateUtil";
@@ -53,22 +53,18 @@ export default function useRangePickerValue(generateConfig, locale, calendarValu
53
53
  endPickerValue = _pickerValue[1];
54
54
 
55
55
  // PickerValue state
56
- var _useMergedState = useMergedState(function () {
56
+ var _useControlledState = useControlledState(function () {
57
57
  return getDefaultPickerValue(0);
58
- }, {
59
- value: startPickerValue
60
- }),
61
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
62
- mergedStartPickerValue = _useMergedState2[0],
63
- setStartPickerValue = _useMergedState2[1];
64
- var _useMergedState3 = useMergedState(function () {
58
+ }, startPickerValue),
59
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
60
+ mergedStartPickerValue = _useControlledState2[0],
61
+ setStartPickerValue = _useControlledState2[1];
62
+ var _useControlledState3 = useControlledState(function () {
65
63
  return getDefaultPickerValue(1);
66
- }, {
67
- value: endPickerValue
68
- }),
69
- _useMergedState4 = _slicedToArray(_useMergedState3, 2),
70
- mergedEndPickerValue = _useMergedState4[0],
71
- setEndPickerValue = _useMergedState4[1];
64
+ }, endPickerValue),
65
+ _useControlledState4 = _slicedToArray(_useControlledState3, 2),
66
+ mergedEndPickerValue = _useControlledState4[0],
67
+ setEndPickerValue = _useControlledState4[1];
72
68
 
73
69
  // Current PickerValue
74
70
  var currentPickerValue = React.useMemo(function () {
@@ -15,7 +15,7 @@ rangeValue: boolean,
15
15
  * This should only used in SinglePicker with `multiple` mode.
16
16
  * So when `rangeValue` is `true`, order will be ignored.
17
17
  */
18
- order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType), ignoreDestroy?: boolean) => void, (useControlledValueFirst?: boolean) => ValueType, TriggerCalendarChange<ValueType>, () => void];
18
+ order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType)) => void, (useControlledValueFirst?: boolean) => ValueType, TriggerCalendarChange<ValueType>, () => void];
19
19
  export default function useRangeValue<ValueType extends DateType[], DateType extends object = any>(info: Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'allowEmpty' | 'order' | 'picker'> & ReplacedPickerProps<DateType>, mergedValue: ValueType, setInnerValue: (nextValue: ValueType) => void, getCalendarValue: () => ValueType, triggerCalendarChange: TriggerCalendarChange<ValueType>, disabled: ReplaceListType<Required<ValueType>, boolean>, formatList: FormatType[], focused: boolean, open: boolean, isInvalidateDate: (date: DateType, info?: {
20
20
  from?: DateType;
21
21
  activeIndex: number;
@@ -8,7 +8,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
8
8
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
9
9
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
10
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
- import { useEvent, useMergedState } from '@rc-component/util';
11
+ import { useEvent, useControlledState } from '@rc-component/util';
12
12
  import * as React from 'react';
13
13
  import useSyncState from "../../hooks/useSyncState";
14
14
  import { formatValue, isSame, isSameTimestamp } from "../../utils/dateUtil";
@@ -101,12 +101,10 @@ rangeValue,
101
101
  */
102
102
  order, defaultValue, value, onCalendarChange, onOk) {
103
103
  // This is the root value which will sync with controlled or uncontrolled value
104
- var _useMergedState = useMergedState(defaultValue, {
105
- value: value
106
- }),
107
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
108
- innerValue = _useMergedState2[0],
109
- setInnerValue = _useMergedState2[1];
104
+ var _useControlledState = useControlledState(defaultValue, value),
105
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
106
+ innerValue = _useControlledState2[0],
107
+ setInnerValue = _useControlledState2[1];
110
108
  var mergedValue = innerValue || EMPTY_VALUE;
111
109
 
112
110
  // ========================= Inner Values =========================
@@ -16,7 +16,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
16
16
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
17
17
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
18
  import classNames from 'classnames';
19
- import { useEvent, useMergedState, warning } from '@rc-component/util';
19
+ import { useEvent, useControlledState, warning } from '@rc-component/util';
20
20
  import * as React from 'react';
21
21
  import useLocale from "../hooks/useLocale";
22
22
  import { fillShowTimeConfig, getTimeProps } from "../hooks/useTimeConfig";
@@ -117,15 +117,10 @@ function PickerPanel(props, ref) {
117
117
  var now = generateConfig.getNow();
118
118
 
119
119
  // ========================== Mode ==========================
120
- var _useMergedState = useMergedState(picker, {
121
- value: mode,
122
- postState: function postState(val) {
123
- return val || 'date';
124
- }
125
- }),
126
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
127
- mergedMode = _useMergedState2[0],
128
- setMergedMode = _useMergedState2[1];
120
+ var _useControlledState = useControlledState(picker || 'date', mode),
121
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
122
+ mergedMode = _useControlledState2[0],
123
+ setMergedMode = _useControlledState2[1];
129
124
  var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;
130
125
 
131
126
  // ========================= Toggle =========================
@@ -134,12 +129,10 @@ function PickerPanel(props, ref) {
134
129
  // ========================= Value ==========================
135
130
  // >>> Real value
136
131
  // Interactive with `onChange` event which only trigger when the `mode` is `picker`
137
- var _useMergedState3 = useMergedState(defaultValue, {
138
- value: value
139
- }),
140
- _useMergedState4 = _slicedToArray(_useMergedState3, 2),
141
- innerValue = _useMergedState4[0],
142
- setMergedValue = _useMergedState4[1];
132
+ var _useControlledState3 = useControlledState(defaultValue, value),
133
+ _useControlledState4 = _slicedToArray(_useControlledState3, 2),
134
+ innerValue = _useControlledState4[0],
135
+ setMergedValue = _useControlledState4[1];
143
136
  var mergedValue = React.useMemo(function () {
144
137
  // Clean up `[null]`
145
138
  var values = toArray(innerValue).filter(function (val) {
@@ -171,12 +164,10 @@ function PickerPanel(props, ref) {
171
164
 
172
165
  // >>> PickerValue
173
166
  // PickerValue is used to control the current displaying panel
174
- var _useMergedState5 = useMergedState(defaultPickerValue || mergedValue[0] || now, {
175
- value: pickerValue
176
- }),
177
- _useMergedState6 = _slicedToArray(_useMergedState5, 2),
178
- mergedPickerValue = _useMergedState6[0],
179
- setInternalPickerValue = _useMergedState6[1];
167
+ var _useControlledState5 = useControlledState(defaultPickerValue || mergedValue[0] || now, pickerValue),
168
+ _useControlledState6 = _slicedToArray(_useControlledState5, 2),
169
+ mergedPickerValue = _useControlledState6[0],
170
+ setInternalPickerValue = _useControlledState6[1];
180
171
  React.useEffect(function () {
181
172
  if (mergedValue[0] && !pickerValue) {
182
173
  setInternalPickerValue(mergedValue[0]);
@@ -201,12 +201,10 @@ function RangePicker(props, ref) {
201
201
  }, [showTime, activeIndex, calendarValue, activeIndexList]);
202
202
 
203
203
  // ========================= Mode =========================
204
- var _useMergedState = (0, _util.useMergedState)([picker, picker], {
205
- value: mode
206
- }),
207
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
208
- modes = _useMergedState2[0],
209
- setModes = _useMergedState2[1];
204
+ var _useControlledState = (0, _util.useControlledState)([picker, picker], mode),
205
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
206
+ modes = _useControlledState2[0],
207
+ setModes = _useControlledState2[1];
210
208
  var mergedMode = modes[activeIndex] || picker;
211
209
 
212
210
  /** Extends from `mergedMode` to patch `datetime` mode */
@@ -171,12 +171,10 @@ function Picker(props, ref) {
171
171
  };
172
172
 
173
173
  // ========================= Mode =========================
174
- var _useMergedState = (0, _util.useMergedState)(picker, {
175
- value: mode
176
- }),
177
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
178
- mergedMode = _useMergedState2[0],
179
- setMode = _useMergedState2[1];
174
+ var _useControlledState = (0, _util.useControlledState)(picker, mode),
175
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
176
+ mergedMode = _useControlledState2[0],
177
+ setMode = _useControlledState2[1];
180
178
 
181
179
  /** Extends from `mergedMode` to patch `datetime` mode */
182
180
  var internalMode = mergedMode === 'date' && showTime ? 'datetime' : mergedMode;
@@ -19,12 +19,19 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
19
  * But will be `false` for a delay of effect.
20
20
  */
21
21
  function useDelayState(value, defaultValue, onChange) {
22
- var _useMergedState = (0, _util.useMergedState)(defaultValue, {
23
- value: value
24
- }),
25
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
26
- state = _useMergedState2[0],
27
- setState = _useMergedState2[1];
22
+ var _useControlledState = (0, _util.useControlledState)(defaultValue, value),
23
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
24
+ state = _useControlledState2[0],
25
+ setState = _useControlledState2[1];
26
+
27
+ // Need force update to ensure React re-render
28
+ var _React$useState = _react.default.useState({}),
29
+ _React$useState2 = _slicedToArray(_React$useState, 2),
30
+ forceUpdate = _React$useState2[1];
31
+ var triggerUpdate = (0, _util.useEvent)(function (nextState) {
32
+ setState(nextState);
33
+ forceUpdate({});
34
+ });
28
35
  var nextValueRef = _react.default.useRef(value);
29
36
 
30
37
  // ============================= Update =============================
@@ -33,7 +40,7 @@ function useDelayState(value, defaultValue, onChange) {
33
40
  _raf.default.cancel(rafRef.current);
34
41
  };
35
42
  var doUpdate = (0, _util.useEvent)(function () {
36
- setState(nextValueRef.current);
43
+ triggerUpdate(nextValueRef.current);
37
44
  if (onChange && state !== nextValueRef.current) {
38
45
  onChange(nextValueRef.current);
39
46
  }
@@ -64,22 +64,18 @@ function useRangePickerValue(generateConfig, locale, calendarValue, modes, open,
64
64
  endPickerValue = _pickerValue[1];
65
65
 
66
66
  // PickerValue state
67
- var _useMergedState = (0, _util.useMergedState)(function () {
67
+ var _useControlledState = (0, _util.useControlledState)(function () {
68
68
  return getDefaultPickerValue(0);
69
- }, {
70
- value: startPickerValue
71
- }),
72
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
73
- mergedStartPickerValue = _useMergedState2[0],
74
- setStartPickerValue = _useMergedState2[1];
75
- var _useMergedState3 = (0, _util.useMergedState)(function () {
69
+ }, startPickerValue),
70
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
71
+ mergedStartPickerValue = _useControlledState2[0],
72
+ setStartPickerValue = _useControlledState2[1];
73
+ var _useControlledState3 = (0, _util.useControlledState)(function () {
76
74
  return getDefaultPickerValue(1);
77
- }, {
78
- value: endPickerValue
79
- }),
80
- _useMergedState4 = _slicedToArray(_useMergedState3, 2),
81
- mergedEndPickerValue = _useMergedState4[0],
82
- setEndPickerValue = _useMergedState4[1];
75
+ }, endPickerValue),
76
+ _useControlledState4 = _slicedToArray(_useControlledState3, 2),
77
+ mergedEndPickerValue = _useControlledState4[0],
78
+ setEndPickerValue = _useControlledState4[1];
83
79
 
84
80
  // Current PickerValue
85
81
  var currentPickerValue = React.useMemo(function () {
@@ -15,7 +15,7 @@ rangeValue: boolean,
15
15
  * This should only used in SinglePicker with `multiple` mode.
16
16
  * So when `rangeValue` is `true`, order will be ignored.
17
17
  */
18
- order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType), ignoreDestroy?: boolean) => void, (useControlledValueFirst?: boolean) => ValueType, TriggerCalendarChange<ValueType>, () => void];
18
+ order: boolean, defaultValue?: ValueType, value?: ValueType, onCalendarChange?: (dates: ValueType, dateStrings: ReplaceListType<Required<ValueType>, string>, info: BaseInfo) => void, onOk?: (dates: ValueType) => void): readonly [ValueType, (updater: ValueType | ((origin: ValueType) => ValueType)) => void, (useControlledValueFirst?: boolean) => ValueType, TriggerCalendarChange<ValueType>, () => void];
19
19
  export default function useRangeValue<ValueType extends DateType[], DateType extends object = any>(info: Pick<RangePickerProps<DateType>, 'generateConfig' | 'locale' | 'allowEmpty' | 'order' | 'picker'> & ReplacedPickerProps<DateType>, mergedValue: ValueType, setInnerValue: (nextValue: ValueType) => void, getCalendarValue: () => ValueType, triggerCalendarChange: TriggerCalendarChange<ValueType>, disabled: ReplaceListType<Required<ValueType>, boolean>, formatList: FormatType[], focused: boolean, open: boolean, isInvalidateDate: (date: DateType, info?: {
20
20
  from?: DateType;
21
21
  activeIndex: number;
@@ -112,12 +112,10 @@ rangeValue,
112
112
  */
113
113
  order, defaultValue, value, onCalendarChange, onOk) {
114
114
  // This is the root value which will sync with controlled or uncontrolled value
115
- var _useMergedState = (0, _util.useMergedState)(defaultValue, {
116
- value: value
117
- }),
118
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
119
- innerValue = _useMergedState2[0],
120
- setInnerValue = _useMergedState2[1];
115
+ var _useControlledState = (0, _util.useControlledState)(defaultValue, value),
116
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
117
+ innerValue = _useControlledState2[0],
118
+ setInnerValue = _useControlledState2[1];
121
119
  var mergedValue = innerValue || EMPTY_VALUE;
122
120
 
123
121
  // ========================= Inner Values =========================
@@ -126,15 +126,10 @@ function PickerPanel(props, ref) {
126
126
  var now = generateConfig.getNow();
127
127
 
128
128
  // ========================== Mode ==========================
129
- var _useMergedState = (0, _util.useMergedState)(picker, {
130
- value: mode,
131
- postState: function postState(val) {
132
- return val || 'date';
133
- }
134
- }),
135
- _useMergedState2 = _slicedToArray(_useMergedState, 2),
136
- mergedMode = _useMergedState2[0],
137
- setMergedMode = _useMergedState2[1];
129
+ var _useControlledState = (0, _util.useControlledState)(picker || 'date', mode),
130
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
131
+ mergedMode = _useControlledState2[0],
132
+ setMergedMode = _useControlledState2[1];
138
133
  var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;
139
134
 
140
135
  // ========================= Toggle =========================
@@ -143,12 +138,10 @@ function PickerPanel(props, ref) {
143
138
  // ========================= Value ==========================
144
139
  // >>> Real value
145
140
  // Interactive with `onChange` event which only trigger when the `mode` is `picker`
146
- var _useMergedState3 = (0, _util.useMergedState)(defaultValue, {
147
- value: value
148
- }),
149
- _useMergedState4 = _slicedToArray(_useMergedState3, 2),
150
- innerValue = _useMergedState4[0],
151
- setMergedValue = _useMergedState4[1];
141
+ var _useControlledState3 = (0, _util.useControlledState)(defaultValue, value),
142
+ _useControlledState4 = _slicedToArray(_useControlledState3, 2),
143
+ innerValue = _useControlledState4[0],
144
+ setMergedValue = _useControlledState4[1];
152
145
  var mergedValue = React.useMemo(function () {
153
146
  // Clean up `[null]`
154
147
  var values = (0, _miscUtil.toArray)(innerValue).filter(function (val) {
@@ -180,12 +173,10 @@ function PickerPanel(props, ref) {
180
173
 
181
174
  // >>> PickerValue
182
175
  // PickerValue is used to control the current displaying panel
183
- var _useMergedState5 = (0, _util.useMergedState)(defaultPickerValue || mergedValue[0] || now, {
184
- value: pickerValue
185
- }),
186
- _useMergedState6 = _slicedToArray(_useMergedState5, 2),
187
- mergedPickerValue = _useMergedState6[0],
188
- setInternalPickerValue = _useMergedState6[1];
176
+ var _useControlledState5 = (0, _util.useControlledState)(defaultPickerValue || mergedValue[0] || now, pickerValue),
177
+ _useControlledState6 = _slicedToArray(_useControlledState5, 2),
178
+ mergedPickerValue = _useControlledState6[0],
179
+ setInternalPickerValue = _useControlledState6[1];
189
180
  React.useEffect(function () {
190
181
  if (mergedValue[0] && !pickerValue) {
191
182
  setInternalPickerValue(mergedValue[0]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rc-component/picker",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "React date & time picker",
5
5
  "keywords": [
6
6
  "react",
@@ -41,7 +41,7 @@
41
41
  "dependencies": {
42
42
  "@rc-component/resize-observer": "^1.0.0",
43
43
  "@rc-component/trigger": "^3.0.0",
44
- "@rc-component/util": "^1.2.1",
44
+ "@rc-component/util": "^1.3.0",
45
45
  "classnames": "^2.2.1",
46
46
  "rc-overflow": "^1.3.2"
47
47
  },