Add reinstall button

This commit is contained in:
Amine Ben hammou
2020-03-20 04:10:31 +01:00
committed by Veljko V
parent 9e3826a46a
commit 7fe1d30cb7
4 changed files with 58 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ import Transactional from './transactional';
import InactiveSubscribers from './inactive_subscribers';
import ShareData from './share_data';
import Captcha from './captcha';
import Reinstall from './reinstall';
export default function Advanced() {
return (
@@ -19,6 +20,7 @@ export default function Advanced() {
<InactiveSubscribers />
<ShareData />
<Captcha />
<Reinstall />
</div>
);
}

View File

@@ -0,0 +1,34 @@
import React from 'react';
import { t } from 'common/functions';
import { GlobalContext } from 'context';
import { useAction } from 'settings/store/hooks';
import { Label, Inputs } from 'settings/components';
export default function Reinstall() {
const reinstall = useAction('reinstall');
const { notices } = React.useContext<any>(GlobalContext);
const onClick = async () => {
if (window.confirm(t('reinstallConfirmation'))) { // eslint-disable-line
type Result = { type: 'SAVE_FAILED' | 'SAVE_DONE', error?: any }
const action = (await reinstall()) as any as Result;
if (action.type === 'SAVE_FAILED') {
notices.error(action.error.map((err) => <p>{err}</p>), { scroll: true });
} else {
window.location.href = 'admin.php?page=mailpoet-newsletters';
}
}
};
return (
<>
<Label
title={t('reinstallTitle')}
description={t('reinstallDescription')}
htmlFor=""
/>
<Inputs>
<button type="button" className="button" onClick={onClick}>{t('reinstallNow')}</button>
</Inputs>
</>
);
}

View File

@@ -188,3 +188,18 @@ export function* installPremiumPlugin() {
}
return yield* activatePremiumPlugin(true);
}
export function* reinstall() {
MailPoet.Modal.loading(true);
const { success, error } = yield {
type: 'CALL_API',
endpoint: 'setup',
action: 'reset',
};
MailPoet.Modal.loading(false);
if (!success) {
return { type: 'SAVE_FAILED', error };
}
yield { type: 'TRACK_REINSTALLED' };
return { type: 'SAVE_DONE' };
}

View File

@@ -31,3 +31,10 @@ export function TRACK_SETTINGS_SAVED() {
}
MailPoet.trackEvent('User has saved Settings', data);
}
export function TRACK_REINSTALLED() {
MailPoet.trackEvent(
'User has reinstalled MailPoet via Settings',
{ 'MailPoet Free version': MailPoet.version }
);
}