@@ -20,7 +20,7 @@ import type {
20
20
import type { PickerPanelProps } from '../PickerPanel' ;
21
21
import PickerTrigger from '../PickerTrigger' ;
22
22
import { pickTriggerProps } from '../PickerTrigger/util' ;
23
- import { fillIndex , toArray } from '../utils/miscUtil' ;
23
+ import { fillIndex , getFromDate , toArray } from '../utils/miscUtil' ;
24
24
import PickerContext from './context' ;
25
25
import useCellRender from './hooks/useCellRender' ;
26
26
import useFieldsInvalidate from './hooks/useFieldsInvalidate' ;
@@ -33,7 +33,7 @@ import useRangeDisabledDate from './hooks/useRangeDisabledDate';
33
33
import useRangePickerValue from './hooks/useRangePickerValue' ;
34
34
import useRangeValue , { useInnerValue } from './hooks/useRangeValue' ;
35
35
import useShowNow from './hooks/useShowNow' ;
36
- import Popup from './Popup' ;
36
+ import Popup , { PopupShowTimeConfig } from './Popup' ;
37
37
import RangeSelector , { type SelectorIdType } from './Selector/RangeSelector' ;
38
38
39
39
function separateConfig < T > ( config : T | [ T , T ] | null | undefined , defaultConfig : T ) : [ T , T ] {
@@ -278,7 +278,10 @@ function RangePicker<DateType extends object = any>(
278
278
} ;
279
279
280
280
// ======================= ShowTime =======================
281
- const mergedShowTime = React . useMemo ( ( ) => {
281
+ /** Used for Popup panel */
282
+ const mergedShowTime = React . useMemo <
283
+ PopupShowTimeConfig < DateType > & Pick < RangeTimeProps < DateType > , 'defaultOpenValue' >
284
+ > ( ( ) => {
282
285
if ( ! showTime ) {
283
286
return null ;
284
287
}
@@ -288,12 +291,15 @@ function RangePicker<DateType extends object = any>(
288
291
const proxyDisabledTime = disabledTime
289
292
? ( date : DateType ) => {
290
293
const range = getActiveRange ( activeIndex ) ;
291
- return disabledTime ( date , range ) ;
294
+ const fromDate = getFromDate ( calendarValue , activeIndexList , activeIndex ) ;
295
+ return disabledTime ( date , range , {
296
+ from : fromDate ,
297
+ } ) ;
292
298
}
293
299
: undefined ;
294
300
295
301
return { ...showTime , disabledTime : proxyDisabledTime } ;
296
- } , [ showTime , activeIndex ] ) ;
302
+ } , [ showTime , activeIndex , calendarValue , activeIndexList ] ) ;
297
303
298
304
// ========================= Mode =========================
299
305
const [ modes , setModes ] = useMergedState < [ PanelMode , PanelMode ] > ( [ picker , picker ] , {
@@ -542,6 +548,7 @@ function RangePicker<DateType extends object = any>(
542
548
'style' ,
543
549
'className' ,
544
550
'onPanelChange' ,
551
+ 'disabledTime' ,
545
552
] ) ;
546
553
return restProps ;
547
554
} , [ filledProps ] ) ;
0 commit comments