diff --git a/assets/js/src/settings/pages/key_activation/index.tsx b/assets/js/src/settings/pages/key_activation/index.tsx
index 31285daf1f..1e4e209dd3 100644
--- a/assets/js/src/settings/pages/key_activation/index.tsx
+++ b/assets/js/src/settings/pages/key_activation/index.tsx
@@ -36,7 +36,7 @@ export default function KeyActivation() {
MailPoet.Modal.loading(false);
if (isTrusted) {
const authorizedAddressNeeded = !senderAddress || unauthorizedAddresses;
- if (mssStatus === 'valid_mss_active' && authorizedAddressNeeded) {
+ if (mssStatus === MssStatus.VALID_MSS_ACTIVE && authorizedAddressNeeded) {
setState({ showFromAddressModal: true });
}
}
diff --git a/assets/js/src/settings/pages/key_activation/messages/mss_messages.tsx b/assets/js/src/settings/pages/key_activation/messages/mss_messages.tsx
index b58fe7b136..f50494df02 100644
--- a/assets/js/src/settings/pages/key_activation/messages/mss_messages.tsx
+++ b/assets/js/src/settings/pages/key_activation/messages/mss_messages.tsx
@@ -1,6 +1,7 @@
import React from 'react';
import MailPoet from 'mailpoet';
import { useSelector } from 'settings/store/hooks';
+import { MssStatus } from 'settings/store/types';
const ActiveMessage = () => (
@@ -34,11 +35,11 @@ type Props = {
export default function MssMessages(props: Props) {
const { mssStatus } = useSelector('getKeyActivationState')();
switch (mssStatus) {
- case 'valid_mss_active':
+ case MssStatus.VALID_MSS_ACTIVE:
return
;
- case 'valid_mss_not_active':
+ case MssStatus.VALID_MSS_NOT_ACTIVE:
return
;
- case 'invalid':
+ case MssStatus.INVALID:
return
;
default:
return null;
diff --git a/assets/js/src/settings/pages/key_activation/messages/premium_installation_messages.tsx b/assets/js/src/settings/pages/key_activation/messages/premium_installation_messages.tsx
index b05fb8fba3..75283d854b 100644
--- a/assets/js/src/settings/pages/key_activation/messages/premium_installation_messages.tsx
+++ b/assets/js/src/settings/pages/key_activation/messages/premium_installation_messages.tsx
@@ -52,16 +52,16 @@ type Props = {
}
export default function PremiumInstallationMessages(props: Props) {
switch (props.installationStatus) {
- case 'install_installing':
+ case PremiumInstallationStatus.INSTALL_INSTALLING:
return
;
- case 'install_activating':
+ case PremiumInstallationStatus.INSTALL_ACTIVATING:
return (
<>
>
);
- case 'install_done':
+ case PremiumInstallationStatus.INSTALL_DONE:
return (
<>
@@ -69,14 +69,14 @@ export default function PremiumInstallationMessages(props: Props) {
>
);
- case 'install_installing_error':
+ case PremiumInstallationStatus.INSTALL_INSTALLING_ERROR:
return (
<>
>
);
- case 'install_activating_error':
+ case PremiumInstallationStatus.INSTALL_ACTIVATING_ERROR:
return (
<>
@@ -84,16 +84,16 @@ export default function PremiumInstallationMessages(props: Props) {
>
);
- case 'activate_activating':
+ case PremiumInstallationStatus.ACTIVATE_ACTIVATING:
return
;
- case 'activate_done':
+ case PremiumInstallationStatus.ACTIVATE_DONE:
return (
<>
>
);
- case 'activate_error':
+ case PremiumInstallationStatus.ACTIVATE_ERROR:
return (
<>
diff --git a/assets/js/src/settings/pages/key_activation/messages/premium_messages.tsx b/assets/js/src/settings/pages/key_activation/messages/premium_messages.tsx
index 0e1b914897..80facf0b81 100644
--- a/assets/js/src/settings/pages/key_activation/messages/premium_messages.tsx
+++ b/assets/js/src/settings/pages/key_activation/messages/premium_messages.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import MailPoet from 'mailpoet';
import { useSelector } from 'settings/store/hooks/index';
-import { PremiumInstallationStatus } from 'settings/store/types';
+import { PremiumInstallationStatus, PremiumStatus } from 'settings/store/types';
import PremiumInstallationMessages from './premium_installation_messages';
const ActiveMessage = () => (
@@ -61,16 +61,16 @@ export default function PremiumMessages(props: Props) {
const { premiumStatus: status } = useSelector('getKeyActivationState')();
return (
<>
- {status === 'valid_premium_plugin_active' &&
}
- {status === 'valid_premium_plugin_not_active' && (
+ {status === PremiumStatus.VALID_PREMIUM_PLUGIN_ACTIVE &&
}
+ {status === PremiumStatus.VALID_PREMIUM_PLUGIN_NOT_ACTIVE && (
)}
- {status === 'valid_premium_plugin_not_installed' && (
+ {status === PremiumStatus.VALID_PREMIUM_PLUGIN_NOT_INSTALLED && (
)}
- {status === 'valid_premium_plugin_being_installed' &&
}
- {status === 'valid_premium_plugin_being_activated' &&
}
- {status === 'invalid' &&
}
+ {status === PremiumStatus.VALID_PREMIUM_PLUGIN_BEING_INSTALLED &&
}
+ {status === PremiumStatus.VALID_PREMIUM_PLUGIN_BEING_ACTIVATED &&
}
+ {status === PremiumStatus.INVALID &&
}
>
);
diff --git a/assets/js/src/settings/store/actions.ts b/assets/js/src/settings/store/actions.ts
index 12c0901516..0979c5d0bd 100644
--- a/assets/js/src/settings/store/actions.ts
+++ b/assets/js/src/settings/store/actions.ts
@@ -1,7 +1,9 @@
import { select } from '@wordpress/data';
import MailPoet from 'mailpoet';
import { STORE_NAME } from '.';
-import { Action, KeyActivationState, MssStatus } from './types';
+import {
+ Action, KeyActivationState, MssStatus, PremiumStatus, PremiumInstallationStatus,
+} from './types';
export function setSetting(path: string[], value: any): Action {
return { type: 'SET_SETTING', path, value };
@@ -58,7 +60,7 @@ export function* verifyMssKey(key: string, activateMssIfKeyValid: boolean) {
};
if (!success) {
return updateKeyActivationState({
- mssStatus: 'invalid',
+ mssStatus: MssStatus.INVALID,
mssMessage: error.join(' ') || null,
});
}
@@ -77,16 +79,16 @@ export function* verifyMssKey(key: string, activateMssIfKeyValid: boolean) {
},
};
if (!call.success) {
- fields.mssStatus = 'valid_mss_not_active';
+ fields.mssStatus = MssStatus.VALID_MSS_NOT_ACTIVE;
} else {
yield setSetting(['mta_group'], 'mailpoet');
yield setSetting(['mta', 'method'], 'MailPoet');
yield setSetting(['mta', 'mailpoet_api_key'], key);
yield setSetting(['signup_confirmation', 'enabled'], '1');
- fields.mssStatus = 'valid_mss_active';
+ fields.mssStatus = MssStatus.VALID_MSS_ACTIVE;
}
} else {
- fields.mssStatus = 'valid_mss_not_active';
+ fields.mssStatus = MssStatus.VALID_MSS_NOT_ACTIVE;
}
yield updateKeyActivationState(fields);
return fields.mssStatus;
@@ -108,7 +110,7 @@ export function* verifyPremiumKey(key: string) {
}
);
return updateKeyActivationState({
- premiumStatus: 'invalid',
+ premiumStatus: PremiumStatus.INVALID,
premiumMessage: error.join(' ') || null,
});
}
@@ -133,7 +135,7 @@ export function* verifyPremiumKey(key: string) {
}
if (pluginInstalled && pluginActive) {
- yield updateKeyActivationState({ premiumStatus: 'valid_premium_plugin_active' });
+ yield updateKeyActivationState({ premiumStatus: PremiumStatus.VALID_PREMIUM_PLUGIN_ACTIVE });
}
MailPoet.trackEvent(
@@ -148,11 +150,17 @@ export function* verifyPremiumKey(key: string) {
}
export function* activatePremiumPlugin(isAfterInstall) {
- const doneStatus = isAfterInstall ? 'install_done' : 'activate_done';
- const errorStatus = isAfterInstall ? 'install_activating_error' : 'activate_error';
+ const doneStatus = isAfterInstall
+ ? PremiumInstallationStatus.INSTALL_DONE
+ : PremiumInstallationStatus.ACTIVATE_DONE;
+ const errorStatus = isAfterInstall
+ ? PremiumInstallationStatus.INSTALL_ACTIVATING_ERROR
+ : PremiumInstallationStatus.ACTIVATE_ERROR;
yield updateKeyActivationState({
- premiumStatus: 'valid_premium_plugin_being_activated',
- premiumInstallationStatus: isAfterInstall ? 'install_activating' : 'activate_activating',
+ premiumStatus: PremiumStatus.VALID_PREMIUM_PLUGIN_BEING_ACTIVATED,
+ premiumInstallationStatus: isAfterInstall
+ ? PremiumInstallationStatus.INSTALL_ACTIVATING
+ : PremiumInstallationStatus.ACTIVATE_ACTIVATING,
});
const call = yield {
type: 'CALL_API',
@@ -169,8 +177,8 @@ export function* activatePremiumPlugin(isAfterInstall) {
export function* installPremiumPlugin() {
yield updateKeyActivationState({
- premiumStatus: 'valid_premium_plugin_being_installed',
- premiumInstallationStatus: 'install_installing',
+ premiumStatus: PremiumStatus.VALID_PREMIUM_PLUGIN_BEING_INSTALLED,
+ premiumInstallationStatus: PremiumInstallationStatus.INSTALL_INSTALLING,
});
const call = yield {
type: 'CALL_API',
@@ -178,7 +186,9 @@ export function* installPremiumPlugin() {
action: 'installPlugin',
};
if (call && !call.success) {
- yield updateKeyActivationState({ premiumInstallationStatus: 'install_installing_error' });
+ yield updateKeyActivationState({
+ premiumInstallationStatus: PremiumInstallationStatus.INSTALL_INSTALLING_ERROR,
+ });
return false;
}
return yield* activatePremiumPlugin(true);
diff --git a/assets/js/src/settings/store/create_reducer.ts b/assets/js/src/settings/store/create_reducer.ts
index 4409ee6ba9..4e9b09fa97 100644
--- a/assets/js/src/settings/store/create_reducer.ts
+++ b/assets/js/src/settings/store/create_reducer.ts
@@ -1,5 +1,7 @@
import _ from 'lodash';
-import { State, Action, KeyActivationState } from './types';
+import {
+ State, Action, KeyActivationState, MssStatus, PremiumStatus,
+} from './types';
export default function createReducer(defaultValue: State) {
let keyActivation: KeyActivationState;
@@ -20,8 +22,8 @@ export default function createReducer(defaultValue: State) {
keyActivation.isKeyValid = null;
if (keyActivation.mssStatus !== null && keyActivation.premiumStatus !== null) {
keyActivation.isKeyValid = (
- keyActivation.mssStatus !== 'invalid'
- || keyActivation.premiumStatus !== 'invalid'
+ keyActivation.mssStatus !== MssStatus.INVALID
+ || keyActivation.premiumStatus !== PremiumStatus.INVALID
);
}
return { ...state, keyActivation };
diff --git a/assets/js/src/settings/store/make_default_state.ts b/assets/js/src/settings/store/make_default_state.ts
index 99aad33586..a450b645c4 100644
--- a/assets/js/src/settings/store/make_default_state.ts
+++ b/assets/js/src/settings/store/make_default_state.ts
@@ -19,7 +19,7 @@ export default function makeDefaultState(window: any): State {
const mssStatus = getMssStatus(flags, data);
let isKeyValid = null;
if (mssStatus !== null || premiumStatus !== null) {
- isKeyValid = mssStatus !== 'invalid' || premiumStatus !== 'invalid';
+ isKeyValid = mssStatus !== MssStatus.INVALID || premiumStatus !== PremiumStatus.INVALID;
}
const keyActivation = {
mssStatus,
@@ -41,19 +41,19 @@ function getPremiumStatus(flags): PremiumStatus {
const pluginInstalled = flags.premiumPluginInstalled;
const pluginActive = !!MailPoet.premiumVersion;
if (!keyValid) {
- return 'invalid';
+ return PremiumStatus.INVALID;
}
if (pluginActive) {
- return 'valid_premium_plugin_active';
+ return PremiumStatus.VALID_PREMIUM_PLUGIN_ACTIVE;
}
return pluginInstalled
- ? 'valid_premium_plugin_not_active'
- : 'valid_premium_plugin_not_installed';
+ ? PremiumStatus.VALID_PREMIUM_PLUGIN_NOT_ACTIVE
+ : PremiumStatus.VALID_PREMIUM_PLUGIN_NOT_INSTALLED;
}
function getMssStatus(flags, data): MssStatus {
const keyValid = flags.mssKeyValid;
- if (!keyValid) return 'invalid';
+ if (!keyValid) return MssStatus.INVALID;
const mssActive = data.mta.method === 'MailPoet';
- return mssActive ? 'valid_mss_active' : 'valid_mss_not_active';
+ return mssActive ? MssStatus.VALID_MSS_ACTIVE : MssStatus.VALID_MSS_NOT_ACTIVE;
}
diff --git a/assets/js/src/settings/store/types.ts b/assets/js/src/settings/store/types.ts
index 9cfa8524dc..db4296b1dd 100644
--- a/assets/js/src/settings/store/types.ts
+++ b/assets/js/src/settings/store/types.ts
@@ -186,28 +186,31 @@ type Page = {
}
}
-export type PremiumStatus =
- | 'invalid'
- | 'valid_premium_plugin_not_installed'
- | 'valid_premium_plugin_not_active'
- | 'valid_premium_plugin_active'
- | 'valid_premium_plugin_being_installed'
- | 'valid_premium_plugin_being_activated'
+export enum PremiumStatus {
+ INVALID,
+ VALID_PREMIUM_PLUGIN_NOT_INSTALLED,
+ VALID_PREMIUM_PLUGIN_NOT_ACTIVE,
+ VALID_PREMIUM_PLUGIN_ACTIVE,
+ VALID_PREMIUM_PLUGIN_BEING_INSTALLED,
+ VALID_PREMIUM_PLUGIN_BEING_ACTIVATED,
+}
-export type MssStatus =
- | 'invalid'
- | 'valid_mss_not_active'
- | 'valid_mss_active'
+export enum MssStatus {
+ INVALID,
+ VALID_MSS_NOT_ACTIVE,
+ VALID_MSS_ACTIVE,
+}
-export type PremiumInstallationStatus =
- | 'install_installing'
- | 'install_activating'
- | 'install_done'
- | 'install_installing_error'
- | 'install_activating_error'
- | 'activate_activating'
- | 'activate_done'
- | 'activate_error'
+export enum PremiumInstallationStatus {
+ INSTALL_INSTALLING,
+ INSTALL_ACTIVATING,
+ INSTALL_DONE,
+ INSTALL_INSTALLING_ERROR,
+ INSTALL_ACTIVATING_ERROR,
+ ACTIVATE_ACTIVATING,
+ ACTIVATE_DONE,
+ ACTIVATE_ERROR,
+}
export type KeyActivationState = {
key: string