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({ const NewsletterPropType = PropTypes.shape({
id: PropTypes.number.isRequired, id: PropTypes.number.isRequired,
queue: QueuePropType, queue: PropTypes.oneOfType([
QueuePropType,
PropTypes.bool,
]),
}); });
const QueueSendingProgress = ({ queue }) => { const QueueSendingProgress = ({ queue }) => {

View File

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

View File

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