diff --git a/src/containers/ContactDetailsForm/ContactDetailsForm.js b/src/containers/ContactDetailsForm/ContactDetailsForm.js
index 5042eedd..440c9e09 100644
--- a/src/containers/ContactDetailsForm/ContactDetailsForm.js
+++ b/src/containers/ContactDetailsForm/ContactDetailsForm.js
@@ -45,7 +45,7 @@ class ContactDetailsFormComponent extends Component {
const {
rootClassName,
className,
- changeEmailError,
+ saveContactDetailsError,
currentUser,
form,
handleSubmit,
@@ -86,7 +86,7 @@ class ContactDetailsFormComponent extends Component {
sendVerificationEmailError
);
- const emailTakenErrorText = isChangeEmailTakenError(changeEmailError)
+ const emailTakenErrorText = isChangeEmailTakenError(saveContactDetailsError)
? intl.formatMessage({ id: 'ContactDetailsForm.emailTakenError' })
: null;
@@ -187,7 +187,7 @@ class ContactDetailsFormComponent extends Component {
const passwordFailedMessage = intl.formatMessage({
id: 'ContactDetailsForm.passwordFailed',
});
- const passwordErrorText = isChangeEmailWrongPassword(changeEmailError)
+ const passwordErrorText = isChangeEmailWrongPassword(saveContactDetailsError)
? passwordFailedMessage
: null;
@@ -196,7 +196,7 @@ class ContactDetailsFormComponent extends Component {
});
const genericFailure =
- changeEmailError && !(emailTakenErrorText || passwordErrorText) ? (
+ saveContactDetailsError && !(emailTakenErrorText || passwordErrorText) ? (
@@ -260,7 +260,7 @@ class ContactDetailsFormComponent extends Component {
ContactDetailsFormComponent.defaultProps = {
rootClassName: null,
className: null,
- changeEmailError: null,
+ saveContactDetailsError: null,
inProgress: false,
sendVerificationEmailError: null,
sendVerificationEmailInProgress: false,
@@ -272,7 +272,7 @@ ContactDetailsFormComponent.propTypes = {
...formPropTypes,
rootClassName: string,
className: string,
- changeEmailError: propTypes.error,
+ saveContactDetailsError: propTypes.error,
inProgress: bool,
intl: intlShape.isRequired,
onResendVerificationEmail: func.isRequired,
diff --git a/src/containers/ContactDetailsPage/ContactDetailsPage.duck.js b/src/containers/ContactDetailsPage/ContactDetailsPage.duck.js
index 9f8221d6..ddb1157d 100644
--- a/src/containers/ContactDetailsPage/ContactDetailsPage.duck.js
+++ b/src/containers/ContactDetailsPage/ContactDetailsPage.duck.js
@@ -3,36 +3,41 @@ import { currentUserShowSuccess } from '../../ducks/user.duck';
// ================ Action types ================ //
-export const CHANGE_EMAIL_REQUEST = 'app/ContactDetailsPage/CHANGE_EMAIL_REQUEST';
-export const CHANGE_EMAIL_SUCCESS = 'app/ContactDetailsPage/CHANGE_EMAIL_SUCCESS';
-export const CHANGE_EMAIL_ERROR = 'app/ContactDetailsPage/CHANGE_EMAIL_ERROR';
+export const SAVE_CONTACT_DETAILS_REQUEST = 'app/ContactDetailsPage/SAVE_CONTACT_DETAILS_REQUEST';
+export const SAVE_CONTACT_DETAILS_SUCCESS = 'app/ContactDetailsPage/SAVE_CONTACT_DETAILS_SUCCESS';
+export const SAVE_CONTACT_DETAILS_ERROR = 'app/ContactDetailsPage/SAVE_CONTACT_DETAILS_ERROR';
-export const CHANGE_EMAIL_CLEAR = 'app/ContactDetailsPage/CHANGE_EMAIL_CLEAR';
+export const SAVE_CONTACT_DETAILS_CLEAR = 'app/ContactDetailsPage/SAVE_CONTACT_DETAILS_CLEAR';
// ================ Reducer ================ //
const initialState = {
- changeEmailError: null,
- changeEmailInProgress: false,
- emailChanged: false,
+ saveContactDetailsError: null,
+ saveContactDetailsInProgress: false,
+ contactDetailsChanged: false,
};
export default function reducer(state = initialState, action = {}) {
const { type, payload } = action;
switch (type) {
- case CHANGE_EMAIL_REQUEST:
- return { ...state, changeEmailInProgress: true, changeEmailError: null, emailChanged: false };
- case CHANGE_EMAIL_SUCCESS:
- return { ...state, changeEmailInProgress: false, emailChanged: true };
- case CHANGE_EMAIL_ERROR:
- return { ...state, changeEmailInProgress: false, changeEmailError: payload };
-
- case CHANGE_EMAIL_CLEAR:
+ case SAVE_CONTACT_DETAILS_REQUEST:
return {
...state,
- changeEmailInProgress: false,
- changeEmailError: null,
- emailChanged: false,
+ saveContactDetailsInProgress: true,
+ saveContactDetailsError: null,
+ contactDetailsChanged: false,
+ };
+ case SAVE_CONTACT_DETAILS_SUCCESS:
+ return { ...state, saveContactDetailsInProgress: false, contactDetailsChanged: true };
+ case SAVE_CONTACT_DETAILS_ERROR:
+ return { ...state, saveContactDetailsInProgress: false, saveContactDetailsError: payload };
+
+ case SAVE_CONTACT_DETAILS_CLEAR:
+ return {
+ ...state,
+ saveContactDetailsInProgress: false,
+ saveContactDetailsError: null,
+ contactDetailsChanged: false,
};
default:
@@ -42,28 +47,28 @@ export default function reducer(state = initialState, action = {}) {
// ================ Action creators ================ //
-export const changeEmailRequest = () => ({ type: CHANGE_EMAIL_REQUEST });
-export const changeEmailSuccess = () => ({ type: CHANGE_EMAIL_SUCCESS });
-export const changeEmailError = error => ({
- type: CHANGE_EMAIL_ERROR,
+export const saveContactDetailsRequest = () => ({ type: SAVE_CONTACT_DETAILS_REQUEST });
+export const saveContactDetailsSuccess = () => ({ type: SAVE_CONTACT_DETAILS_SUCCESS });
+export const saveContactDetailsError = error => ({
+ type: SAVE_CONTACT_DETAILS_ERROR,
payload: error,
error: true,
});
-export const changeEmailClear = () => ({ type: CHANGE_EMAIL_CLEAR });
+export const saveContactDetailsClear = () => ({ type: SAVE_CONTACT_DETAILS_CLEAR });
// ================ Thunks ================ //
-export const changeEmail = params => (dispatch, getState, sdk) => {
- dispatch(changeEmailRequest());
+export const saveContactDetails = params => (dispatch, getState, sdk) => {
+ dispatch(saveContactDetailsRequest());
const { email, currentPassword } = params;
return sdk.currentUser
.changeEmail({ email, currentPassword }, { expand: true })
.then(response => {
const currentUser = response.data.data;
- dispatch(changeEmailSuccess());
+ dispatch(saveContactDetailsSuccess());
dispatch(currentUserShowSuccess(currentUser));
})
- .catch(e => dispatch(changeEmailError(storableError(e))));
+ .catch(e => dispatch(saveContactDetailsError(storableError(e))));
};
diff --git a/src/containers/ContactDetailsPage/ContactDetailsPage.js b/src/containers/ContactDetailsPage/ContactDetailsPage.js
index 6c539a5d..36c19a46 100644
--- a/src/containers/ContactDetailsPage/ContactDetailsPage.js
+++ b/src/containers/ContactDetailsPage/ContactDetailsPage.js
@@ -19,27 +19,27 @@ import {
import { ContactDetailsForm, TopbarContainer } from '../../containers';
import { isScrollingDisabled } from '../../ducks/UI.duck';
-import { changeEmail, changeEmailClear } from './ContactDetailsPage.duck';
+import { saveContactDetails, saveContactDetailsClear } from './ContactDetailsPage.duck';
import css from './ContactDetailsPage.css';
export const ContactDetailsPageComponent = props => {
const {
- changeEmailError,
- changeEmailInProgress,
+ saveContactDetailsError,
+ saveContactDetailsInProgress,
currentUser,
- emailChanged,
+ contactDetailsChanged,
onChange,
scrollingDisabled,
sendVerificationEmailInProgress,
sendVerificationEmailError,
onResendVerificationEmail,
- onSubmitChangeEmail,
+ onSubmitContactDetails,
intl,
} = props;
const tabs = [
{
- text: ,
+ text: ,
selected: true,
linkProps: {
name: 'ContactDetailsPage',
@@ -63,17 +63,17 @@ export const ContactDetailsPageComponent = props => {
const user = ensureCurrentUser(currentUser);
const email = user.attributes.email || '';
- const changeEmailForm = user.id ? (
+ const contactInfoForm = user.id ? (
@@ -98,7 +98,7 @@ export const ContactDetailsPageComponent = props => {
- {changeEmailForm}
+ {contactInfoForm}
@@ -110,7 +110,7 @@ export const ContactDetailsPageComponent = props => {
};
ContactDetailsPageComponent.defaultProps = {
- changeEmailError: null,
+ saveContactDetailsError: null,
currentUser: null,
sendVerificationEmailError: null,
};
@@ -118,12 +118,12 @@ ContactDetailsPageComponent.defaultProps = {
const { bool, func } = PropTypes;
ContactDetailsPageComponent.propTypes = {
- changeEmailError: propTypes.error,
- changeEmailInProgress: bool.isRequired,
+ saveContactDetailsError: propTypes.error,
+ saveContactDetailsInProgress: bool.isRequired,
currentUser: propTypes.currentUser,
- emailChanged: bool.isRequired,
+ contactDetailsChanged: bool.isRequired,
onChange: func.isRequired,
- onSubmitChangeEmail: func.isRequired,
+ onSubmitContactDetails: func.isRequired,
scrollingDisabled: bool.isRequired,
sendVerificationEmailInProgress: bool.isRequired,
sendVerificationEmailError: propTypes.error,
@@ -136,12 +136,16 @@ ContactDetailsPageComponent.propTypes = {
const mapStateToProps = state => {
// Topbar needs user info.
const { currentUser, sendVerificationEmailInProgress, sendVerificationEmailError } = state.user;
- const { changeEmailError, changeEmailInProgress, emailChanged } = state.ContactDetailsPage;
+ const {
+ saveContactDetailsError,
+ saveContactDetailsInProgress,
+ contactDetailsChanged,
+ } = state.ContactDetailsPage;
return {
- changeEmailError,
- changeEmailInProgress,
+ saveContactDetailsError,
+ saveContactDetailsInProgress,
currentUser,
- emailChanged,
+ contactDetailsChanged,
scrollingDisabled: isScrollingDisabled(state),
sendVerificationEmailInProgress,
sendVerificationEmailError,
@@ -149,9 +153,9 @@ const mapStateToProps = state => {
};
const mapDispatchToProps = dispatch => ({
- onChange: () => dispatch(changeEmailClear()),
+ onChange: () => dispatch(saveContactDetailsClear()),
onResendVerificationEmail: () => dispatch(sendVerificationEmail()),
- onSubmitChangeEmail: values => dispatch(changeEmail(values)),
+ onSubmitContactDetails: values => dispatch(saveContactDetails(values)),
});
const ContactDetailsPage = compose(connect(mapStateToProps, mapDispatchToProps), injectIntl)(
diff --git a/src/containers/ContactDetailsPage/ContactDetailsPage.test.js b/src/containers/ContactDetailsPage/ContactDetailsPage.test.js
index db3c4f4d..5e4e8a52 100644
--- a/src/containers/ContactDetailsPage/ContactDetailsPage.test.js
+++ b/src/containers/ContactDetailsPage/ContactDetailsPage.test.js
@@ -21,9 +21,9 @@ describe('ContactDetailsPage', () => {
onManageDisableScrolling={noop}
sendVerificationEmailInProgress={false}
onResendVerificationEmail={noop}
- onSubmitChangeEmail={noop}
- changeEmailInProgress={false}
- emailChanged={false}
+ onSubmitContactDetails={noop}
+ saveContactDetailsInProgress={false}
+ contactDetailsChanged={false}
intl={fakeIntl}
/>
);
diff --git a/src/containers/ContactDetailsPage/__snapshots__/ContactDetailsPage.test.js.snap b/src/containers/ContactDetailsPage/__snapshots__/ContactDetailsPage.test.js.snap
index 8ac96140..90cfd87f 100644
--- a/src/containers/ContactDetailsPage/__snapshots__/ContactDetailsPage.test.js.snap
+++ b/src/containers/ContactDetailsPage/__snapshots__/ContactDetailsPage.test.js.snap
@@ -34,7 +34,7 @@ exports[`ContactDetailsPage matches snapshot 1`] = `
},
"selected": true,
"text": ,
},
diff --git a/src/containers/PasswordChangePage/PasswordChangePage.js b/src/containers/PasswordChangePage/PasswordChangePage.js
index f079ce57..b8f6ae2a 100644
--- a/src/containers/PasswordChangePage/PasswordChangePage.js
+++ b/src/containers/PasswordChangePage/PasswordChangePage.js
@@ -34,7 +34,7 @@ export const PasswordChangePageComponent = props => {
const tabs = [
{
- text: ,
+ text: ,
selected: false,
linkProps: {
name: 'ContactDetailsPage',
diff --git a/src/containers/PasswordChangePage/__snapshots__/PasswordChangePage.test.js.snap b/src/containers/PasswordChangePage/__snapshots__/PasswordChangePage.test.js.snap
index df9afbc1..a018c746 100644
--- a/src/containers/PasswordChangePage/__snapshots__/PasswordChangePage.test.js.snap
+++ b/src/containers/PasswordChangePage/__snapshots__/PasswordChangePage.test.js.snap
@@ -34,7 +34,7 @@ exports[`PasswordChangePage matches snapshot 1`] = `
},
"selected": false,
"text": ,
},
diff --git a/src/containers/PayoutPreferencesPage/PayoutPreferencesPage.js b/src/containers/PayoutPreferencesPage/PayoutPreferencesPage.js
index 3f2619f3..c8c45d16 100644
--- a/src/containers/PayoutPreferencesPage/PayoutPreferencesPage.js
+++ b/src/containers/PayoutPreferencesPage/PayoutPreferencesPage.js
@@ -40,7 +40,7 @@ export const PayoutPreferencesPageComponent = props => {
const tabs = [
{
- text: ,
+ text: ,
selected: false,
linkProps: {
name: 'ContactDetailsPage',
diff --git a/src/containers/PayoutPreferencesPage/__snapshots__/PayoutPreferencesPage.test.js.snap b/src/containers/PayoutPreferencesPage/__snapshots__/PayoutPreferencesPage.test.js.snap
index 1509311e..a32754b5 100644
--- a/src/containers/PayoutPreferencesPage/__snapshots__/PayoutPreferencesPage.test.js.snap
+++ b/src/containers/PayoutPreferencesPage/__snapshots__/PayoutPreferencesPage.test.js.snap
@@ -34,7 +34,7 @@ exports[`PayoutPreferencesPage matches snapshot with Stripe connected 1`] = `
},
"selected": false,
"text": ,
},
@@ -124,7 +124,7 @@ exports[`PayoutPreferencesPage matches snapshot with Stripe not connected 1`] =
},
"selected": false,
"text": ,
},
@@ -223,7 +223,7 @@ exports[`PayoutPreferencesPage matches snapshot with details submitted 1`] = `
},
"selected": false,
"text": ,
},
diff --git a/src/translations/en.json b/src/translations/en.json
index 2f44e780..8437f301 100644
--- a/src/translations/en.json
+++ b/src/translations/en.json
@@ -96,7 +96,7 @@
"ContactDetailsForm.resendEmailVerificationText": "Resend verification email.",
"ContactDetailsForm.saveChanges": "Save changes",
"ContactDetailsForm.tooManyVerificationRequests": "Too many email verification requests sent.",
- "ContactDetailsPage.emailTabTitle": "Email",
+ "ContactDetailsPage.contactDetailsTabTitle": "Email",
"ContactDetailsPage.heading": "Email settings",
"ContactDetailsPage.passwordTabTitle": "Password",
"ContactDetailsPage.paymentsTabTitle": "Payments",
@@ -346,7 +346,7 @@
"PasswordChangeForm.passwordTooLong": "The password should be at most {maxLength} characters",
"PasswordChangeForm.passwordTooShort": "The password should be at least {minLength} characters",
"PasswordChangeForm.saveChanges": "Save changes",
- "PasswordChangePage.emailTabTitle": "Email",
+ "PasswordChangePage.contactDetailsTabTitle": "Email",
"PasswordChangePage.heading": "Password settings",
"PasswordChangePage.passwordTabTitle": "Password",
"PasswordChangePage.paymentsTabTitle": "Payments",
@@ -439,7 +439,7 @@
"PayoutDetailsForm.streetAddressRequired": "This field is required",
"PayoutDetailsForm.submitButtonText": "Save details & publish listing",
"PayoutDetailsForm.title": "One more thing: payout preferences",
- "PayoutPreferencesPage.emailTabTitle": "Email",
+ "PayoutPreferencesPage.contactDetailsTabTitle": "Email",
"PayoutPreferencesPage.heading": "Payment settings",
"PayoutPreferencesPage.loadingData": "Loading data…",
"PayoutPreferencesPage.passwordTabTitle": "Password",