diff --git a/assets/js/src/settings/utils.ts b/assets/js/src/common/functions/change_handlers.ts similarity index 57% rename from assets/js/src/settings/utils.ts rename to assets/js/src/common/functions/change_handlers.ts index 27f6281e63..9bde4fab24 100644 --- a/assets/js/src/settings/utils.ts +++ b/assets/js/src/common/functions/change_handlers.ts @@ -1,4 +1,3 @@ -import MailPoet from 'mailpoet'; import { ChangeEvent } from 'react'; type Setter = (value: string) => any @@ -7,7 +6,3 @@ type Event = ChangeEvent export const onChange = (setter: Setter) => (e: Event) => setter(e.target.value); export const onToggle = (setter: Setter) => (e: Event) => setter(e.target.checked ? '1' : '0'); - -export const t = ([word]: TemplateStringsArray) => MailPoet.I18n.t(word); - -export const isEmail = (value: string): boolean => (window as any).mailpoet_email_regex.test(value); diff --git a/assets/js/src/common/functions/index.ts b/assets/js/src/common/functions/index.ts new file mode 100644 index 0000000000..9617b064f8 --- /dev/null +++ b/assets/js/src/common/functions/index.ts @@ -0,0 +1,3 @@ +export * from './change_handlers'; +export { default as t } from './t'; +export { default as isEmail } from './is_email'; diff --git a/assets/js/src/common/functions/is_email.ts b/assets/js/src/common/functions/is_email.ts new file mode 100644 index 0000000000..91a516652b --- /dev/null +++ b/assets/js/src/common/functions/is_email.ts @@ -0,0 +1 @@ +export default (value: string): boolean => (window as any).mailpoet_email_regex.test(value); diff --git a/assets/js/src/common/functions/t.ts b/assets/js/src/common/functions/t.ts new file mode 100644 index 0000000000..d577f47d85 --- /dev/null +++ b/assets/js/src/common/functions/t.ts @@ -0,0 +1,3 @@ +import MailPoet from 'mailpoet'; + +export default ([word]: TemplateStringsArray) => MailPoet.I18n.t(word); diff --git a/assets/js/src/settings/components/pages_select.tsx b/assets/js/src/settings/components/pages_select.tsx index eee80169ab..1c4c4fb1db 100644 --- a/assets/js/src/settings/components/pages_select.tsx +++ b/assets/js/src/settings/components/pages_select.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { onChange, t } from 'settings/utils'; import { useSelector } from 'settings/store/hooks'; +import { onChange, t } from 'common/functions'; type Props = { id?: string diff --git a/assets/js/src/settings/components/tabs.tsx b/assets/js/src/settings/components/tabs.tsx index 93c4e53b6f..80d37fe00e 100644 --- a/assets/js/src/settings/components/tabs.tsx +++ b/assets/js/src/settings/components/tabs.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { useLocation } from 'react-router-dom'; +import { t } from 'common/functions'; import { useSelector } from 'settings/store/hooks'; -import { t } from 'settings/utils'; import TabLink from './tab_link'; export default () => { diff --git a/assets/js/src/settings/pages/basics/default_sender.tsx b/assets/js/src/settings/pages/basics/default_sender.tsx index f35e6822dd..a50208bd12 100644 --- a/assets/js/src/settings/pages/basics/default_sender.tsx +++ b/assets/js/src/settings/pages/basics/default_sender.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { t, onChange, isEmail } from 'settings/utils'; import { Label, Inputs } from 'settings/components'; +import { isEmail, t, onChange } from 'common/functions'; import { useSetting, useSelector, useAction } from 'settings/store/hooks'; import SenderEmailAddressWarning from 'common/sender_email_address_warning.jsx'; diff --git a/assets/js/src/settings/pages/basics/gdpr_compliant.tsx b/assets/js/src/settings/pages/basics/gdpr_compliant.tsx index 08830b38f0..a0fe771ec0 100644 --- a/assets/js/src/settings/pages/basics/gdpr_compliant.tsx +++ b/assets/js/src/settings/pages/basics/gdpr_compliant.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { t } from 'settings/utils'; +import { t } from 'common/functions'; import { Label, Inputs } from 'settings/components'; export default function GdprCompliant() { diff --git a/assets/js/src/settings/pages/basics/index.tsx b/assets/js/src/settings/pages/basics/index.tsx index 15f2d4ad0f..f7d067ffa7 100644 --- a/assets/js/src/settings/pages/basics/index.tsx +++ b/assets/js/src/settings/pages/basics/index.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { SaveButton } from 'settings/components'; -import { t } from 'settings/utils'; +import { t } from 'common/functions'; import DefaultSender from './default_sender'; import SubscribeOn from './subscribe_on'; import ManageSubscription from './manage_subscription'; diff --git a/assets/js/src/settings/pages/basics/manage_subscription.tsx b/assets/js/src/settings/pages/basics/manage_subscription.tsx index 9a624b34a4..1b67049297 100644 --- a/assets/js/src/settings/pages/basics/manage_subscription.tsx +++ b/assets/js/src/settings/pages/basics/manage_subscription.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { t } from 'settings/utils'; +import { t } from 'common/functions'; import { useSetting } from 'settings/store/hooks'; import { Label, Inputs, SegmentsSelect, PagesSelect, diff --git a/assets/js/src/settings/pages/basics/new_subscriber_notifications.tsx b/assets/js/src/settings/pages/basics/new_subscriber_notifications.tsx index 48434f223b..a61d92fd2e 100644 --- a/assets/js/src/settings/pages/basics/new_subscriber_notifications.tsx +++ b/assets/js/src/settings/pages/basics/new_subscriber_notifications.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { t, onChange, isEmail } from 'settings/utils'; +import { t, onChange, isEmail } from 'common/functions'; import { useSetting, useAction } from 'settings/store/hooks'; import { Label, Inputs } from 'settings/components'; diff --git a/assets/js/src/settings/pages/basics/shortcode.tsx b/assets/js/src/settings/pages/basics/shortcode.tsx index f359f80bb5..fd87d97580 100644 --- a/assets/js/src/settings/pages/basics/shortcode.tsx +++ b/assets/js/src/settings/pages/basics/shortcode.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { t } from 'settings/utils'; +import { t } from 'common/functions'; import { Label, Inputs, SegmentsSelect } from 'settings/components'; type Props = { diff --git a/assets/js/src/settings/pages/basics/stats_notifications.tsx b/assets/js/src/settings/pages/basics/stats_notifications.tsx index 8519b5c681..d18f7575fd 100644 --- a/assets/js/src/settings/pages/basics/stats_notifications.tsx +++ b/assets/js/src/settings/pages/basics/stats_notifications.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { t, onToggle, onChange, isEmail, -} from 'settings/utils'; +} from 'common/functions'; import { useSetting, useAction } from 'settings/store/hooks'; import { Label, Inputs } from 'settings/components'; diff --git a/assets/js/src/settings/pages/basics/subscribe_on.tsx b/assets/js/src/settings/pages/basics/subscribe_on.tsx index 919423e1c5..d2335dc64d 100644 --- a/assets/js/src/settings/pages/basics/subscribe_on.tsx +++ b/assets/js/src/settings/pages/basics/subscribe_on.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { t, onChange, onToggle } from 'settings/utils'; +import { t, onChange, onToggle } from 'common/functions'; import { useSetting } from 'settings/store/hooks'; import { Label, Inputs, SegmentsSelect } from 'settings/components'; diff --git a/assets/js/src/settings/pages/basics/unsubscribe_page.tsx b/assets/js/src/settings/pages/basics/unsubscribe_page.tsx index ccf9d47cb5..8e1c975e2b 100644 --- a/assets/js/src/settings/pages/basics/unsubscribe_page.tsx +++ b/assets/js/src/settings/pages/basics/unsubscribe_page.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { t } from 'settings/utils'; +import { t } from 'common/functions'; import { useSetting } from 'settings/store/hooks'; import { Label, Inputs, PagesSelect } from 'settings/components'; diff --git a/assets/js/src/settings/settings.tsx b/assets/js/src/settings/settings.tsx index fb571decb2..bd2899b288 100644 --- a/assets/js/src/settings/settings.tsx +++ b/assets/js/src/settings/settings.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { Switch, Route, Redirect } from 'react-router-dom'; import Notices from 'notices/notices.jsx'; -import MailPoet from 'mailpoet'; import Loading from 'common/loading'; +import { t } from 'common/functions'; import { Advanced, Basics, @@ -12,7 +12,6 @@ import { WooCommerce, } from './pages'; import Tabs from './components/tabs'; -import { t } from './utils'; import { useSelector } from './store/hooks'; export default function Settings() {