@@ -157,6 +157,7 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
157157 panelPosition,
158158 rangedValue,
159159 hoverRangedValue,
160+ onSelect : onContextSelect ,
160161 } = React . useContext ( RangeContext ) ;
161162 const panelRef = React . useRef < PanelRefProps > ( { } ) ;
162163
@@ -224,11 +225,16 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
224225
225226 const triggerSelect = (
226227 date : DateType ,
228+ type : 'key' | 'mouse' ,
227229 forceTriggerSelect : boolean = false ,
228230 ) => {
229231 if ( mergedMode === picker || forceTriggerSelect ) {
230232 setInnerValue ( date ) ;
231233
234+ if ( onContextSelect ) {
235+ onContextSelect ( date , type ) ;
236+ }
237+
232238 if ( onSelect ) {
233239 onSelect ( date ) ;
234240 }
@@ -318,9 +324,9 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
318324 panelNode = (
319325 < DecadePanel < DateType >
320326 { ...pickerProps }
321- onSelect = { date => {
327+ onSelect = { ( date , type ) => {
322328 setViewDate ( date ) ;
323- triggerSelect ( date ) ;
329+ triggerSelect ( date , type ) ;
324330 } }
325331 />
326332 ) ;
@@ -330,9 +336,9 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
330336 panelNode = (
331337 < YearPanel < DateType >
332338 { ...pickerProps }
333- onSelect = { date => {
339+ onSelect = { ( date , type ) => {
334340 setViewDate ( date ) ;
335- triggerSelect ( date ) ;
341+ triggerSelect ( date , type ) ;
336342 } }
337343 />
338344 ) ;
@@ -342,9 +348,9 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
342348 panelNode = (
343349 < MonthPanel < DateType >
344350 { ...pickerProps }
345- onSelect = { date => {
351+ onSelect = { ( date , type ) => {
346352 setViewDate ( date ) ;
347- triggerSelect ( date ) ;
353+ triggerSelect ( date , type ) ;
348354 } }
349355 />
350356 ) ;
@@ -354,9 +360,9 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
354360 panelNode = (
355361 < WeekPanel
356362 { ...pickerProps }
357- onSelect = { date => {
363+ onSelect = { ( date , type ) => {
358364 setViewDate ( date ) ;
359- triggerSelect ( date ) ;
365+ triggerSelect ( date , type ) ;
360366 } }
361367 />
362368 ) ;
@@ -368,9 +374,9 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
368374 < TimePanel < DateType >
369375 { ...pickerProps }
370376 { ...( typeof showTime === 'object' ? showTime : null ) }
371- onSelect = { date => {
377+ onSelect = { ( date , type ) => {
372378 setViewDate ( date ) ;
373- triggerSelect ( date ) ;
379+ triggerSelect ( date , type ) ;
374380 } }
375381 />
376382 ) ;
@@ -381,19 +387,19 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
381387 panelNode = (
382388 < DatetimePanel
383389 { ...pickerProps }
384- onSelect = { date => {
390+ onSelect = { ( date , type ) => {
385391 setViewDate ( date ) ;
386- triggerSelect ( date ) ;
392+ triggerSelect ( date , type ) ;
387393 } }
388394 />
389395 ) ;
390396 } else {
391397 panelNode = (
392398 < DatePanel < DateType >
393399 { ...pickerProps }
394- onSelect = { date => {
400+ onSelect = { ( date , type ) => {
395401 setViewDate ( date ) ;
396- triggerSelect ( date ) ;
402+ triggerSelect ( date , type ) ;
397403 } }
398404 />
399405 ) ;
@@ -419,7 +425,7 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
419425 < a
420426 className = { `${ prefixCls } -now-btn` }
421427 onClick = { ( ) => {
422- triggerSelect ( generateConfig . getNow ( ) , true ) ;
428+ triggerSelect ( generateConfig . getNow ( ) , 'mouse' , true ) ;
423429 } }
424430 >
425431 { locale . now }
@@ -431,7 +437,7 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
431437 < a
432438 className = { `${ prefixCls } -today-btn` }
433439 onClick = { ( ) => {
434- triggerSelect ( generateConfig . getNow ( ) , true ) ;
440+ triggerSelect ( generateConfig . getNow ( ) , 'mouse' , true ) ;
435441 } }
436442 >
437443 { locale . today }
0 commit comments