Validate from address on form submit
This commit is contained in:
committed by
Jack Kitterhing
parent
a171aa69da
commit
486ef4fe67
@@ -35,15 +35,12 @@ class NewsletterSend extends React.Component {
|
||||
item: {},
|
||||
loading: true,
|
||||
thumbnailPromise: null,
|
||||
authorizedEmailAddresses: [],
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
jQuery.when(
|
||||
this.loadItem(this.props.match.params.id),
|
||||
this.loadAuthorizedEmailAddresses()
|
||||
).always(() => {
|
||||
this.loadItem(this.props.match.params.id)
|
||||
.always(() => {
|
||||
this.setState({ loading: false });
|
||||
});
|
||||
jQuery('#mailpoet_newsletter').parsley();
|
||||
@@ -81,13 +78,14 @@ class NewsletterSend extends React.Component {
|
||||
|
||||
isValid = () => jQuery('#mailpoet_newsletter').parsley().isValid();
|
||||
|
||||
isValidFromAddress = () => {
|
||||
const fromAddress = this.state.item.sender_address;
|
||||
isValidFromAddress = async () => {
|
||||
if (window.mailpoet_mta_method !== 'MailPoet') {
|
||||
return true;
|
||||
}
|
||||
return this.state.authorizedEmailAddresses.indexOf(fromAddress) !== -1;
|
||||
};
|
||||
const addresses = await this.loadAuthorizedEmailAddresses();
|
||||
const fromAddress = this.state.item.sender_address;
|
||||
return addresses.indexOf(fromAddress) !== -1;
|
||||
}
|
||||
|
||||
showInvalidFromAddressError = () => {
|
||||
let errorMessage = ReactStringReplace(
|
||||
@@ -170,17 +168,16 @@ class NewsletterSend extends React.Component {
|
||||
});
|
||||
};
|
||||
|
||||
loadAuthorizedEmailAddresses = () => {
|
||||
loadAuthorizedEmailAddresses = async () => {
|
||||
if (window.mailpoet_mta_method !== 'MailPoet') {
|
||||
return jQuery.Deferred().resolve();
|
||||
return [];
|
||||
}
|
||||
return MailPoet.Ajax.post({
|
||||
const response = await MailPoet.Ajax.post({
|
||||
api_version: window.mailpoet_api_version,
|
||||
endpoint: 'mailer',
|
||||
action: 'getAuthorizedEmailAddresses',
|
||||
}).done((response) => {
|
||||
this.setState({ authorizedEmailAddresses: response.data || [] });
|
||||
});
|
||||
return response.data || [];
|
||||
};
|
||||
|
||||
handleSend = (e) => {
|
||||
@@ -191,12 +188,13 @@ class NewsletterSend extends React.Component {
|
||||
return jQuery('#mailpoet_newsletter').parsley().validate();
|
||||
}
|
||||
|
||||
if (!this.isValidFromAddress()) {
|
||||
return this.showInvalidFromAddressError();
|
||||
}
|
||||
|
||||
MailPoet.Modal.loading(true);
|
||||
|
||||
return this.isValidFromAddress().then((valid) => {
|
||||
if (!valid) {
|
||||
this.showInvalidFromAddressError();
|
||||
return MailPoet.Modal.loading(false);
|
||||
}
|
||||
return this.saveNewsletter(e).done(() => {
|
||||
this.setState({ loading: true });
|
||||
})
|
||||
@@ -214,6 +212,7 @@ class NewsletterSend extends React.Component {
|
||||
this.setState({ loading: false });
|
||||
MailPoet.Modal.loading(false);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
sendNewsletter = newsletter => MailPoet.Ajax.post(
|
||||
|
Reference in New Issue
Block a user