Use notices to show errors
This commit is contained in:
committed by
M. Shull
parent
1cd0b0696a
commit
abfd00fd6d
@@ -9,10 +9,7 @@ import { CronMixin, MailerMixin } from 'newsletters/listings/mixins.jsx';
|
|||||||
|
|
||||||
const SendingStatus = props => {
|
const SendingStatus = props => {
|
||||||
const newsletterId = props.match.params.id;
|
const newsletterId = props.match.params.id;
|
||||||
const [state, setState] = React.useState({
|
const [newsletterSubject, setNewsletterSubject] = React.useState('');
|
||||||
error: null,
|
|
||||||
newsletterSubject: null,
|
|
||||||
});
|
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
MailPoet.Ajax.post({
|
MailPoet.Ajax.post({
|
||||||
@@ -23,26 +20,24 @@ const SendingStatus = props => {
|
|||||||
id: newsletterId,
|
id: newsletterId,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.done(res => setState({
|
.done(res => setNewsletterSubject(res.data.subject))
|
||||||
error: null,
|
.fail((res) => {
|
||||||
newsletterSubject: res.data.subject,
|
setNewsletterSubject('');
|
||||||
}))
|
MailPoet.Notice.error(
|
||||||
.fail(() => setState({
|
res.errors.map(error => error.message),
|
||||||
newsletterSubject: null,
|
{ scroll: true }
|
||||||
error: 'loadingNewsletterError',
|
);
|
||||||
}));
|
});
|
||||||
}, [newsletterId]);
|
}, [newsletterId]);
|
||||||
|
|
||||||
const {error, newsletterSubject} = state;
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<h1>{MailPoet.I18n.t('sendingStatusTitle')}</h1>
|
<h1>{MailPoet.I18n.t('sendingStatusTitle')}</h1>
|
||||||
<LoadingError error={error} />
|
|
||||||
<StatsLink
|
<StatsLink
|
||||||
newsletterId={newsletterId}
|
newsletterId={newsletterId}
|
||||||
newsletterSubject={newsletterSubject}
|
newsletterSubject={newsletterSubject}
|
||||||
/>
|
/>
|
||||||
{newsletterSubject && <Listing
|
<Listing
|
||||||
limit={window.mailpoet_listing_per_page}
|
limit={window.mailpoet_listing_per_page}
|
||||||
location={props.location}
|
location={props.location}
|
||||||
params={props.match.params}
|
params={props.match.params}
|
||||||
@@ -58,7 +53,7 @@ const SendingStatus = props => {
|
|||||||
MailerMixin.checkMailerStatus(state);
|
MailerMixin.checkMailerStatus(state);
|
||||||
CronMixin.checkCronStatus(state);
|
CronMixin.checkCronStatus(state);
|
||||||
}}
|
}}
|
||||||
/> }
|
/>
|
||||||
</Fragment>
|
</Fragment>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -71,18 +66,6 @@ SendingStatus.propTypes = {
|
|||||||
}).isRequired,
|
}).isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
const LoadingError = ({error}) => {
|
|
||||||
if (!error) return null;
|
|
||||||
return (
|
|
||||||
<div className="notice notice-error">
|
|
||||||
<p>{ MailPoet.I18n.t(error) }</p>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
LoadingError.propTypes = {
|
|
||||||
error: PropTypes.string,
|
|
||||||
};
|
|
||||||
|
|
||||||
const StatsLink = ({newsletterId, newsletterSubject}) => {
|
const StatsLink = ({newsletterId, newsletterSubject}) => {
|
||||||
if (!newsletterId || !newsletterSubject) return null;
|
if (!newsletterId || !newsletterSubject) return null;
|
||||||
if (window.mailpoet_premium_active) {
|
if (window.mailpoet_premium_active) {
|
||||||
|
@@ -356,7 +356,6 @@
|
|||||||
'unprocessed': _x('Unprocessed', 'status when the sending of a newsletter has not been processed'),
|
'unprocessed': _x('Unprocessed', 'status when the sending of a newsletter has not been processed'),
|
||||||
'sent': _x('Sent', 'status when a newsletter has been sent'),
|
'sent': _x('Sent', 'status when a newsletter has been sent'),
|
||||||
'failed': _x('Failed', 'status when the sending of a newsletter has failed'),
|
'failed': _x('Failed', 'status when the sending of a newsletter has failed'),
|
||||||
'loadingNewsletterError': __('An error occured while loading the newsletter.'),
|
|
||||||
'noSendingTaskFound': __('No sending task found.')
|
'noSendingTaskFound': __('No sending task found.')
|
||||||
}) %>
|
}) %>
|
||||||
<% endblock %>
|
<% endblock %>
|
||||||
|
Reference in New Issue
Block a user