@@ -39,6 +39,7 @@ export default class Year extends React.Component {
3939 filterDate : PropTypes . func ,
4040 yearItemNumber : PropTypes . number ,
4141 handleOnKeyDown : PropTypes . func ,
42+ yearClassName : PropTypes . func ,
4243 } ;
4344
4445 constructor ( props ) {
@@ -195,31 +196,39 @@ export default class Year extends React.Component {
195196
196197 getYearClassNames = ( y ) => {
197198 const {
199+ date,
198200 minDate,
199201 maxDate,
200202 selected,
201203 excludeDates,
202204 includeDates,
203205 filterDate,
206+ yearClassName,
204207 } = this . props ;
205- return clsx ( "react-datepicker__year-text" , {
206- "react-datepicker__year-text--selected" : y === getYear ( selected ) ,
207- "react-datepicker__year-text--disabled" :
208- ( minDate || maxDate || excludeDates || includeDates || filterDate ) &&
209- utils . isYearDisabled ( y , this . props ) ,
210- "react-datepicker__year-text--keyboard-selected" :
211- this . isKeyboardSelected ( y ) ,
212- "react-datepicker__year-text--range-start" : this . isRangeStart ( y ) ,
213- "react-datepicker__year-text--range-end" : this . isRangeEnd ( y ) ,
214- "react-datepicker__year-text--in-range" : this . isInRange ( y ) ,
215- "react-datepicker__year-text--in-selecting-range" :
216- this . isInSelectingRange ( y ) ,
217- "react-datepicker__year-text--selecting-range-start" :
218- this . isSelectingRangeStart ( y ) ,
219- "react-datepicker__year-text--selecting-range-end" :
220- this . isSelectingRangeEnd ( y ) ,
221- "react-datepicker__year-text--today" : this . isCurrentYear ( y ) ,
222- } ) ;
208+
209+ return clsx (
210+ "react-datepicker__year-text" ,
211+ `react-datepicker__year-${ y } ` ,
212+ yearClassName ? yearClassName ( utils . setYear ( date , y ) ) : undefined ,
213+ {
214+ "react-datepicker__year-text--selected" : y === getYear ( selected ) ,
215+ "react-datepicker__year-text--disabled" :
216+ ( minDate || maxDate || excludeDates || includeDates || filterDate ) &&
217+ utils . isYearDisabled ( y , this . props ) ,
218+ "react-datepicker__year-text--keyboard-selected" :
219+ this . isKeyboardSelected ( y ) ,
220+ "react-datepicker__year-text--range-start" : this . isRangeStart ( y ) ,
221+ "react-datepicker__year-text--range-end" : this . isRangeEnd ( y ) ,
222+ "react-datepicker__year-text--in-range" : this . isInRange ( y ) ,
223+ "react-datepicker__year-text--in-selecting-range" :
224+ this . isInSelectingRange ( y ) ,
225+ "react-datepicker__year-text--selecting-range-start" :
226+ this . isSelectingRangeStart ( y ) ,
227+ "react-datepicker__year-text--selecting-range-end" :
228+ this . isSelectingRangeEnd ( y ) ,
229+ "react-datepicker__year-text--today" : this . isCurrentYear ( y ) ,
230+ } ,
231+ ) ;
223232 } ;
224233
225234 getYearTabIndex = ( y ) => {
0 commit comments