@@ -15,7 +15,7 @@ import {
15
15
getEnd ,
16
16
} from './shared/dates' ;
17
17
import { isMaxDate , isMinDate } from './shared/propTypes' ;
18
- import { between } from './shared/utils' ;
18
+ import { between , getYearOffset } from './shared/utils' ;
19
19
20
20
const defaultMinDate = new Date ( ) ;
21
21
defaultMinDate . setFullYear ( 1 , 0 , 1 ) ;
@@ -377,9 +377,17 @@ export default class DateInput extends PureComponent {
377
377
*/
378
378
onChange = ( event ) => {
379
379
const { name, value } = event . target ;
380
+ const { locale } = this . props ;
380
381
381
382
this . setState (
382
- { [ name ] : value } ,
383
+ ( ) => {
384
+ if ( name === 'year' ) {
385
+ const offset = getYearOffset ( locale ) ;
386
+ return { [ name ] : value !== null ? `${ value - offset } ` : null } ;
387
+ }
388
+
389
+ return { [ name ] : value } ;
390
+ } ,
383
391
this . onChangeExternal ,
384
392
) ;
385
393
}
@@ -434,7 +442,8 @@ export default class DateInput extends PureComponent {
434
442
435
443
const values = { } ;
436
444
formElements . forEach ( ( formElement ) => {
437
- values [ formElement . name ] = formElement . value ;
445
+ const { [ formElement . name ] : value } = this . state ;
446
+ values [ formElement . name ] = value ;
438
447
} ) ;
439
448
440
449
if ( formElements . every ( ( formElement ) => ! formElement . value ) ) {
@@ -534,7 +543,9 @@ export default class DateInput extends PureComponent {
534
543
}
535
544
536
545
renderYear = ( currentMatch , index ) => {
537
- const { autoFocus, yearAriaLabel, yearPlaceholder } = this . props ;
546
+ const {
547
+ autoFocus, locale, yearAriaLabel, yearPlaceholder,
548
+ } = this . props ;
538
549
const { year } = this . state ;
539
550
540
551
return (
@@ -544,6 +555,7 @@ export default class DateInput extends PureComponent {
544
555
ariaLabel = { yearAriaLabel }
545
556
autoFocus = { index === 0 && autoFocus }
546
557
inputRef = { this . yearInput }
558
+ locale = { locale }
547
559
placeholder = { yearPlaceholder }
548
560
value = { year }
549
561
valueType = { this . valueType }
0 commit comments