@@ -15,7 +15,7 @@ import {
1515 getEnd ,
1616} from './shared/dates' ;
1717import { isMaxDate , isMinDate } from './shared/propTypes' ;
18- import { between } from './shared/utils' ;
18+ import { between , getYearOffset } from './shared/utils' ;
1919
2020const defaultMinDate = new Date ( ) ;
2121defaultMinDate . setFullYear ( 1 , 0 , 1 ) ;
@@ -377,9 +377,17 @@ export default class DateInput extends PureComponent {
377377 */
378378 onChange = ( event ) => {
379379 const { name, value } = event . target ;
380+ const { locale } = this . props ;
380381
381382 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+ } ,
383391 this . onChangeExternal ,
384392 ) ;
385393 }
@@ -434,7 +442,8 @@ export default class DateInput extends PureComponent {
434442
435443 const values = { } ;
436444 formElements . forEach ( ( formElement ) => {
437- values [ formElement . name ] = formElement . value ;
445+ const { [ formElement . name ] : value } = this . state ;
446+ values [ formElement . name ] = value ;
438447 } ) ;
439448
440449 if ( formElements . every ( ( formElement ) => ! formElement . value ) ) {
@@ -534,7 +543,9 @@ export default class DateInput extends PureComponent {
534543 }
535544
536545 renderYear = ( currentMatch , index ) => {
537- const { autoFocus, yearAriaLabel, yearPlaceholder } = this . props ;
546+ const {
547+ autoFocus, locale, yearAriaLabel, yearPlaceholder,
548+ } = this . props ;
538549 const { year } = this . state ;
539550
540551 return (
@@ -544,6 +555,7 @@ export default class DateInput extends PureComponent {
544555 ariaLabel = { yearAriaLabel }
545556 autoFocus = { index === 0 && autoFocus }
546557 inputRef = { this . yearInput }
558+ locale = { locale }
547559 placeholder = { yearPlaceholder }
548560 value = { year }
549561 valueType = { this . valueType }
0 commit comments