import MailPoet from 'mailpoet'; import React from 'react'; import ReactStringReplace from 'react-string-replace'; import CronStatus from './cron_status.jsx'; import QueueStatus from './queue_status.jsx'; function renderStatusMessage(status, error, link, linkBeacon, additionalInfo) { 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}

{additionalInfo ? (

{additionalInfo}

) : null}
); } function renderCronSection(data) { const status = data.cron.isReachable; const url = data.cron.url; const error = MailPoet.I18n.t('systemStatusCronConnectionUnsuccessfulInfo'); const additionalInfo = !status ? data.cron.pingResponse : null; return (

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

{url}

{renderStatusMessage(status, error, 'https://kb.mailpoet.com/article/231-sending-does-not-work', '5a0257ac2c7d3a272c0d7ad6', additionalInfo)}
); } 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)} ); } export default SystemStatus;