diff --git a/assets/js/src/settings/pages/key_activation/key_activation.tsx b/assets/js/src/settings/pages/key_activation/key_activation.tsx
index 056d417f1e..4a7f385a1b 100644
--- a/assets/js/src/settings/pages/key_activation/key_activation.tsx
+++ b/assets/js/src/settings/pages/key_activation/key_activation.tsx
@@ -24,6 +24,10 @@ export default function KeyActivation() {
await setUnauthorizedAddresses(null);
};
+ const showFromAddressModal = state.fromAddressModalCanBeShown
+ && state.mssStatus === MssStatus.VALID_MSS_ACTIVE
+ && (!senderAddress || unauthorizedAddresses);
+
const verifyKey = async (event) => {
if (!state.key) {
notices.error(
{t('premiumTabNoKeyNotice')}
, { scroll: true });
@@ -36,14 +40,11 @@ export default function KeyActivation() {
premiumInstallationStatus: null,
});
MailPoet.Modal.loading(true);
- const mssStatus: MssStatus = (await verifyMssKey(state.key, isUserTriggered)) as any;
+ await verifyMssKey(state.key, isUserTriggered);
await verifyPremiumKey(state.key);
MailPoet.Modal.loading(false);
if (isUserTriggered) {
- const authorizedAddressNeeded = !senderAddress || unauthorizedAddresses;
- if (mssStatus === MssStatus.VALID_MSS_ACTIVE && authorizedAddressNeeded) {
- setState({ showFromAddressModal: true });
- }
+ setState({ fromAddressModalCanBeShown: true });
}
};
@@ -96,9 +97,9 @@ export default function KeyActivation() {
)}
- {state.showFromAddressModal && (
+ {showFromAddressModal && (
setState({ showFromAddressModal: false })}
+ onRequestClose={() => setState({ fromAddressModalCanBeShown: false })}
setAuthorizedAddress={setAuthorizedAddress}
/>
)}
diff --git a/assets/js/src/settings/store/actions.ts b/assets/js/src/settings/store/actions.ts
index ea97cedeb3..8c477614b2 100644
--- a/assets/js/src/settings/store/actions.ts
+++ b/assets/js/src/settings/store/actions.ts
@@ -63,11 +63,10 @@ export function* verifyMssKey(key: string, activateMssIfKeyValid: boolean) {
data: { key },
};
if (!success) {
- yield updateKeyActivationState({
+ return updateKeyActivationState({
mssStatus: MssStatus.INVALID,
mssMessage: error.join(' ') || null,
});
- return MssStatus.INVALID;
}
const fields: Partial = {
mssMessage: res.data.message || null,
@@ -92,8 +91,7 @@ export function* verifyMssKey(key: string, activateMssIfKeyValid: boolean) {
} else {
fields.mssStatus = MssStatus.VALID_MSS_NOT_ACTIVE;
}
- yield updateKeyActivationState(fields);
- return fields.mssStatus;
+ return updateKeyActivationState(fields);
}
export function* verifyPremiumKey(key: string) {
diff --git a/assets/js/src/settings/store/make_default_state.ts b/assets/js/src/settings/store/make_default_state.ts
index bff804919c..493c23b7fe 100644
--- a/assets/js/src/settings/store/make_default_state.ts
+++ b/assets/js/src/settings/store/make_default_state.ts
@@ -35,7 +35,7 @@ export default function makeDefaultState(window: any): State {
premiumStatus,
mssMessage: null,
premiumMessage: null,
- showFromAddressModal: false,
+ fromAddressModalCanBeShown: false,
premiumInstallationStatus: null,
key: data.premium.premium_key || data.mta.mailpoet_api_key,
};
diff --git a/assets/js/src/settings/store/types.ts b/assets/js/src/settings/store/types.ts
index bb8796feb1..bddaaee173 100644
--- a/assets/js/src/settings/store/types.ts
+++ b/assets/js/src/settings/store/types.ts
@@ -222,7 +222,7 @@ export type KeyActivationState = {
mssStatus: MssStatus
mssMessage: string
premiumInstallationStatus: PremiumInstallationStatus
- showFromAddressModal: boolean
+ fromAddressModalCanBeShown: boolean
}
export type State = {