diff --git a/assets/js/src/help/help.jsx b/assets/js/src/help/help.jsx index 8a2a7dbe9b..22babd178c 100644 --- a/assets/js/src/help/help.jsx +++ b/assets/js/src/help/help.jsx @@ -1,28 +1,32 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import { - HashRouter, Route, Redirect, Switch, -} from 'react-router-dom'; - +import MailPoet from 'mailpoet'; import KnowledgeBase from 'help/knowledge_base.jsx'; import SystemInfo from 'help/system_info.jsx'; import SystemStatus from 'help/system_status.jsx'; import YourPrivacy from 'help/your_privacy.jsx'; import { GlobalContext, useGlobalContextValue } from 'context/index.jsx'; import Notices from 'notices/notices.jsx'; +import RoutedTabs from '../common/tabs/routed_tabs'; +import Tab from '../common/tabs/tab'; const App = () => ( - - - - } /> - - - - - - + + + + + + + + + + + + + + + ); diff --git a/assets/js/src/help/knowledge_base.jsx b/assets/js/src/help/knowledge_base.jsx index 48634bf0ef..01ff8f06e3 100644 --- a/assets/js/src/help/knowledge_base.jsx +++ b/assets/js/src/help/knowledge_base.jsx @@ -1,14 +1,9 @@ import React from 'react'; import MailPoet from 'mailpoet'; -import Tabs from './tabs.jsx'; - function KnowledgeBase() { return ( -
- - - + <>

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

{MailPoet.I18n.t('knowledgeBaseButton')} -
+ ); } diff --git a/assets/js/src/help/queue_status.jsx b/assets/js/src/help/queue_status.jsx index 7c457cedae..d904cba91f 100644 --- a/assets/js/src/help/queue_status.jsx +++ b/assets/js/src/help/queue_status.jsx @@ -8,7 +8,7 @@ import TasksListDataRow from './tasks_list/tasks_list_data_row.jsx'; const QueueStatus = (props) => { const status = props.status_data; return ( -
+ <>

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

{
{MailPoet.I18n.t('completedTasks')}
(task.status === 'completed'))} /> -
+ ); }; diff --git a/assets/js/src/help/system_info.jsx b/assets/js/src/help/system_info.jsx index 11162882c4..7ea85b3919 100644 --- a/assets/js/src/help/system_info.jsx +++ b/assets/js/src/help/system_info.jsx @@ -1,7 +1,6 @@ import React from 'react'; import MailPoet from 'mailpoet'; import _ from 'underscore'; -import Tabs from './tabs.jsx'; function handleFocus(event) { event.target.select(); @@ -29,16 +28,13 @@ function printData(data) { function SystemInfo() { const systemInfoData = window.systemInfoData; return ( -
- - - -
+ <> +

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

{printData(systemInfoData)} -
+ ); } diff --git a/assets/js/src/help/system_status.jsx b/assets/js/src/help/system_status.jsx index d29dd43238..542e431557 100644 --- a/assets/js/src/help/system_status.jsx +++ b/assets/js/src/help/system_status.jsx @@ -3,7 +3,6 @@ import React from 'react'; import ReactStringReplace from 'react-string-replace'; import CronStatus from './cron_status.jsx'; import QueueStatus from './queue_status.jsx'; -import Tabs from './tabs.jsx'; function renderStatusMessage(status, error, link, linkBeacon, additionalInfo) { const noticeType = (status) ? 'success' : 'error'; @@ -63,16 +62,15 @@ 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; diff --git a/assets/js/src/help/tabs.jsx b/assets/js/src/help/tabs.jsx deleted file mode 100644 index 4b9b271fa1..0000000000 --- a/assets/js/src/help/tabs.jsx +++ /dev/null @@ -1,58 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { Link } from 'react-router-dom'; -import classNames from 'classnames'; -import MailPoet from 'mailpoet'; - -const tabs = [ - { - name: 'knowledgeBase', - label: MailPoet.I18n.t('tabKnowledgeBaseTitle'), - link: '/knowledgeBase', - }, - { - name: 'systemStatus', - label: MailPoet.I18n.t('tabSystemStatusTitle'), - link: '/systemStatus', - }, - { - name: 'systemInfo', - label: MailPoet.I18n.t('tabSystemInfoTitle'), - link: '/systemInfo', - }, - { - name: 'yourPrivacy', - label: MailPoet.I18n.t('tabYourPrivacyTitle'), - link: '/yourPrivacy', - }, -]; - -function Tabs(props) { - const tabLinks = tabs.map((tab) => { - const tabClasses = classNames( - 'nav-tab', - { 'nav-tab-active': (props.tab === tab.name) } - ); - - return ( - - { tab.label } - - ); - }); - - return ( -

- { tabLinks } -

- ); -} - -Tabs.propTypes = { tab: PropTypes.string }; -Tabs.defaultProps = { tab: 'knowledgeBase' }; - -export default Tabs; diff --git a/assets/js/src/help/your_privacy.jsx b/assets/js/src/help/your_privacy.jsx index b450876446..03de847af1 100644 --- a/assets/js/src/help/your_privacy.jsx +++ b/assets/js/src/help/your_privacy.jsx @@ -1,19 +1,15 @@ import React from 'react'; import MailPoet from 'mailpoet'; -import Tabs from './tabs.jsx'; - function YourPrivacy() { return ( -
- - + <>

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

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

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

{MailPoet.I18n.t('yourPrivacyButton')} -
+ ); }