Fix prop types errors on newsletters listing page

[MAILPOET-2166]
This commit is contained in:
Rostislav Wolny
2019-07-08 14:56:39 +02:00
committed by M. Shull
parent 453fb4b7d6
commit fc18280ebb
3 changed files with 35 additions and 15 deletions

View File

@@ -14,7 +14,10 @@ const QueuePropType = PropTypes.shape({
const NewsletterPropType = PropTypes.shape({
id: PropTypes.number.isRequired,
queue: QueuePropType,
queue: PropTypes.oneOfType([
QueuePropType,
PropTypes.bool,
]),
});
const QueueSendingProgress = ({ queue }) => {

View File

@@ -225,27 +225,44 @@ const Statistics = ({ newsletter, isSent, currentTime }) => {
</div>
);
};
const StatisticsPropType = PropTypes.shape({
clicked: PropTypes.number,
opened: PropTypes.number,
unsubscribed: PropTypes.number,
revenue: PropTypes.shape({
count: PropTypes.number,
currency: PropTypes.string,
formatted: PropTypes.string,
value: PropTypes.number,
}),
});
const QueuePropType = PropTypes.shape({
status: PropTypes.string,
count_processed: PropTypes.string.isRequired,
count_total: PropTypes.string.isRequired,
created_at: PropTypes.string,
scheduled_at: PropTypes.string,
});
Statistics.propTypes = {
newsletter: PropTypes.shape({
id: PropTypes.number.isRequired,
queue: PropTypes.shape({
status: PropTypes.string,
count_processed: PropTypes.string.isRequired,
count_total: PropTypes.string.isRequired,
created_at: PropTypes.string,
scheduled_at: PropTypes.string,
}),
queue: PropTypes.oneOfType([
QueuePropType,
PropTypes.bool,
]),
total_sent: PropTypes.number,
statistics: PropTypes.shape({
clicked: PropTypes.number,
opened: PropTypes.number,
unsubscribed: PropTypes.number,
revenue: PropTypes.number,
}),
statistics: PropTypes.oneOfType([
StatisticsPropType,
PropTypes.bool,
]),
}).isRequired,
isSent: PropTypes.bool,
currentTime: PropTypes.string,
};
Statistics.defaultProps = {
isSent: undefined,
currentTime: undefined,

View File

@@ -330,7 +330,7 @@ class NewsletterListWelcome extends React.Component {
<td className="column" data-colname={MailPoet.I18n.t('statistics')}>
<Statistics
newsletter={newsletter}
isSent={newsletter.total_sent > 0 && newsletter.statistics}
isSent={newsletter.total_sent > 0 && !!newsletter.statistics}
/>
</td>
) : null }