11import classNames from 'classnames' ;
2- import { useEvent , useMergedState , warning } from '@rc-component/util' ;
2+ import { useEvent , useControlledState , warning } from '@rc-component/util' ;
33import * as React from 'react' ;
44import useLocale from '../hooks/useLocale' ;
55import { fillShowTimeConfig , getTimeProps } from '../hooks/useTimeConfig' ;
@@ -227,10 +227,7 @@ function PickerPanel<DateType extends object = any>(
227227 const now = generateConfig . getNow ( ) ;
228228
229229 // ========================== 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 ) ;
234231
235232 const internalMode : InternalMode =
236233 mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode ;
@@ -241,9 +238,7 @@ function PickerPanel<DateType extends object = any>(
241238 // ========================= Value ==========================
242239 // >>> Real value
243240 // 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 ) ;
247242
248243 const mergedValue = React . useMemo ( ( ) => {
249244 // Clean up `[null]`
@@ -282,11 +277,9 @@ function PickerPanel<DateType extends object = any>(
282277
283278 // >>> PickerValue
284279 // PickerValue is used to control the current displaying panel
285- const [ mergedPickerValue , setInternalPickerValue ] = useMergedState (
280+ const [ mergedPickerValue , setInternalPickerValue ] = useControlledState (
286281 defaultPickerValue || mergedValue [ 0 ] || now ,
287- {
288- value : pickerValue ,
289- } ,
282+ pickerValue ,
290283 ) ;
291284
292285 React . useEffect ( ( ) => {
0 commit comments