From 7fe1d30cb7be1211909a4b6486eb10fbe8273afe Mon Sep 17 00:00:00 2001 From: Amine Ben hammou Date: Fri, 20 Mar 2020 04:10:31 +0100 Subject: [PATCH] Add reinstall button --- .../js/src/settings/pages/advanced/index.tsx | 2 ++ .../src/settings/pages/advanced/reinstall.tsx | 34 +++++++++++++++++++ assets/js/src/settings/store/actions.ts | 15 ++++++++ assets/js/src/settings/store/controls.ts | 7 ++++ 4 files changed, 58 insertions(+) create mode 100644 assets/js/src/settings/pages/advanced/reinstall.tsx diff --git a/assets/js/src/settings/pages/advanced/index.tsx b/assets/js/src/settings/pages/advanced/index.tsx index 3aa5c075c8..62680cfc68 100644 --- a/assets/js/src/settings/pages/advanced/index.tsx +++ b/assets/js/src/settings/pages/advanced/index.tsx @@ -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() { + ); } diff --git a/assets/js/src/settings/pages/advanced/reinstall.tsx b/assets/js/src/settings/pages/advanced/reinstall.tsx new file mode 100644 index 0000000000..5161ac4180 --- /dev/null +++ b/assets/js/src/settings/pages/advanced/reinstall.tsx @@ -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(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) =>

{err}

), { scroll: true }); + } else { + window.location.href = 'admin.php?page=mailpoet-newsletters'; + } + } + }; + return ( + <> +