Disable segments selector validation when saving draft
[MAILPOET-4549]
This commit is contained in:
@@ -105,6 +105,7 @@ class NewsletterSendComponent extends Component {
|
|||||||
item: {},
|
item: {},
|
||||||
loading: true,
|
loading: true,
|
||||||
thumbnailPromise: null,
|
thumbnailPromise: null,
|
||||||
|
isSavingDraft: false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -586,19 +587,47 @@ class NewsletterSendComponent extends Component {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
handleSaveDraft = () =>
|
||||||
|
this.setState({
|
||||||
|
isSavingDraft: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
disableSegmentsValidation = (field) => {
|
||||||
|
if (
|
||||||
|
this.state.isSavingDraft &&
|
||||||
|
field.name === 'segments' &&
|
||||||
|
field.validation &&
|
||||||
|
field.validation['data-parsley-required']
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
...field,
|
||||||
|
validation: {
|
||||||
|
...field.validation,
|
||||||
|
'data-parsley-required': false,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return field;
|
||||||
|
};
|
||||||
|
|
||||||
|
getPreparedFields = (isPaused) =>
|
||||||
|
this.state.fields.map((field) => {
|
||||||
|
const newField = field;
|
||||||
|
if (field.name === 'segments' || field.name === 'options') {
|
||||||
|
newField.disabled = isPaused;
|
||||||
|
}
|
||||||
|
return this.disableSegmentsValidation(newField);
|
||||||
|
});
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const isPaused =
|
const isPaused =
|
||||||
this.state.item.status === 'sending' &&
|
this.state.item.status === 'sending' &&
|
||||||
this.state.item.queue &&
|
this.state.item.queue &&
|
||||||
this.state.item.queue.status === 'paused';
|
this.state.item.queue.status === 'paused';
|
||||||
const fields = this.state.fields.map((field) => {
|
|
||||||
const newField = field;
|
|
||||||
if (field.name === 'segments' || field.name === 'options') {
|
|
||||||
newField.disabled = isPaused;
|
|
||||||
}
|
|
||||||
return newField;
|
|
||||||
});
|
|
||||||
const sendButtonOptions = this.getSendButtonOptions();
|
const sendButtonOptions = this.getSendButtonOptions();
|
||||||
|
const fields = this.getPreparedFields(isPaused);
|
||||||
|
|
||||||
const sendingDisabled = !!(
|
const sendingDisabled = !!(
|
||||||
window.mailpoet_subscribers_limit_reached ||
|
window.mailpoet_subscribers_limit_reached ||
|
||||||
@@ -633,6 +662,7 @@ class NewsletterSendComponent extends Component {
|
|||||||
variant="secondary"
|
variant="secondary"
|
||||||
type="submit"
|
type="submit"
|
||||||
automationId="email-save-draft"
|
automationId="email-save-draft"
|
||||||
|
onClick={this.handleSaveDraft}
|
||||||
isDisabled={this.state.loading}
|
isDisabled={this.state.loading}
|
||||||
>
|
>
|
||||||
{MailPoet.I18n.t('saveDraftAndClose')}
|
{MailPoet.I18n.t('saveDraftAndClose')}
|
||||||
|
Reference in New Issue
Block a user