Hide stats link if newsletter not sent yet
[MAILPOET-2218]
This commit is contained in:
committed by
Jack Kitterhing
parent
4ce9f8b47e
commit
3917448ab5
@@ -27,8 +27,11 @@ const messages = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const SendingStatus = (props) => {
|
const SendingStatus = (props) => {
|
||||||
const newsletterId = props.match.params.id;
|
const [newsletter, setNewsletter] = React.useState({
|
||||||
const [newsletterSubject, setNewsletterSubject] = React.useState('');
|
id: props.match.params.id,
|
||||||
|
subject: '',
|
||||||
|
sent: false,
|
||||||
|
});
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
MailPoet.Ajax.post({
|
MailPoet.Ajax.post({
|
||||||
@@ -36,19 +39,22 @@ const SendingStatus = (props) => {
|
|||||||
endpoint: 'newsletters',
|
endpoint: 'newsletters',
|
||||||
action: 'get',
|
action: 'get',
|
||||||
data: {
|
data: {
|
||||||
id: newsletterId,
|
id: newsletter.id,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.done((res) => setNewsletterSubject(res.data.subject))
|
.done((res) => setNewsletter({
|
||||||
|
id: newsletter.id,
|
||||||
|
subject: res.data.subject,
|
||||||
|
sent: res.data.sent_at !== null,
|
||||||
|
}))
|
||||||
.fail((res) => MailPoet.Notice.showApiErrorNotice(res));
|
.fail((res) => MailPoet.Notice.showApiErrorNotice(res));
|
||||||
}, [newsletterId]);
|
}, [newsletter.id]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<h1>{MailPoet.I18n.t('sendingStatusTitle')}</h1>
|
<h1>{MailPoet.I18n.t('sendingStatusTitle')}</h1>
|
||||||
<StatsLink
|
<StatsLink
|
||||||
newsletterId={newsletterId}
|
newsletter={newsletter}
|
||||||
newsletterSubject={newsletterSubject}
|
|
||||||
/>
|
/>
|
||||||
<SendingStatusListing location={props.location} params={props.match.params} />
|
<SendingStatusListing location={props.location} params={props.match.params} />
|
||||||
</>
|
</>
|
||||||
@@ -99,17 +105,23 @@ SendingStatusListing.propTypes = {
|
|||||||
}).isRequired,
|
}).isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
const StatsLink = ({ newsletterId, newsletterSubject }) => {
|
const StatsLink = ({ newsletter }) => {
|
||||||
if (!newsletterId || !newsletterSubject) return null;
|
if (!newsletter.id || !newsletter.subject || !newsletter.sent) return null;
|
||||||
return <p><Link to={`/stats/${newsletterId}`}>{ newsletterSubject }</Link></p>;
|
return <p><Link to={`/stats/${newsletter.id}`}>{ newsletter.subject }</Link></p>;
|
||||||
};
|
};
|
||||||
StatsLink.propTypes = {
|
StatsLink.propTypes = {
|
||||||
newsletterId: PropTypes.string,
|
newsletter: PropTypes.shape({
|
||||||
newsletterSubject: PropTypes.string,
|
id: PropTypes.string,
|
||||||
|
subject: PropTypes.string,
|
||||||
|
sent: PropTypes.bool,
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
StatsLink.defaultProps = {
|
StatsLink.defaultProps = {
|
||||||
newsletterId: null,
|
newsletter: {
|
||||||
newsletterSubject: null,
|
id: null,
|
||||||
|
subject: null,
|
||||||
|
sent: false,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const ListingItem = ({
|
const ListingItem = ({
|
||||||
|
Reference in New Issue
Block a user