Add and display global key status

[MAILPOET-2431]
This commit is contained in:
Jan Jakeš
2019-12-10 15:12:19 +01:00
committed by Jack Kitterhing
parent e569a90ad8
commit f73a7e0d5b
3 changed files with 54 additions and 15 deletions

View File

@@ -0,0 +1,23 @@
import PropTypes from 'prop-types';
import React from 'react';
import MailPoet from 'mailpoet';
const keyValidMessage = (
<div className="mailpoet_success_item mailpoet_success">
{MailPoet.I18n.t('premiumTabKeyValidMessage')}
</div>
);
const keyNotValidMessage = (
<div className="mailpoet_error_item mailpoet_error">
{MailPoet.I18n.t('premiumTabKeyNotValidMessage')}
</div>
);
const KeyMessages = (props) => (props.keyValid ? keyValidMessage : keyNotValidMessage);
KeyMessages.propTypes = {
keyValid: PropTypes.bool.isRequired,
};
export default KeyMessages;

View File

@@ -1,7 +1,8 @@
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { useState } from 'react'; import React, { useMemo, useState } from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import MailPoet from 'mailpoet'; import MailPoet from 'mailpoet';
import KeyMessages from 'settings/premium_tab/messages/key_messages.jsx';
import MssMessages from 'settings/premium_tab/messages/mss_messages.jsx'; import MssMessages from 'settings/premium_tab/messages/mss_messages.jsx';
import { PremiumStatus, PremiumMessages } from 'settings/premium_tab/messages/premium_messages.jsx'; import { PremiumStatus, PremiumMessages } from 'settings/premium_tab/messages/premium_messages.jsx';
import { PremiumInstallationStatus } from 'settings/premium_tab/messages/premium_installation_messages.jsx'; import { PremiumInstallationStatus } from 'settings/premium_tab/messages/premium_installation_messages.jsx';
@@ -32,6 +33,14 @@ const PremiumTab = (props) => {
let premiumActivateUrl = props.premiumActivateUrl; let premiumActivateUrl = props.premiumActivateUrl;
// key is considered valid if either Premium or MSS check passes
const keyValid = useMemo(() => {
if (premiumStatus > PremiumStatus.KEY_INVALID || mssKeyValid) {
return true;
}
return (premiumStatus === null || mssKeyValid === null) ? null : false;
}, [premiumStatus, mssKeyValid]);
const activatePremiumPlugin = async (isAfterInstall = false) => { const activatePremiumPlugin = async (isAfterInstall = false) => {
const status = PremiumInstallationStatus; const status = PremiumInstallationStatus;
const activateStatus = isAfterInstall ? status.INSTALL_ACTIVATING : status.ACTIVATE_ACTIVATING; const activateStatus = isAfterInstall ? status.INSTALL_ACTIVATING : status.ACTIVATE_ACTIVATING;
@@ -157,20 +166,25 @@ const PremiumTab = (props) => {
{MailPoet.I18n.t('premiumTabVerifyButton')} {MailPoet.I18n.t('premiumTabVerifyButton')}
</button> </button>
</div> </div>
{mssKeyValid !== null && ( {keyValid !== null && (
<MssMessages <>
keyValid={mssKeyValid} <KeyMessages keyValid={keyValid} />
keyMessage={mssKeyMessage} {mssKeyValid !== null && (
/> <MssMessages
)} keyValid={mssKeyValid}
{premiumStatus !== null && ( keyMessage={mssKeyMessage}
<PremiumMessages />
keyStatus={premiumStatus} )}
keyMessage={premiumMessage} {premiumStatus !== null && (
installationStatus={premiumInstallationStatus} <PremiumMessages
installationCallback={installPremiumPlugin} keyStatus={premiumStatus}
activationCallback={() => activatePremiumPlugin()} keyMessage={premiumMessage}
/> installationStatus={premiumInstallationStatus}
installationCallback={installPremiumPlugin}
activationCallback={() => activatePremiumPlugin()}
/>
)}
</>
)} )}
</td> </td>
</tr> </tr>

View File

@@ -302,6 +302,8 @@
'premiumTabDescription': __('This key is used to validate your free or paid subscription. Paying customers will enjoy automatic upgrades of their Premium plugin and access to faster support.', 'mailpoet'), 'premiumTabDescription': __('This key is used to validate your free or paid subscription. Paying customers will enjoy automatic upgrades of their Premium plugin and access to faster support.', 'mailpoet'),
'premiumTabNoKeyNotice': __('Please specify a license key before validating it.', 'mailpoet'), 'premiumTabNoKeyNotice': __('Please specify a license key before validating it.', 'mailpoet'),
'premiumTabVerifyButton': __('Verify', 'mailpoet'), 'premiumTabVerifyButton': __('Verify', 'mailpoet'),
'premiumTabKeyValidMessage': __('Your key is valid', 'mailpoet'),
'premiumTabKeyNotValidMessage': __('Your key is not valid', 'mailpoet'),
'premiumTabPremiumActiveMessage': __('MailPoet Premium is active', 'mailpoet'), 'premiumTabPremiumActiveMessage': __('MailPoet Premium is active', 'mailpoet'),
'premiumTabPremiumInstallingMessage': __('MailPoet Premium plugin is being installed', 'mailpoet'), 'premiumTabPremiumInstallingMessage': __('MailPoet Premium plugin is being installed', 'mailpoet'),
'premiumTabPremiumActivatingMessage': __('MailPoet Premium plugin is being activated', 'mailpoet'), 'premiumTabPremiumActivatingMessage': __('MailPoet Premium plugin is being activated', 'mailpoet'),