11import { warning } from 'rc-util' ;
22import * as React from 'react' ;
3- import { toArray } from '../../utils/miscUtil' ;
43import { fillLocale } from '../../hooks/useLocale' ;
54import { getTimeConfig } from '../../hooks/useTimeConfig' ;
65import type { FormatType , InternalMode } from '../../interface' ;
6+ import { toArray } from '../../utils/miscUtil' ;
77import type { RangePickerProps } from '../RangePicker' ;
88import { fillClearIcon } from '../Selector/hooks/useClearIcon' ;
99import useDisabledBoundary from './useDisabledBoundary' ;
@@ -32,6 +32,7 @@ type PickedProps<DateType extends object = any> = Pick<
3232 | 'disabledDate'
3333 | 'minDate'
3434 | 'maxDate'
35+ | 'defaultOpenValue'
3536> & {
3637 multiple ?: boolean ;
3738 // RangePicker showTime definition is different with Picker
@@ -48,8 +49,16 @@ type GetGeneric<T> = T extends PickedProps<infer U> ? U : never;
4849
4950type ToArrayType < T , DateType > = T extends any [ ] ? T : DateType [ ] ;
5051
51- function useList < T > ( value : T | T [ ] ) {
52- const values = React . useMemo ( ( ) => ( value ? toArray ( value ) : value ) , [ value ] ) ;
52+ function useList < T > ( value : T | T [ ] , fillMode = false ) {
53+ const values = React . useMemo ( ( ) => {
54+ const list = value ? toArray ( value ) : value ;
55+
56+ if ( fillMode && list ) {
57+ list [ 1 ] = list [ 1 ] || list [ 0 ] ;
58+ }
59+
60+ return list ;
61+ } , [ value , fillMode ] ) ;
5362 return values ;
5463}
5564
@@ -105,25 +114,32 @@ export default function useFilledProps<
105114 defaultValue,
106115 pickerValue,
107116 defaultPickerValue,
117+ defaultOpenValue,
108118 } = props ;
109119
110120 const values = useList ( value ) ;
111121 const defaultValues = useList ( defaultValue ) ;
122+ const defaultOpenValues = useList ( defaultOpenValue , true ) ;
112123 const pickerValues = useList ( pickerValue ) ;
113- const defaultPickerValues = useList ( defaultPickerValue ) ;
124+ const defaultPickerValues = useList ( defaultPickerValue ) || defaultOpenValues ;
114125
115126 const mergedLocale = fillLocale ( locale ) ;
116127 const mergedShowTime = getTimeConfig ( props ) ;
117128
118129 // ======================= Warning ========================
119- if (
120- process . env . NODE_ENV !== 'production' &&
121- picker === 'time' &&
122- [ 'disabledHours' , 'disabledMinutes' , 'disabledSeconds' ] . some ( ( key ) => ( props as any ) [ key ] )
123- ) {
130+ if ( process . env . NODE_ENV !== 'production' && picker === 'time' ) {
131+ if (
132+ [ 'disabledHours' , 'disabledMinutes' , 'disabledSeconds' ] . some ( ( key ) => ( props as any ) [ key ] )
133+ ) {
134+ warning (
135+ false ,
136+ `'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.` ,
137+ ) ;
138+ }
139+
124140 warning (
125- false ,
126- `'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime ' instead.` ,
141+ ! defaultOpenValue ,
142+ `'defaultOpenValue' is deprecated which merged into 'defaultPickerValue ' instead.` ,
127143 ) ;
128144 }
129145
0 commit comments