Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1dae751

Browse files
committed
Migrated to React 16.3 lifecycle methods
1 parent 83f9f7e commit 1dae751

2 files changed

Lines changed: 18 additions & 30 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ class NewLogin extends LoginForm {
456456
}
457457
error = true;
458458
} else {
459-
options.profile = Object.assign(options.profile || {}, { firstname });
459+
options.profile = { ...options.profile, firstname });
460460
}
461461
}
462462

imports/ui/components/LoginForm.jsx

Lines changed: 17 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)