@@ -84,17 +84,18 @@ export default class LoginForm extends Component {
8484
8585 // Add default field values once the form did mount on the client
8686 this . setState ( prevState => ( {
87- ...this . getDefaultFieldValues ( ) ,
87+ ...LoginForm . getDefaultFieldValues ( ) ,
8888 } ) ) ;
8989 }
9090
91- componentWillReceiveProps ( nextProps , nextContext ) {
92- if ( nextProps . formState && nextProps . formState !== this . state . formState ) {
93- this . setState ( {
94- formState : nextProps . formState ,
95- ...this . getDefaultFieldValues ( ) ,
96- } ) ;
97- }
91+ static getDerivedStateFromProps ( { formState } , { formState : stateFormState } ) {
92+ return ( formState && formState !== stateFormState ) ?
93+ {
94+ formState : formState ,
95+ ...LoginForm . getDefaultFieldValues ( ) ,
96+ }
97+ :
98+ null ;
9899 }
99100
100101 componentDidUpdate ( prevProps , prevState ) {
@@ -217,7 +218,7 @@ export default class LoginForm extends Component {
217218 break ;
218219 }
219220 this . setState ( { [ field ] : value } ) ;
220- this . setDefaultFieldValues ( { [ field ] : value } ) ;
221+ LoginForm . setDefaultFieldValues ( { [ field ] : value } ) ;
221222 }
222223
223224 fields ( ) {
@@ -472,13 +473,13 @@ export default class LoginForm extends Component {
472473 /**
473474 * Helper to store field values while using the form.
474475 */
475- setDefaultFieldValues ( defaults ) {
476+ static setDefaultFieldValues ( defaults ) {
476477 if ( typeof defaults !== 'object' ) {
477478 throw new Error ( 'Argument to setDefaultFieldValues is not of type object' ) ;
478479 } else if ( typeof localStorage !== 'undefined' && localStorage ) {
479480 localStorage . setItem ( 'accounts_ui' , JSON . stringify ( {
480481 passwordSignupFields : passwordSignupFields ( ) ,
481- ...this . getDefaultFieldValues ( ) ,
482+ ...LoginForm . getDefaultFieldValues ( ) ,
482483 ...defaults ,
483484 } ) ) ;
484485 }
@@ -487,7 +488,7 @@ export default class LoginForm extends Component {
487488 /**
488489 * Helper to get field values when switching states in the form.
489490 */
490- getDefaultFieldValues ( ) {
491+ static getDefaultFieldValues ( ) {
491492 if ( typeof localStorage !== 'undefined' && localStorage ) {
492493 const defaultFieldValues = JSON . parse ( localStorage . getItem ( 'accounts_ui' ) || null ) ;
493494 if ( defaultFieldValues
@@ -510,7 +511,7 @@ export default class LoginForm extends Component {
510511 event . preventDefault ( ) ;
511512 this . setState ( {
512513 formState : STATES . SIGN_UP ,
513- ...this . getDefaultFieldValues ( ) ,
514+ ...LoginForm . getDefaultFieldValues ( ) ,
514515 } ) ;
515516 this . clearMessages ( ) ;
516517 }
@@ -519,7 +520,7 @@ export default class LoginForm extends Component {
519520 event . preventDefault ( ) ;
520521 this . setState ( {
521522 formState : STATES . SIGN_IN ,
522- ...this . getDefaultFieldValues ( ) ,
523+ ...LoginForm . getDefaultFieldValues ( ) ,
523524 } ) ;
524525 this . clearMessages ( ) ;
525526 }
@@ -528,7 +529,7 @@ export default class LoginForm extends Component {
528529 event . preventDefault ( ) ;
529530 this . setState ( {
530531 formState : STATES . PASSWORD_RESET ,
531- ...this . getDefaultFieldValues ( ) ,
532+ ...LoginForm . getDefaultFieldValues ( ) ,
532533 } ) ;
533534 this . clearMessages ( ) ;
534535 }
@@ -537,7 +538,7 @@ export default class LoginForm extends Component {
537538 event . preventDefault ( ) ;
538539 this . setState ( {
539540 formState : STATES . PASSWORD_CHANGE ,
540- ...this . getDefaultFieldValues ( ) ,
541+ ...LoginForm . getDefaultFieldValues ( ) ,
541542 } ) ;
542543 this . clearMessages ( ) ;
543544 }
@@ -961,19 +962,6 @@ export default class LoginForm extends Component {
961962 this . setState ( { messages : [ ] } ) ;
962963 }
963964
964- componentWillMount ( ) {
965- // XXX Check for backwards compatibility.
966- if ( Meteor . isClient ) {
967- const container = document . createElement ( 'div' ) ;
968- ReactDOM . render ( < Accounts . ui . Field message = "test" /> , container ) ;
969- if ( container . getElementsByClassName ( 'message' ) . length == 0 ) {
970- // Found backwards compatibility issue with 1.3.x
971- console . warn ( `Implementations of Accounts.ui.Field must render message in v1.2.11.
972- https://github.com/studiointeract/accounts-ui/#deprecations` ) ;
973- }
974- }
975- }
976-
977965 componentWillUnmount ( ) {
978966 if ( this . hideMessageTimout ) {
979967 clearTimeout ( this . hideMessageTimout ) ;
0 commit comments