@@ -20,7 +20,7 @@ import type {
2020import type { PickerPanelProps } from '../PickerPanel' ;
2121import PickerTrigger from '../PickerTrigger' ;
2222import { pickTriggerProps } from '../PickerTrigger/util' ;
23- import { fillIndex , toArray } from '../utils/miscUtil' ;
23+ import { fillIndex , getFromDate , toArray } from '../utils/miscUtil' ;
2424import PickerContext from './context' ;
2525import useCellRender from './hooks/useCellRender' ;
2626import useFieldsInvalidate from './hooks/useFieldsInvalidate' ;
@@ -33,7 +33,7 @@ import useRangeDisabledDate from './hooks/useRangeDisabledDate';
3333import useRangePickerValue from './hooks/useRangePickerValue' ;
3434import useRangeValue , { useInnerValue } from './hooks/useRangeValue' ;
3535import useShowNow from './hooks/useShowNow' ;
36- import Popup from './Popup' ;
36+ import Popup , { PopupShowTimeConfig } from './Popup' ;
3737import RangeSelector , { type SelectorIdType } from './Selector/RangeSelector' ;
3838
3939function separateConfig < T > ( config : T | [ T , T ] | null | undefined , defaultConfig : T ) : [ T , T ] {
@@ -278,7 +278,10 @@ function RangePicker<DateType extends object = any>(
278278 } ;
279279
280280 // ======================= ShowTime =======================
281- const mergedShowTime = React . useMemo ( ( ) => {
281+ /** Used for Popup panel */
282+ const mergedShowTime = React . useMemo <
283+ PopupShowTimeConfig < DateType > & Pick < RangeTimeProps < DateType > , 'defaultOpenValue' >
284+ > ( ( ) => {
282285 if ( ! showTime ) {
283286 return null ;
284287 }
@@ -288,12 +291,15 @@ function RangePicker<DateType extends object = any>(
288291 const proxyDisabledTime = disabledTime
289292 ? ( date : DateType ) => {
290293 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+ } ) ;
292298 }
293299 : undefined ;
294300
295301 return { ...showTime , disabledTime : proxyDisabledTime } ;
296- } , [ showTime , activeIndex ] ) ;
302+ } , [ showTime , activeIndex , calendarValue , activeIndexList ] ) ;
297303
298304 // ========================= Mode =========================
299305 const [ modes , setModes ] = useMergedState < [ PanelMode , PanelMode ] > ( [ picker , picker ] , {
@@ -542,6 +548,7 @@ function RangePicker<DateType extends object = any>(
542548 'style' ,
543549 'className' ,
544550 'onPanelChange' ,
551+ 'disabledTime' ,
545552 ] ) ;
546553 return restProps ;
547554 } , [ filledProps ] ) ;
0 commit comments