@@ -15,6 +15,7 @@ import { toArray } from './utils/miscUtil';
1515import RangeContext from './RangeContext' ;
1616import { isSameDate } from './utils/dateUtil' ;
1717import { getDefaultFormat } from './utils/uiUtil' ;
18+ import { SharedTimeProps } from './panels/TimePanel' ;
1819
1920type RangeValue < DateType > = [ DateType | null , DateType | null ] | null ;
2021
@@ -66,6 +67,7 @@ type OmitPickerProps<Props> = Omit<
6667 | 'placeholder'
6768 | 'disabledTime'
6869 | 'showToday'
70+ | 'showTime'
6971> ;
7072
7173export interface RangePickerBaseProps < DateType >
@@ -74,7 +76,13 @@ export interface RangePickerBaseProps<DateType>
7476
7577export interface RangePickerDateProps < DateType >
7678 extends RangePickerSharedProps < DateType > ,
77- OmitPickerProps < PickerDateProps < DateType > > { }
79+ OmitPickerProps < PickerDateProps < DateType > > {
80+ showTime ?:
81+ | boolean
82+ | ( Omit < SharedTimeProps < DateType > , 'defaultValue' > & {
83+ defaultValue ?: DateType [ ] ;
84+ } ) ;
85+ }
7886
7987export interface RangePickerTimeProps < DateType >
8088 extends RangePickerSharedProps < DateType > ,
@@ -133,6 +141,16 @@ function InternalRangePicker<DateType>(
133141 getDefaultFormat ( format , picker , showTime , use12Hours ) ,
134142 ) ;
135143
144+ const [ startShowTime , endShowTime ] = React . useMemo ( ( ) => {
145+ if ( showTime && typeof showTime === 'object' && showTime . defaultValue ) {
146+ return [
147+ { ...showTime , defaultValue : showTime . defaultValue [ 0 ] } ,
148+ { ...showTime , defaultValue : showTime . defaultValue [ 1 ] } ,
149+ ] ;
150+ }
151+ return [ showTime , showTime ] ;
152+ } , [ showTime ] ) ;
153+
136154 const mergedSelectable = React . useMemo <
137155 [ boolean | undefined , boolean | undefined ]
138156 > ( ( ) => [ selectable && selectable [ 0 ] , selectable && selectable [ 1 ] ] , [
@@ -312,7 +330,7 @@ function InternalRangePicker<DateType>(
312330 value = { value1 }
313331 placeholder = { placeholder && placeholder [ 0 ] }
314332 defaultPickerValue = { defaultPickerValue && defaultPickerValue [ 0 ] }
315- { ...{ disabledTime : disabledStartTime } } // Fix ts define
333+ { ...{ disabledTime : disabledStartTime , showTime : startShowTime } } // Fix ts define
316334 disabled = { disabled || mergedSelectable [ 0 ] === false }
317335 disabledDate = { disabledStartDate }
318336 onChange = { date => {
@@ -329,7 +347,7 @@ function InternalRangePicker<DateType>(
329347 value = { value2 }
330348 placeholder = { placeholder && placeholder [ 1 ] }
331349 defaultPickerValue = { defaultPickerValue && defaultPickerValue [ 1 ] }
332- { ...{ disabledTime : disabledEndTime } } // Fix ts define
350+ { ...{ disabledTime : disabledEndTime , showTime : endShowTime } } // Fix ts define
333351 disabled = { disabled || mergedSelectable [ 1 ] === false }
334352 disabledDate = { disabledEndDate }
335353 onChange = { date => {
0 commit comments