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 ( + <> +