diff --git a/assets/js/src/newsletters/automatic_emails/listings.jsx b/assets/js/src/newsletters/automatic_emails/listings.jsx
index 8b09e64896..b45319286e 100644
--- a/assets/js/src/newsletters/automatic_emails/listings.jsx
+++ b/assets/js/src/newsletters/automatic_emails/listings.jsx
@@ -5,6 +5,7 @@ import ListingHeading from 'newsletters/listings/heading.jsx';
import FeatureAnnouncement from 'announcements/feature_announcement.jsx';
import { checkMailerStatus, addStatsCTAAction } from 'newsletters/listings/utils.jsx';
import Statistics from 'newsletters/listings/statistics.jsx';
+import NewsletterTypes from 'newsletters/types.jsx';
import SubscribersLimitNotice from 'notices/subscribers_limit_notice.jsx';
import classNames from 'classnames';
import MailPoet from 'mailpoet';
@@ -165,6 +166,7 @@ class Listings extends React.Component {
super(props);
this.state = {
eventCounts: {},
+ newslettersCount: undefined,
};
this.afterGetItems = this.afterGetItems.bind(this);
}
@@ -384,23 +386,37 @@ class Listings extends React.Component {
{this.renderWarning()}
-
+ {this.state.newslettersCount === 0 && (
+ type.slug === 'woocommerce'}
+ showHeader={false}
+ />
+ )}
+ {this.state.newslettersCount !== 0 && (
+ {
+ if (!state.loading) {
+ const total = state.groups.reduce((count, group) => (count + group.count), 0);
+ this.setState({ newslettersCount: total });
+ }
+ this.afterGetItems(state);
+ }}
+ />
+ )}
);
}
diff --git a/assets/js/src/newsletters/listings/notification.jsx b/assets/js/src/newsletters/listings/notification.jsx
index 18af0aa299..9419b14b53 100644
--- a/assets/js/src/newsletters/listings/notification.jsx
+++ b/assets/js/src/newsletters/listings/notification.jsx
@@ -11,6 +11,7 @@ import {
checkCronStatus,
checkMailerStatus,
} from 'newsletters/listings/utils.jsx';
+import NewsletterTypes from 'newsletters/types.jsx';
import classNames from 'classnames';
import MailPoet from 'mailpoet';
@@ -171,6 +172,13 @@ class NewsletterListNotification extends React.Component {
}).isRequired,
};
+ constructor(props) {
+ super(props);
+ this.state = {
+ newslettersCount: undefined,
+ };
+ }
+
updateStatus = (e) => {
// make the event persist so that we can still override the selected value
// in the ajax callback
@@ -343,23 +351,38 @@ class NewsletterListNotification extends React.Component {
- { checkMailerStatus(state); checkCronStatus(state); }}
- />
+ {this.state.newslettersCount === 0 && (
+ type.slug === 'notification'}
+ showHeader={false}
+ />
+ )}
+ {this.state.newslettersCount !== 0 && (
+ {
+ if (!state.loading) {
+ const total = state.groups.reduce((count, group) => (count + group.count), 0);
+ this.setState({ newslettersCount: total });
+ }
+ checkMailerStatus(state);
+ checkCronStatus(state);
+ }}
+ />
+ )}
);
}
diff --git a/assets/js/src/newsletters/listings/standard.jsx b/assets/js/src/newsletters/listings/standard.jsx
index 6bb0a2608d..819d64dd26 100644
--- a/assets/js/src/newsletters/listings/standard.jsx
+++ b/assets/js/src/newsletters/listings/standard.jsx
@@ -15,6 +15,7 @@ import {
checkCronStatus,
checkMailerStatus,
} from 'newsletters/listings/utils.jsx';
+import NewsletterTypes from 'newsletters/types.jsx';
import SubscribersLimitNotice from 'notices/subscribers_limit_notice.jsx';
import { GlobalContext } from 'context/index.jsx';
@@ -183,6 +184,13 @@ class NewsletterListStandard extends React.Component {
}).isRequired,
};
+ constructor(props) {
+ super(props);
+ this.state = {
+ newslettersCount: undefined,
+ };
+ }
+
renderItem = (newsletter, actions, meta) => {
const rowClasses = classNames(
'manage-column',
@@ -237,23 +245,38 @@ class NewsletterListStandard extends React.Component {
- { checkMailerStatus(state); checkCronStatus(state); }}
- />
+ {this.state.newslettersCount === 0 && (
+ type.slug === 'standard'}
+ showHeader={false}
+ />
+ )}
+ {this.state.newslettersCount !== 0 && (
+ {
+ if (!state.loading) {
+ const total = state.groups.reduce((count, group) => (count + group.count), 0);
+ this.setState({ newslettersCount: total });
+ }
+ checkMailerStatus(state);
+ checkCronStatus(state);
+ }}
+ />
+ )}
);
}
diff --git a/assets/js/src/newsletters/listings/welcome.jsx b/assets/js/src/newsletters/listings/welcome.jsx
index 4d1f544f70..a591507d6e 100644
--- a/assets/js/src/newsletters/listings/welcome.jsx
+++ b/assets/js/src/newsletters/listings/welcome.jsx
@@ -13,6 +13,7 @@ import {
checkCronStatus,
checkMailerStatus,
} from 'newsletters/listings/utils.jsx';
+import NewsletterTypes from 'newsletters/types.jsx';
import SubscribersLimitNotice from 'notices/subscribers_limit_notice.jsx';
import classNames from 'classnames';
@@ -166,6 +167,13 @@ class NewsletterListWelcome extends React.Component {
}).isRequired,
};
+ constructor(props) {
+ super(props);
+ this.state = {
+ newslettersCount: undefined,
+ };
+ }
+
updateStatus = (e) => {
// make the event persist so that we can still override the selected value
// in the ajax callback
@@ -359,23 +367,38 @@ class NewsletterListWelcome extends React.Component {
- { checkMailerStatus(state); checkCronStatus(state); }}
- />
+ {this.state.newslettersCount === 0 && (
+ type.slug === 'welcome'}
+ showHeader={false}
+ />
+ )}
+ {this.state.newslettersCount !== 0 && (
+ {
+ if (!state.loading) {
+ const total = state.groups.reduce((count, group) => (count + group.count), 0);
+ this.setState({ newslettersCount: total });
+ }
+ checkMailerStatus(state);
+ checkCronStatus(state);
+ }}
+ />
+ )}
);
}