@@ -5,9 +5,10 @@ import {cloneDate} from './dateUtils';
55
66class CalendarYear extends Component {
77 static propTypes = {
8- displayDate : PropTypes . object . isRequired ,
9- maxDate : PropTypes . object ,
10- minDate : PropTypes . object ,
8+ DateTimeFormat : PropTypes . func . isRequired ,
9+ locale : PropTypes . string . isRequired ,
10+ maxDate : PropTypes . object . isRequired ,
11+ minDate : PropTypes . object . isRequired ,
1112 onTouchTapYear : PropTypes . func ,
1213 selectedDate : PropTypes . object . isRequired ,
1314 wordings : PropTypes . object ,
@@ -26,27 +27,41 @@ class CalendarYear extends Component {
2627 }
2728
2829 getYears ( ) {
29- const minYear = this . props . minDate . getFullYear ( ) ;
30- const maxYear = this . props . maxDate . getFullYear ( ) ;
31-
30+ const {
31+ DateTimeFormat,
32+ locale,
33+ minDate,
34+ maxDate,
35+ selectedDate,
36+ } = this . props ;
37+
38+ const minYear = minDate . getFullYear ( ) ;
39+ const maxYear = maxDate . getFullYear ( ) ;
3240 const years = [ ] ;
33- const dateCheck = cloneDate ( this . props . selectedDate ) ;
41+ const dateCheck = cloneDate ( selectedDate ) ;
42+
3443 for ( let year = minYear ; year <= maxYear ; year ++ ) {
3544 dateCheck . setFullYear ( year ) ;
36- const selected = this . props . selectedDate . getFullYear ( ) === year ;
37- let selectedProps = { } ;
45+ const selected = selectedDate . getFullYear ( ) === year ;
46+ const selectedProps = { } ;
3847 if ( selected ) {
39- selectedProps = { ref : 'selectedYearButton' } ;
48+ selectedProps . ref = 'selectedYearButton' ;
4049 }
4150
51+ const yearFormated = new DateTimeFormat ( locale , {
52+ year : 'numeric' ,
53+ } ) . format ( dateCheck ) ;
54+
4255 const yearButton = (
4356 < YearButton
4457 key = { `yb${ year } ` }
4558 onTouchTap = { this . handleTouchTapYear }
4659 selected = { selected }
4760 year = { year }
4861 { ...selectedProps }
49- />
62+ >
63+ { yearFormated }
64+ </ YearButton >
5065 ) ;
5166
5267 years . push ( yearButton ) ;
@@ -56,7 +71,9 @@ class CalendarYear extends Component {
5671 }
5772
5873 scrollToSelectedYear ( ) {
59- if ( this . refs . selectedYearButton === undefined ) return ;
74+ if ( this . refs . selectedYearButton === undefined ) {
75+ return ;
76+ }
6077
6178 const container = ReactDOM . findDOMNode ( this ) ;
6279 const yearButtonNode = ReactDOM . findDOMNode ( this . refs . selectedYearButton ) ;
@@ -69,16 +86,22 @@ class CalendarYear extends Component {
6986 }
7087
7188 handleTouchTapYear = ( event , year ) => {
72- if ( this . props . onTouchTapYear ) this . props . onTouchTapYear ( event , year ) ;
89+ if ( this . props . onTouchTapYear ) {
90+ this . props . onTouchTapYear ( event , year ) ;
91+ }
7392 } ;
7493
7594 render ( ) {
76- const years = this . getYears ( ) ;
77- const backgroundColor = this . context . muiTheme . datePicker . calendarYearBackgroundColor ;
78- const { prepareStyles} = this . context . muiTheme ;
95+ const {
96+ prepareStyles,
97+ datePicker : {
98+ calendarYearBackgroundColor,
99+ } ,
100+ } = this . context . muiTheme ;
101+
79102 const styles = {
80103 root : {
81- backgroundColor : backgroundColor ,
104+ backgroundColor : calendarYearBackgroundColor ,
82105 height : 'inherit' ,
83106 lineHeight : '35px' ,
84107 overflowX : 'hidden' ,
@@ -96,7 +119,7 @@ class CalendarYear extends Component {
96119 return (
97120 < div style = { prepareStyles ( styles . root ) } >
98121 < div style = { prepareStyles ( styles . child ) } >
99- { years }
122+ { this . getYears ( ) }
100123 </ div >
101124 </ div >
102125 ) ;
0 commit comments