import MailPoet from 'mailpoet'; import React from 'react'; import ReactStringReplace from 'react-string-replace'; import Tabs from './tabs.jsx'; function renderStatusMessage(status, error, link) { const noticeType = (status) ? 'success' : 'error'; let noticeMessage = (status) ? MailPoet.I18n.t('systemStatusConnectionSuccessful') : `${MailPoet.I18n.t('systemStatusConnectionUnsuccessful')} ${error}`; if (link) { noticeMessage = ReactStringReplace( noticeMessage, /\[link\](.*?)\[\/link\]/g, match => ( { match } ) ); } return (

{noticeMessage}

); } function renderCronSection(data) { const status = data.cron.isReachable; const url = data.cron.url; return (

{MailPoet.I18n.t('systemStatusCronTitle')}

{url}

{renderStatusMessage(status, MailPoet.I18n.t('systemStatusCronConnectionUnsuccessfulInfo'), '//beta.docs.mailpoet.com/article/231-sending-does-not-work')}
); } function renderMSSSection(data) { if (!data.mss.enabled) return undefined; const status = data.mss.enabled.isReachable; return (

{MailPoet.I18n.t('systemStatusMSSTitle')}

{renderStatusMessage(status, MailPoet.I18n.t('systemStatusMSSConnectionUnsuccessfulInfo'), false)}
); } function SystemStatus() { const systemStatusData = window.systemStatusData; return (

{systemStatusData.mss.enabled ? MailPoet.I18n.t('systemStatusIntroCronMSS') : MailPoet.I18n.t('systemStatusIntroCron')}

{renderCronSection(systemStatusData)} {renderMSSSection(systemStatusData)}
); } module.exports = SystemStatus;