diff --git a/assets/css/src/settings.scss b/assets/css/src/settings.scss index e7e4b6c971..70594afbe9 100644 --- a/assets/css/src/settings.scss +++ b/assets/css/src/settings.scss @@ -37,3 +37,7 @@ .mailpoet-settings-inputs .regular-text p { font-size: 14px; } + +.mailpoet-settings-grid .mailpoet_error_item:before { + content: '✗ '; +} \ No newline at end of file diff --git a/assets/js/src/settings/pages/basics/index.tsx b/assets/js/src/settings/pages/basics/index.tsx index 66b7256c21..26f311a1f5 100644 --- a/assets/js/src/settings/pages/basics/index.tsx +++ b/assets/js/src/settings/pages/basics/index.tsx @@ -5,6 +5,7 @@ import DefaultSender from './default_sender'; import SubscribeOn from './subscribe_on'; import ManageSubscription from './manage_subscription'; import UnsubscribePage from './unsubscribe_page'; +import StatsNotifications from './stats_notifications'; export default function Basics() { return ( @@ -22,6 +23,7 @@ export default function Basics() { /> + ); diff --git a/assets/js/src/settings/pages/basics/stats_notifications.tsx b/assets/js/src/settings/pages/basics/stats_notifications.tsx new file mode 100644 index 0000000000..368b05ddf8 --- /dev/null +++ b/assets/js/src/settings/pages/basics/stats_notifications.tsx @@ -0,0 +1,49 @@ +import React from 'react'; +import { t, onToggle, onChange } from 'settings/utils'; +import { useSetting, useAction } from 'settings/store/hooks'; +import { Label, Inputs } from 'settings/components'; + +export default function StatsNotifications() { + const [enabled, setEnabled] = useSetting('stats_notifications', 'enabled'); + const [automated, setAutomated] = useSetting('stats_notifications', 'automated'); + const [email, setEmail] = useSetting('stats_notifications', 'address'); + const setErrorFlag = useAction('setErrorFlag'); + const hasError = (enabled === '1' || automated === '1') && email.trim() === ''; + React.useEffect(() => { + setErrorFlag(hasError); + }, [hasError, setErrorFlag]); + + return ( + <> +