From a48b725c7d335e44a645d55b59a3ed435bab213c Mon Sep 17 00:00:00 2001 From: Sam Najian Date: Mon, 19 Dec 2022 17:07:27 +0100 Subject: [PATCH] Define pending newsletter message component [MAILPOET-4633] --- .../send/pending_newsletter_message.tsx | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 mailpoet/assets/js/src/newsletters/send/pending_newsletter_message.tsx diff --git a/mailpoet/assets/js/src/newsletters/send/pending_newsletter_message.tsx b/mailpoet/assets/js/src/newsletters/send/pending_newsletter_message.tsx new file mode 100644 index 0000000000..cc2a7b1828 --- /dev/null +++ b/mailpoet/assets/js/src/newsletters/send/pending_newsletter_message.tsx @@ -0,0 +1,57 @@ +import { useAction, useSelector } from '../../settings/store/hooks'; +import ReactStringReplace from 'react-string-replace'; +import { getLinkRegex, t } from 'common'; +import { useState } from '@wordpress/element'; + +export const PendingNewsletterMessage = ({ + toggleLoadingState, + updatePendingState, +}: { + toggleLoadingState: (loading: boolean) => void; + updatePendingState: (approved: boolean) => void; +}) => { + const getKeyActivationState = useSelector('getKeyActivationState'); + const getSettings = useSelector('getSettings'); + const [showRefreshButton, keepShowingRefresh] = useState(true); + // + const verifyMssKey = useAction('verifyMssKey'); + const recheckKey = async (e) => { + e.preventDefault(); + const state = getKeyActivationState(); + toggleLoadingState(true); + await verifyMssKey(state.key); + keepShowingRefresh(false); + toggleLoadingState(false); + updatePendingState( + !getSettings().mta.mailpoet_api_key_state.data.is_approved, + ); + }; + + return ( +
+ {ReactStringReplace( + t('pendingKeyApprovalNotice'), + getLinkRegex(), + (match) => ( + + {match} + + ), + )}{' '} + {showRefreshButton && + ReactStringReplace( + t('pendingKeyApprovalNoticeRefresh'), + getLinkRegex(), + (match) => ( + + {match} + + ), + )} +
+ ); +};