diff --git a/src/calendar.tsx b/src/calendar.tsx index 9000acdaf..11cd0129e 100644 --- a/src/calendar.tsx +++ b/src/calendar.tsx @@ -101,6 +101,10 @@ export interface ReactDatePickerCustomHeaderProps { nextMonthButtonDisabled: boolean; prevYearButtonDisabled: boolean; nextYearButtonDisabled: boolean; + visibleYearsRange?: { + startYear: number; + endYear: number; + }; } type CalendarProps = React.PropsWithChildren< @@ -860,6 +864,20 @@ export default class Calendar extends Component { return null; } + const { showYearPicker, yearItemNumber } = this.props; + + let visibleYearsRange; + if (showYearPicker) { + const { startPeriod: startYear, endPeriod: endYear } = getYearsPeriod( + monthDate, + yearItemNumber, + ); + visibleYearsRange = { + startYear, + endYear, + }; + } + const prevMonthButtonDisabled = monthDisabledBefore( this.state.date, this.props, @@ -892,6 +910,7 @@ export default class Calendar extends Component { > {this.props.renderCustomHeader?.({ ...this.state, + ...(showYearPicker && { visibleYearsRange }), customHeaderCount: i, monthDate, changeMonth: this.changeMonth, diff --git a/src/test/calendar_test.test.tsx b/src/test/calendar_test.test.tsx index 02c975f69..89737c60e 100644 --- a/src/test/calendar_test.test.tsx +++ b/src/test/calendar_test.test.tsx @@ -550,6 +550,7 @@ describe("Calendar", () => { const renderCustomHeader = (params: ReactDatePickerCustomHeaderProps) => { const { date, + visibleYearsRange, changeYear, changeMonth, decreaseMonth, @@ -560,6 +561,11 @@ describe("Calendar", () => { return (
+ {visibleYearsRange && ( +
+ {visibleYearsRange.startYear} to {visibleYearsRange.endYear} +
+ )}