1
1
import classNames from 'classnames' ;
2
- import { useEvent , useMergedState , warning } from '@rc-component/util' ;
2
+ import { useEvent , useControlledState , warning } from '@rc-component/util' ;
3
3
import * as React from 'react' ;
4
4
import useLocale from '../hooks/useLocale' ;
5
5
import { fillShowTimeConfig , getTimeProps } from '../hooks/useTimeConfig' ;
@@ -227,10 +227,7 @@ function PickerPanel<DateType extends object = any>(
227
227
const now = generateConfig . getNow ( ) ;
228
228
229
229
// ========================== Mode ==========================
230
- const [ mergedMode , setMergedMode ] = useMergedState < PanelMode > ( picker , {
231
- value : mode ,
232
- postState : ( val ) => val || 'date' ,
233
- } ) ;
230
+ const [ mergedMode , setMergedMode ] = useControlledState < PanelMode > ( picker || 'date' , mode ) ;
234
231
235
232
const internalMode : InternalMode =
236
233
mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode ;
@@ -241,9 +238,7 @@ function PickerPanel<DateType extends object = any>(
241
238
// ========================= Value ==========================
242
239
// >>> Real value
243
240
// Interactive with `onChange` event which only trigger when the `mode` is `picker`
244
- const [ innerValue , setMergedValue ] = useMergedState ( defaultValue , {
245
- value,
246
- } ) ;
241
+ const [ innerValue , setMergedValue ] = useControlledState ( defaultValue , value ) ;
247
242
248
243
const mergedValue = React . useMemo ( ( ) => {
249
244
// Clean up `[null]`
@@ -282,11 +277,9 @@ function PickerPanel<DateType extends object = any>(
282
277
283
278
// >>> PickerValue
284
279
// PickerValue is used to control the current displaying panel
285
- const [ mergedPickerValue , setInternalPickerValue ] = useMergedState (
280
+ const [ mergedPickerValue , setInternalPickerValue ] = useControlledState (
286
281
defaultPickerValue || mergedValue [ 0 ] || now ,
287
- {
288
- value : pickerValue ,
289
- } ,
282
+ pickerValue ,
290
283
) ;
291
284
292
285
React . useEffect ( ( ) => {
0 commit comments