File tree Expand file tree Collapse file tree 4 files changed +30
-9
lines changed Expand file tree Collapse file tree 4 files changed +30
-9
lines changed Original file line number Diff line number Diff line change @@ -142,6 +142,7 @@ export default () => {
142142 placeholder = { [ 'start...' , 'end...' ] }
143143 disabled = { [ false , true ] }
144144 allowEmpty = { [ false , true ] }
145+ renderExtraFooter = { ( ) => < div > extra footer</ div > }
145146 />
146147 </ div >
147148 </ div >
Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ import { PickerModeMap } from './utils/uiUtil';
3434import { MonthCellRender } from './panels/MonthPanel/MonthBody' ;
3535import RangeContext from './RangeContext' ;
3636import useMergedState from './hooks/useMergeState' ;
37+ import getExtraFooter from './utils/getExtraFooter' ;
3738
3839export interface PickerPanelSharedProps < DateType > {
3940 prefixCls ?: string ;
@@ -407,14 +408,9 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
407408 }
408409
409410 // ============================ Footer ============================
410- let extraFooter : React . ReactNode ;
411- if ( renderExtraFooter ) {
412- extraFooter = (
413- < div className = { `${ prefixCls } -footer-extra` } >
414- { renderExtraFooter ( mergedMode ) }
415- </ div >
416- ) ;
417- }
411+ const extraFooter : React . ReactNode = inRange
412+ ? null
413+ : getExtraFooter ( prefixCls , mergedMode , renderExtraFooter ) ;
418414
419415 let nowNode : React . ReactNode ;
420416 let todayNode : React . ReactNode ;
Original file line number Diff line number Diff line change @@ -39,6 +39,7 @@ import { GenerateConfig } from './generate';
3939import { PickerPanelProps } from '.' ;
4040import RangeContext from './RangeContext' ;
4141import useRangeDisabled from './hooks/useRangeDisabled' ;
42+ import getExtraFooter from './utils/getExtraFooter' ;
4243
4344function reorderValues < DateType > (
4445 values : RangeValue < DateType > ,
@@ -201,6 +202,7 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
201202 pickerRef,
202203 inputReadOnly,
203204 mode,
205+ renderExtraFooter,
204206 onChange,
205207 onOpenChange,
206208 onPanelChange,
@@ -771,6 +773,11 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
771773
772774 function renderPanels ( ) {
773775 let panels : React . ReactNode ;
776+ const extraNode = getExtraFooter (
777+ prefixCls ,
778+ mergedModes [ activePickerIndex ] ,
779+ renderExtraFooter ,
780+ ) ;
774781
775782 if ( picker !== 'time' && ! showTime ) {
776783 const viewDate = viewDates [ activePickerIndex ] ;
@@ -861,7 +868,7 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
861868 } }
862869 >
863870 < div className = { `${ prefixCls } -panels` } > { panels } </ div >
864-
871+ { extraNode }
865872 { rangesNode }
866873 </ div >
867874 ) ;
@@ -931,6 +938,7 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
931938 }
932939 }
933940
941+ // ============================ Return =============================
934942 return (
935943 < PanelContext . Provider
936944 value = { {
Original file line number Diff line number Diff line change 1+ import * as React from 'react' ;
2+ import { PanelMode } from '../interface' ;
3+
4+ export default function getExtraFooter (
5+ prefixCls : string ,
6+ mode : PanelMode ,
7+ renderExtraFooter ?: ( mode : PanelMode ) => React . ReactNode ,
8+ ) {
9+ if ( ! renderExtraFooter ) {
10+ return null ;
11+ }
12+
13+ return (
14+ < div className = { `${ prefixCls } -footer-extra` } > { renderExtraFooter ( mode ) } </ div >
15+ ) ;
16+ }
You can’t perform that action at this time.
0 commit comments