@strapi/email 0.0.0-next.f698d55751345c4ca87477ef683475c1a68f310a → 0.0.0-next.f93d6eabe52aa7681655cfa08eedbc3708dbb90d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/constants.js +17 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +15 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/index.js +91 -3
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +86 -3
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/Settings.js +361 -0
- package/dist/admin/pages/Settings.js.map +1 -0
- package/dist/admin/pages/Settings.mjs +340 -0
- package/dist/admin/pages/Settings.mjs.map +1 -0
- package/dist/admin/translations/ar.json.js +6 -0
- package/dist/admin/translations/ar.json.js.map +1 -0
- package/dist/admin/translations/ar.json.mjs +4 -0
- package/dist/admin/translations/ar.json.mjs.map +1 -0
- package/dist/admin/translations/cs.json.js +6 -0
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/translations/cs.json.mjs +4 -0
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/translations/de.json.js +6 -0
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/translations/de.json.mjs +4 -0
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/translations/dk.json.js +27 -0
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/translations/dk.json.mjs +25 -0
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/translations/en.json.js +32 -0
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/translations/en.json.mjs +27 -0
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/translations/es.json.js +27 -0
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/translations/es.json.mjs +25 -0
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/translations/fr.json.js +6 -0
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/translations/fr.json.mjs +4 -0
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/translations/id.json.js +6 -0
- package/dist/admin/translations/id.json.js.map +1 -0
- package/dist/admin/translations/id.json.mjs +4 -0
- package/dist/admin/translations/id.json.mjs.map +1 -0
- package/dist/admin/translations/it.json.js +6 -0
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/translations/it.json.mjs +4 -0
- package/dist/admin/translations/it.json.mjs.map +1 -0
- package/dist/admin/translations/ja.json.js +27 -0
- package/dist/admin/translations/ja.json.js.map +1 -0
- package/dist/admin/translations/ja.json.mjs +25 -0
- package/dist/admin/translations/ja.json.mjs.map +1 -0
- package/dist/admin/translations/ko.json.js +27 -0
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/translations/ko.json.mjs +25 -0
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/translations/ms.json.js +6 -0
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/translations/ms.json.mjs +4 -0
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/translations/nl.json.js +6 -0
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/translations/nl.json.mjs +4 -0
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/translations/pl.json.js +27 -0
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/translations/pl.json.mjs +25 -0
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/translations/pt-BR.json.js +6 -0
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/translations/pt-BR.json.mjs +4 -0
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
- package/dist/admin/translations/pt.json.js +32 -0
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/translations/pt.json.mjs +27 -0
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/translations/ru.json.js +6 -0
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/translations/ru.json.mjs +4 -0
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/translations/sk.json.js +6 -0
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/translations/sk.json.mjs +4 -0
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/translations/th.json.js +6 -0
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/translations/th.json.mjs +4 -0
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/translations/tr.json.js +32 -0
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/translations/tr.json.mjs +27 -0
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/translations/uk.json.js +32 -0
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/translations/uk.json.mjs +27 -0
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/translations/vi.json.js +6 -0
- package/dist/admin/translations/vi.json.js.map +1 -0
- package/dist/admin/translations/vi.json.mjs +4 -0
- package/dist/admin/translations/vi.json.mjs.map +1 -0
- package/dist/admin/translations/zh-Hans.json.js +24 -0
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/translations/zh-Hans.json.mjs +19 -0
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/translations/zh.json.js +32 -0
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/translations/zh.json.mjs +27 -0
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.js +23 -0
- package/dist/admin/utils/getYupInnerErrors.js.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.mjs +21 -0
- package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/schema.js +30 -0
- package/dist/admin/utils/schema.js.map +1 -0
- package/dist/admin/utils/schema.mjs +9 -0
- package/dist/admin/utils/schema.mjs.map +1 -0
- package/dist/server/bootstrap.js +40 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +38 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/config.js +15 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/config.mjs +13 -0
- package/dist/server/config.mjs.map +1 -0
- package/dist/server/controllers/email.js +66 -0
- package/dist/server/controllers/email.js.map +1 -0
- package/dist/server/controllers/email.mjs +64 -0
- package/dist/server/controllers/email.mjs.map +1 -0
- package/dist/server/controllers/index.js +10 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +8 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/index.js +18 -206
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +17 -190
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/middlewares/index.js +13 -0
- package/dist/server/middlewares/index.js.map +1 -0
- package/dist/server/middlewares/index.mjs +8 -0
- package/dist/server/middlewares/index.mjs.map +1 -0
- package/dist/server/middlewares/rateLimit.js +37 -0
- package/dist/server/middlewares/rateLimit.js.map +1 -0
- package/dist/server/middlewares/rateLimit.mjs +35 -0
- package/dist/server/middlewares/rateLimit.mjs.map +1 -0
- package/dist/server/routes/admin.js +56 -0
- package/dist/server/routes/admin.js.map +1 -0
- package/dist/server/routes/admin.mjs +54 -0
- package/dist/server/routes/admin.mjs.map +1 -0
- package/dist/server/routes/content-api.js +15 -0
- package/dist/server/routes/content-api.js.map +1 -0
- package/dist/server/routes/content-api.mjs +13 -0
- package/dist/server/routes/content-api.mjs.map +1 -0
- package/dist/server/routes/index.js +12 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +10 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/services/email.js +63 -0
- package/dist/server/services/email.js.map +1 -0
- package/dist/server/services/email.mjs +42 -0
- package/dist/server/services/email.mjs.map +1 -0
- package/dist/server/services/index.js +10 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +8 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/src/index.d.ts +5 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/index.d.ts +9 -0
- package/dist/server/src/middlewares/index.d.ts.map +1 -0
- package/dist/server/src/middlewares/rateLimit.d.ts +7 -0
- package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -0
- package/dist/shared/types.d.ts +0 -1
- package/package.json +16 -13
- package/dist/_chunks/Settings-DKhINVfQ.mjs +0 -281
- package/dist/_chunks/Settings-DKhINVfQ.mjs.map +0 -1
- package/dist/_chunks/Settings-DzVN5TCM.js +0 -299
- package/dist/_chunks/Settings-DzVN5TCM.js.map +0 -1
- package/dist/_chunks/ar-Bf9XlLLo.mjs +0 -5
- package/dist/_chunks/ar-Bf9XlLLo.mjs.map +0 -1
- package/dist/_chunks/ar-C_tQu1XS.js +0 -5
- package/dist/_chunks/ar-C_tQu1XS.js.map +0 -1
- package/dist/_chunks/cs-B0QZJTah.mjs +0 -5
- package/dist/_chunks/cs-B0QZJTah.mjs.map +0 -1
- package/dist/_chunks/cs-CPKIUWLp.js +0 -5
- package/dist/_chunks/cs-CPKIUWLp.js.map +0 -1
- package/dist/_chunks/de-B9kiAC-s.mjs +0 -5
- package/dist/_chunks/de-B9kiAC-s.mjs.map +0 -1
- package/dist/_chunks/de-K6IYQk2d.js +0 -5
- package/dist/_chunks/de-K6IYQk2d.js.map +0 -1
- package/dist/_chunks/dk-31mOPYpI.js +0 -26
- package/dist/_chunks/dk-31mOPYpI.js.map +0 -1
- package/dist/_chunks/dk-DqrbgSkv.mjs +0 -26
- package/dist/_chunks/dk-DqrbgSkv.mjs.map +0 -1
- package/dist/_chunks/en-BCu4d6-o.js +0 -29
- package/dist/_chunks/en-BCu4d6-o.js.map +0 -1
- package/dist/_chunks/en-DF4KtAAC.mjs +0 -29
- package/dist/_chunks/en-DF4KtAAC.mjs.map +0 -1
- package/dist/_chunks/es-BNo7eLLJ.mjs +0 -26
- package/dist/_chunks/es-BNo7eLLJ.mjs.map +0 -1
- package/dist/_chunks/es-Dl2HVmwz.js +0 -26
- package/dist/_chunks/es-Dl2HVmwz.js.map +0 -1
- package/dist/_chunks/fr-C8Qw4iPZ.js +0 -5
- package/dist/_chunks/fr-C8Qw4iPZ.js.map +0 -1
- package/dist/_chunks/fr-hkSxFuzl.mjs +0 -5
- package/dist/_chunks/fr-hkSxFuzl.mjs.map +0 -1
- package/dist/_chunks/id-CHtAzAUz.mjs +0 -5
- package/dist/_chunks/id-CHtAzAUz.mjs.map +0 -1
- package/dist/_chunks/id-CvE5f0zz.js +0 -5
- package/dist/_chunks/id-CvE5f0zz.js.map +0 -1
- package/dist/_chunks/index-BcbwpIZL.js +0 -84
- package/dist/_chunks/index-BcbwpIZL.js.map +0 -1
- package/dist/_chunks/index-D0n2_0zm.mjs +0 -85
- package/dist/_chunks/index-D0n2_0zm.mjs.map +0 -1
- package/dist/_chunks/it-C7z82V3g.mjs +0 -5
- package/dist/_chunks/it-C7z82V3g.mjs.map +0 -1
- package/dist/_chunks/it-DYpuAHa5.js +0 -5
- package/dist/_chunks/it-DYpuAHa5.js.map +0 -1
- package/dist/_chunks/ja-CiekkoEN.mjs +0 -26
- package/dist/_chunks/ja-CiekkoEN.mjs.map +0 -1
- package/dist/_chunks/ja-PL3WilO7.js +0 -26
- package/dist/_chunks/ja-PL3WilO7.js.map +0 -1
- package/dist/_chunks/ko-CJBkZ375.mjs +0 -26
- package/dist/_chunks/ko-CJBkZ375.mjs.map +0 -1
- package/dist/_chunks/ko-CL2BB_w_.js +0 -26
- package/dist/_chunks/ko-CL2BB_w_.js.map +0 -1
- package/dist/_chunks/ms-BGlHkuJz.js +0 -5
- package/dist/_chunks/ms-BGlHkuJz.js.map +0 -1
- package/dist/_chunks/ms-C1wNkEQw.mjs +0 -5
- package/dist/_chunks/ms-C1wNkEQw.mjs.map +0 -1
- package/dist/_chunks/nl-BuofSsmb.js +0 -5
- package/dist/_chunks/nl-BuofSsmb.js.map +0 -1
- package/dist/_chunks/nl-C79CwB4e.mjs +0 -5
- package/dist/_chunks/nl-C79CwB4e.mjs.map +0 -1
- package/dist/_chunks/pl-DXcJCevg.mjs +0 -26
- package/dist/_chunks/pl-DXcJCevg.mjs.map +0 -1
- package/dist/_chunks/pl-DdtXf3SH.js +0 -26
- package/dist/_chunks/pl-DdtXf3SH.js.map +0 -1
- package/dist/_chunks/pt-BR-B_ii8U63.js +0 -5
- package/dist/_chunks/pt-BR-B_ii8U63.js.map +0 -1
- package/dist/_chunks/pt-BR-DjINUWGk.mjs +0 -5
- package/dist/_chunks/pt-BR-DjINUWGk.mjs.map +0 -1
- package/dist/_chunks/pt-CzRDvk6c.js +0 -29
- package/dist/_chunks/pt-CzRDvk6c.js.map +0 -1
- package/dist/_chunks/pt-DEVCt2mt.mjs +0 -29
- package/dist/_chunks/pt-DEVCt2mt.mjs.map +0 -1
- package/dist/_chunks/ru-C_7wBr9e.mjs +0 -5
- package/dist/_chunks/ru-C_7wBr9e.mjs.map +0 -1
- package/dist/_chunks/ru-Dc-rSPqb.js +0 -5
- package/dist/_chunks/ru-Dc-rSPqb.js.map +0 -1
- package/dist/_chunks/sk-Cnpb4YOK.js +0 -5
- package/dist/_chunks/sk-Cnpb4YOK.js.map +0 -1
- package/dist/_chunks/sk-i1gQKUBN.mjs +0 -5
- package/dist/_chunks/sk-i1gQKUBN.mjs.map +0 -1
- package/dist/_chunks/th-BXTLF08M.js +0 -5
- package/dist/_chunks/th-BXTLF08M.js.map +0 -1
- package/dist/_chunks/th-D-MxpWKr.mjs +0 -5
- package/dist/_chunks/th-D-MxpWKr.mjs.map +0 -1
- package/dist/_chunks/tr-BXu41MLY.mjs +0 -29
- package/dist/_chunks/tr-BXu41MLY.mjs.map +0 -1
- package/dist/_chunks/tr-DwBySNgJ.js +0 -29
- package/dist/_chunks/tr-DwBySNgJ.js.map +0 -1
- package/dist/_chunks/uk-C_1qrLRM.mjs +0 -5
- package/dist/_chunks/uk-C_1qrLRM.mjs.map +0 -1
- package/dist/_chunks/uk-CxIePjBD.js +0 -5
- package/dist/_chunks/uk-CxIePjBD.js.map +0 -1
- package/dist/_chunks/vi-B4uqmjm6.js +0 -5
- package/dist/_chunks/vi-B4uqmjm6.js.map +0 -1
- package/dist/_chunks/vi-BfZkgFxI.mjs +0 -5
- package/dist/_chunks/vi-BfZkgFxI.mjs.map +0 -1
- package/dist/_chunks/zh-BS-XJCSt.mjs +0 -29
- package/dist/_chunks/zh-BS-XJCSt.mjs.map +0 -1
- package/dist/_chunks/zh-DsMIjTgu.js +0 -29
- package/dist/_chunks/zh-DsMIjTgu.js.map +0 -1
- package/dist/_chunks/zh-Hans-BLEEaLoN.mjs +0 -21
- package/dist/_chunks/zh-Hans-BLEEaLoN.mjs.map +0 -1
- package/dist/_chunks/zh-Hans-CmL3sY9o.js +0 -21
- package/dist/_chunks/zh-Hans-CmL3sY9o.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Settings.js","sources":["../../../admin/src/pages/Settings.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Flex,\n Grid,\n SingleSelectOption,\n SingleSelect,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Mail } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { styled } from 'styled-components';\nimport { ValidationError } from 'yup';\n\nimport { PERMISSIONS } from '../constants';\nimport { getYupInnerErrors } from '../utils/getYupInnerErrors';\nimport { schema } from '../utils/schema';\n\nimport type { EmailSettings } from '../../../shared/types';\n\nconst DocumentationLink = styled.a`\n color: ${({ theme }) => theme.colors.primary600};\n`;\n\ninterface MutationBody {\n to: string;\n}\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n\nconst SettingsPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { get, post } = useFetchClient();\n\n const [testAddress, setTestAddress] = React.useState('');\n const [isTestAddressValid, setIsTestAddressValid] = React.useState(false);\n\n // TODO: I'm not sure how to type this. I think it should be Record<string, TranslationMessage> but that type is defined in the helper-plugin\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [formErrors, setFormErrors] = React.useState<Record<string, any>>({});\n\n const { data, isLoading } = useQuery(['email', 'settings'], async () => {\n const res = await get<EmailSettings>('/email/settings');\n const {\n data: { config },\n } = res;\n\n return config;\n });\n\n const mutation = useMutation<void, Error, MutationBody>(\n async (body) => {\n await post('/email/test', body);\n },\n {\n onError() {\n toggleNotification!({\n type: 'danger',\n message: formatMessage(\n {\n id: 'email.Settings.email.plugin.notification.test.error',\n defaultMessage: 'Failed to send a test mail to {to}',\n },\n { to: testAddress }\n ),\n });\n },\n onSuccess() {\n toggleNotification!({\n type: 'success',\n message: formatMessage(\n {\n id: 'email.Settings.email.plugin.notification.test.success',\n defaultMessage: 'Email test succeeded, check the {to} mailbox',\n },\n { to: testAddress }\n ),\n });\n },\n retry: false,\n }\n );\n\n React.useEffect(() => {\n schema\n .validate({ email: testAddress }, { abortEarly: false })\n .then(() => setIsTestAddressValid(true))\n .catch(() => setIsTestAddressValid(false));\n }, [testAddress]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setTestAddress(() => event.target.value);\n };\n\n const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n try {\n await schema.validate({ email: testAddress }, { abortEarly: false });\n } catch (error) {\n if (error instanceof ValidationError) {\n setFormErrors(getYupInnerErrors(error));\n }\n }\n\n mutation.mutate({ to: testAddress });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main labelledBy=\"title\" aria-busy={isLoading || mutation.isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'email.Settings.email.plugin.title',\n defaultMessage: 'Configuration',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n id=\"title\"\n title={formatMessage({\n id: 'email.Settings.email.plugin.title',\n defaultMessage: 'Configuration',\n })}\n subtitle={formatMessage({\n id: 'email.Settings.email.plugin.subTitle',\n defaultMessage: 'Test the settings for the Email plugin',\n })}\n />\n\n <Layouts.Content>\n {data && (\n <form onSubmit={handleSubmit}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'email.Settings.email.plugin.title.config',\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'email.Settings.email.plugin.text.configuration',\n defaultMessage:\n 'The plugin is configured through the {file} file, checkout this {link} for the documentation.',\n },\n {\n file: './config/plugins.js',\n link: (\n <DocumentationLink\n href=\"https://docs.strapi.io/developer-docs/latest/plugins/email.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {formatMessage({\n id: 'email.link',\n defaultMessage: 'Link',\n })}\n </DocumentationLink>\n ),\n }\n )}\n </Typography>\n </Flex>\n\n <Grid.Root gap={5}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root name=\"shipper-email\">\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.defaultFrom',\n defaultMessage: 'Default sender email',\n })}\n </Field.Label>\n <TextInput\n placeholder={formatMessage({\n id: 'email.Settings.email.plugin.placeholder.defaultFrom',\n defaultMessage: \"ex: Strapi No-Reply '<'no-reply@strapi.io'>'\",\n })}\n disabled\n value={data.settings.defaultFrom}\n />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root name=\"response-email\">\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.defaultReplyTo',\n defaultMessage: 'Default response email',\n })}\n </Field.Label>\n <TextInput\n placeholder={formatMessage({\n id: 'email.Settings.email.plugin.placeholder.defaultReplyTo',\n defaultMessage: `ex: Strapi '<'example@strapi.io'>'`,\n })}\n disabled\n value={data.settings.defaultReplyTo}\n />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root name=\"email-provider\">\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.provider',\n defaultMessage: 'Email provider',\n })}\n </Field.Label>\n <SingleSelect disabled value={data.provider}>\n <SingleSelectOption value={data.provider}>\n {data.provider}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n\n <Flex\n alignItems=\"stretch\"\n background=\"neutral0\"\n direction=\"column\"\n gap={4}\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'email.Settings.email.plugin.title.test',\n defaultMessage: 'Test email delivery',\n })}\n </Typography>\n\n <Grid.Root gap={5}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"test-address\"\n error={\n formErrors.email?.id &&\n formatMessage({\n id: `email.${formErrors.email?.id}`,\n defaultMessage: 'This is not a valid email',\n })\n }\n >\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.testAddress',\n defaultMessage: 'Recipient email',\n })}\n </Field.Label>\n <TextInput\n onChange={handleChange}\n value={testAddress}\n placeholder={formatMessage({\n id: 'email.Settings.email.plugin.placeholder.testAddress',\n defaultMessage: 'ex: developer@example.com',\n })}\n />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={7} s={12} direction=\"column\" alignItems=\"start\">\n <Button\n loading={mutation.isLoading}\n disabled={!isTestAddressValid}\n type=\"submit\"\n startIcon={<Mail />}\n >\n {formatMessage({\n id: 'email.Settings.email.plugin.button.test-email',\n defaultMessage: 'Send test email',\n })}\n </Button>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Flex>\n </form>\n )}\n </Layouts.Content>\n </Page.Main>\n );\n};\n"],"names":["DocumentationLink","styled","a","theme","colors","primary600","ProtectedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","settings","SettingsPage","toggleNotification","useNotification","formatMessage","useIntl","get","post","useFetchClient","testAddress","setTestAddress","React","useState","isTestAddressValid","setIsTestAddressValid","formErrors","setFormErrors","data","isLoading","useQuery","res","config","mutation","useMutation","body","onError","type","message","id","defaultMessage","to","onSuccess","retry","useEffect","schema","validate","email","abortEarly","then","catch","handleChange","event","target","value","handleSubmit","preventDefault","error","ValidationError","getYupInnerErrors","mutate","Loading","_jsxs","Main","labelledBy","aria-busy","Title","name","Layouts","Header","title","subtitle","Content","form","onSubmit","Flex","direction","alignItems","gap","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","file","link","href","rel","Grid","Root","Item","col","s","Field","Label","TextInput","placeholder","disabled","defaultFrom","defaultReplyTo","SingleSelect","provider","SingleSelectOption","onChange","Button","loading","startIcon","Mail"],"mappings":"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"}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';
|
|
4
|
+
import { Flex, Box, Typography, Grid, Field, TextInput, SingleSelect, SingleSelectOption, Button } from '@strapi/design-system';
|
|
5
|
+
import { Mail } from '@strapi/icons';
|
|
6
|
+
import { useIntl } from 'react-intl';
|
|
7
|
+
import { useQuery, useMutation } from 'react-query';
|
|
8
|
+
import { styled } from 'styled-components';
|
|
9
|
+
import { ValidationError } from 'yup';
|
|
10
|
+
import { PERMISSIONS } from '../constants.mjs';
|
|
11
|
+
import { getYupInnerErrors } from '../utils/getYupInnerErrors.mjs';
|
|
12
|
+
import { schema } from '../utils/schema.mjs';
|
|
13
|
+
|
|
14
|
+
const DocumentationLink = styled.a`
|
|
15
|
+
color: ${({ theme })=>theme.colors.primary600};
|
|
16
|
+
`;
|
|
17
|
+
const ProtectedSettingsPage = ()=>/*#__PURE__*/ jsx(Page.Protect, {
|
|
18
|
+
permissions: PERMISSIONS.settings,
|
|
19
|
+
children: /*#__PURE__*/ jsx(SettingsPage, {})
|
|
20
|
+
});
|
|
21
|
+
const SettingsPage = ()=>{
|
|
22
|
+
const { toggleNotification } = useNotification();
|
|
23
|
+
const { formatMessage } = useIntl();
|
|
24
|
+
const { get, post } = useFetchClient();
|
|
25
|
+
const [testAddress, setTestAddress] = React.useState('');
|
|
26
|
+
const [isTestAddressValid, setIsTestAddressValid] = React.useState(false);
|
|
27
|
+
// TODO: I'm not sure how to type this. I think it should be Record<string, TranslationMessage> but that type is defined in the helper-plugin
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
const [formErrors, setFormErrors] = React.useState({});
|
|
30
|
+
const { data, isLoading } = useQuery([
|
|
31
|
+
'email',
|
|
32
|
+
'settings'
|
|
33
|
+
], async ()=>{
|
|
34
|
+
const res = await get('/email/settings');
|
|
35
|
+
const { data: { config } } = res;
|
|
36
|
+
return config;
|
|
37
|
+
});
|
|
38
|
+
const mutation = useMutation(async (body)=>{
|
|
39
|
+
await post('/email/test', body);
|
|
40
|
+
}, {
|
|
41
|
+
onError () {
|
|
42
|
+
toggleNotification({
|
|
43
|
+
type: 'danger',
|
|
44
|
+
message: formatMessage({
|
|
45
|
+
id: 'email.Settings.email.plugin.notification.test.error',
|
|
46
|
+
defaultMessage: 'Failed to send a test mail to {to}'
|
|
47
|
+
}, {
|
|
48
|
+
to: testAddress
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
onSuccess () {
|
|
53
|
+
toggleNotification({
|
|
54
|
+
type: 'success',
|
|
55
|
+
message: formatMessage({
|
|
56
|
+
id: 'email.Settings.email.plugin.notification.test.success',
|
|
57
|
+
defaultMessage: 'Email test succeeded, check the {to} mailbox'
|
|
58
|
+
}, {
|
|
59
|
+
to: testAddress
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
},
|
|
63
|
+
retry: false
|
|
64
|
+
});
|
|
65
|
+
React.useEffect(()=>{
|
|
66
|
+
schema.validate({
|
|
67
|
+
email: testAddress
|
|
68
|
+
}, {
|
|
69
|
+
abortEarly: false
|
|
70
|
+
}).then(()=>setIsTestAddressValid(true)).catch(()=>setIsTestAddressValid(false));
|
|
71
|
+
}, [
|
|
72
|
+
testAddress
|
|
73
|
+
]);
|
|
74
|
+
const handleChange = (event)=>{
|
|
75
|
+
setTestAddress(()=>event.target.value);
|
|
76
|
+
};
|
|
77
|
+
const handleSubmit = async (event)=>{
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
try {
|
|
80
|
+
await schema.validate({
|
|
81
|
+
email: testAddress
|
|
82
|
+
}, {
|
|
83
|
+
abortEarly: false
|
|
84
|
+
});
|
|
85
|
+
} catch (error) {
|
|
86
|
+
if (error instanceof ValidationError) {
|
|
87
|
+
setFormErrors(getYupInnerErrors(error));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
mutation.mutate({
|
|
91
|
+
to: testAddress
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
if (isLoading) {
|
|
95
|
+
return /*#__PURE__*/ jsx(Page.Loading, {});
|
|
96
|
+
}
|
|
97
|
+
return /*#__PURE__*/ jsxs(Page.Main, {
|
|
98
|
+
labelledBy: "title",
|
|
99
|
+
"aria-busy": isLoading || mutation.isLoading,
|
|
100
|
+
children: [
|
|
101
|
+
/*#__PURE__*/ jsx(Page.Title, {
|
|
102
|
+
children: formatMessage({
|
|
103
|
+
id: 'Settings.PageTitle',
|
|
104
|
+
defaultMessage: 'Settings - {name}'
|
|
105
|
+
}, {
|
|
106
|
+
name: formatMessage({
|
|
107
|
+
id: 'email.Settings.email.plugin.title',
|
|
108
|
+
defaultMessage: 'Configuration'
|
|
109
|
+
})
|
|
110
|
+
})
|
|
111
|
+
}),
|
|
112
|
+
/*#__PURE__*/ jsx(Layouts.Header, {
|
|
113
|
+
id: "title",
|
|
114
|
+
title: formatMessage({
|
|
115
|
+
id: 'email.Settings.email.plugin.title',
|
|
116
|
+
defaultMessage: 'Configuration'
|
|
117
|
+
}),
|
|
118
|
+
subtitle: formatMessage({
|
|
119
|
+
id: 'email.Settings.email.plugin.subTitle',
|
|
120
|
+
defaultMessage: 'Test the settings for the Email plugin'
|
|
121
|
+
})
|
|
122
|
+
}),
|
|
123
|
+
/*#__PURE__*/ jsx(Layouts.Content, {
|
|
124
|
+
children: data && /*#__PURE__*/ jsx("form", {
|
|
125
|
+
onSubmit: handleSubmit,
|
|
126
|
+
children: /*#__PURE__*/ jsxs(Flex, {
|
|
127
|
+
direction: "column",
|
|
128
|
+
alignItems: "stretch",
|
|
129
|
+
gap: 7,
|
|
130
|
+
children: [
|
|
131
|
+
/*#__PURE__*/ jsx(Box, {
|
|
132
|
+
background: "neutral0",
|
|
133
|
+
hasRadius: true,
|
|
134
|
+
shadow: "filterShadow",
|
|
135
|
+
paddingTop: 6,
|
|
136
|
+
paddingBottom: 6,
|
|
137
|
+
paddingLeft: 7,
|
|
138
|
+
paddingRight: 7,
|
|
139
|
+
children: /*#__PURE__*/ jsxs(Flex, {
|
|
140
|
+
direction: "column",
|
|
141
|
+
alignItems: "stretch",
|
|
142
|
+
gap: 4,
|
|
143
|
+
children: [
|
|
144
|
+
/*#__PURE__*/ jsxs(Flex, {
|
|
145
|
+
direction: "column",
|
|
146
|
+
alignItems: "stretch",
|
|
147
|
+
gap: 1,
|
|
148
|
+
children: [
|
|
149
|
+
/*#__PURE__*/ jsx(Typography, {
|
|
150
|
+
variant: "delta",
|
|
151
|
+
tag: "h2",
|
|
152
|
+
children: formatMessage({
|
|
153
|
+
id: 'email.Settings.email.plugin.title.config',
|
|
154
|
+
defaultMessage: 'Configuration'
|
|
155
|
+
})
|
|
156
|
+
}),
|
|
157
|
+
/*#__PURE__*/ jsx(Typography, {
|
|
158
|
+
children: formatMessage({
|
|
159
|
+
id: 'email.Settings.email.plugin.text.configuration',
|
|
160
|
+
defaultMessage: 'The plugin is configured through the {file} file, checkout this {link} for the documentation.'
|
|
161
|
+
}, {
|
|
162
|
+
file: './config/plugins.js',
|
|
163
|
+
link: /*#__PURE__*/ jsx(DocumentationLink, {
|
|
164
|
+
href: "https://docs.strapi.io/developer-docs/latest/plugins/email.html",
|
|
165
|
+
target: "_blank",
|
|
166
|
+
rel: "noopener noreferrer",
|
|
167
|
+
children: formatMessage({
|
|
168
|
+
id: 'email.link',
|
|
169
|
+
defaultMessage: 'Link'
|
|
170
|
+
})
|
|
171
|
+
})
|
|
172
|
+
})
|
|
173
|
+
})
|
|
174
|
+
]
|
|
175
|
+
}),
|
|
176
|
+
/*#__PURE__*/ jsxs(Grid.Root, {
|
|
177
|
+
gap: 5,
|
|
178
|
+
children: [
|
|
179
|
+
/*#__PURE__*/ jsx(Grid.Item, {
|
|
180
|
+
col: 6,
|
|
181
|
+
s: 12,
|
|
182
|
+
direction: "column",
|
|
183
|
+
alignItems: "stretch",
|
|
184
|
+
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
185
|
+
name: "shipper-email",
|
|
186
|
+
children: [
|
|
187
|
+
/*#__PURE__*/ jsx(Field.Label, {
|
|
188
|
+
children: formatMessage({
|
|
189
|
+
id: 'email.Settings.email.plugin.label.defaultFrom',
|
|
190
|
+
defaultMessage: 'Default sender email'
|
|
191
|
+
})
|
|
192
|
+
}),
|
|
193
|
+
/*#__PURE__*/ jsx(TextInput, {
|
|
194
|
+
placeholder: formatMessage({
|
|
195
|
+
id: 'email.Settings.email.plugin.placeholder.defaultFrom',
|
|
196
|
+
defaultMessage: "ex: Strapi No-Reply '<'no-reply@strapi.io'>'"
|
|
197
|
+
}),
|
|
198
|
+
disabled: true,
|
|
199
|
+
value: data.settings.defaultFrom
|
|
200
|
+
})
|
|
201
|
+
]
|
|
202
|
+
})
|
|
203
|
+
}),
|
|
204
|
+
/*#__PURE__*/ jsx(Grid.Item, {
|
|
205
|
+
col: 6,
|
|
206
|
+
s: 12,
|
|
207
|
+
direction: "column",
|
|
208
|
+
alignItems: "stretch",
|
|
209
|
+
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
210
|
+
name: "response-email",
|
|
211
|
+
children: [
|
|
212
|
+
/*#__PURE__*/ jsx(Field.Label, {
|
|
213
|
+
children: formatMessage({
|
|
214
|
+
id: 'email.Settings.email.plugin.label.defaultReplyTo',
|
|
215
|
+
defaultMessage: 'Default response email'
|
|
216
|
+
})
|
|
217
|
+
}),
|
|
218
|
+
/*#__PURE__*/ jsx(TextInput, {
|
|
219
|
+
placeholder: formatMessage({
|
|
220
|
+
id: 'email.Settings.email.plugin.placeholder.defaultReplyTo',
|
|
221
|
+
defaultMessage: `ex: Strapi '<'example@strapi.io'>'`
|
|
222
|
+
}),
|
|
223
|
+
disabled: true,
|
|
224
|
+
value: data.settings.defaultReplyTo
|
|
225
|
+
})
|
|
226
|
+
]
|
|
227
|
+
})
|
|
228
|
+
}),
|
|
229
|
+
/*#__PURE__*/ jsx(Grid.Item, {
|
|
230
|
+
col: 6,
|
|
231
|
+
s: 12,
|
|
232
|
+
direction: "column",
|
|
233
|
+
alignItems: "stretch",
|
|
234
|
+
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
235
|
+
name: "email-provider",
|
|
236
|
+
children: [
|
|
237
|
+
/*#__PURE__*/ jsx(Field.Label, {
|
|
238
|
+
children: formatMessage({
|
|
239
|
+
id: 'email.Settings.email.plugin.label.provider',
|
|
240
|
+
defaultMessage: 'Email provider'
|
|
241
|
+
})
|
|
242
|
+
}),
|
|
243
|
+
/*#__PURE__*/ jsx(SingleSelect, {
|
|
244
|
+
disabled: true,
|
|
245
|
+
value: data.provider,
|
|
246
|
+
children: /*#__PURE__*/ jsx(SingleSelectOption, {
|
|
247
|
+
value: data.provider,
|
|
248
|
+
children: data.provider
|
|
249
|
+
})
|
|
250
|
+
})
|
|
251
|
+
]
|
|
252
|
+
})
|
|
253
|
+
})
|
|
254
|
+
]
|
|
255
|
+
})
|
|
256
|
+
]
|
|
257
|
+
})
|
|
258
|
+
}),
|
|
259
|
+
/*#__PURE__*/ jsxs(Flex, {
|
|
260
|
+
alignItems: "stretch",
|
|
261
|
+
background: "neutral0",
|
|
262
|
+
direction: "column",
|
|
263
|
+
gap: 4,
|
|
264
|
+
hasRadius: true,
|
|
265
|
+
shadow: "filterShadow",
|
|
266
|
+
paddingTop: 6,
|
|
267
|
+
paddingBottom: 6,
|
|
268
|
+
paddingLeft: 7,
|
|
269
|
+
paddingRight: 7,
|
|
270
|
+
children: [
|
|
271
|
+
/*#__PURE__*/ jsx(Typography, {
|
|
272
|
+
variant: "delta",
|
|
273
|
+
tag: "h2",
|
|
274
|
+
children: formatMessage({
|
|
275
|
+
id: 'email.Settings.email.plugin.title.test',
|
|
276
|
+
defaultMessage: 'Test email delivery'
|
|
277
|
+
})
|
|
278
|
+
}),
|
|
279
|
+
/*#__PURE__*/ jsxs(Grid.Root, {
|
|
280
|
+
gap: 5,
|
|
281
|
+
children: [
|
|
282
|
+
/*#__PURE__*/ jsx(Grid.Item, {
|
|
283
|
+
col: 6,
|
|
284
|
+
s: 12,
|
|
285
|
+
direction: "column",
|
|
286
|
+
alignItems: "stretch",
|
|
287
|
+
children: /*#__PURE__*/ jsxs(Field.Root, {
|
|
288
|
+
name: "test-address",
|
|
289
|
+
error: formErrors.email?.id && formatMessage({
|
|
290
|
+
id: `email.${formErrors.email?.id}`,
|
|
291
|
+
defaultMessage: 'This is not a valid email'
|
|
292
|
+
}),
|
|
293
|
+
children: [
|
|
294
|
+
/*#__PURE__*/ jsx(Field.Label, {
|
|
295
|
+
children: formatMessage({
|
|
296
|
+
id: 'email.Settings.email.plugin.label.testAddress',
|
|
297
|
+
defaultMessage: 'Recipient email'
|
|
298
|
+
})
|
|
299
|
+
}),
|
|
300
|
+
/*#__PURE__*/ jsx(TextInput, {
|
|
301
|
+
onChange: handleChange,
|
|
302
|
+
value: testAddress,
|
|
303
|
+
placeholder: formatMessage({
|
|
304
|
+
id: 'email.Settings.email.plugin.placeholder.testAddress',
|
|
305
|
+
defaultMessage: 'ex: developer@example.com'
|
|
306
|
+
})
|
|
307
|
+
})
|
|
308
|
+
]
|
|
309
|
+
})
|
|
310
|
+
}),
|
|
311
|
+
/*#__PURE__*/ jsx(Grid.Item, {
|
|
312
|
+
col: 7,
|
|
313
|
+
s: 12,
|
|
314
|
+
direction: "column",
|
|
315
|
+
alignItems: "start",
|
|
316
|
+
children: /*#__PURE__*/ jsx(Button, {
|
|
317
|
+
loading: mutation.isLoading,
|
|
318
|
+
disabled: !isTestAddressValid,
|
|
319
|
+
type: "submit",
|
|
320
|
+
startIcon: /*#__PURE__*/ jsx(Mail, {}),
|
|
321
|
+
children: formatMessage({
|
|
322
|
+
id: 'email.Settings.email.plugin.button.test-email',
|
|
323
|
+
defaultMessage: 'Send test email'
|
|
324
|
+
})
|
|
325
|
+
})
|
|
326
|
+
})
|
|
327
|
+
]
|
|
328
|
+
})
|
|
329
|
+
]
|
|
330
|
+
})
|
|
331
|
+
]
|
|
332
|
+
})
|
|
333
|
+
})
|
|
334
|
+
})
|
|
335
|
+
]
|
|
336
|
+
});
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
export { ProtectedSettingsPage };
|
|
340
|
+
//# sourceMappingURL=Settings.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Settings.mjs","sources":["../../../admin/src/pages/Settings.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Flex,\n Grid,\n SingleSelectOption,\n SingleSelect,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Mail } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { styled } from 'styled-components';\nimport { ValidationError } from 'yup';\n\nimport { PERMISSIONS } from '../constants';\nimport { getYupInnerErrors } from '../utils/getYupInnerErrors';\nimport { schema } from '../utils/schema';\n\nimport type { EmailSettings } from '../../../shared/types';\n\nconst DocumentationLink = styled.a`\n color: ${({ theme }) => theme.colors.primary600};\n`;\n\ninterface MutationBody {\n to: string;\n}\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n\nconst SettingsPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { get, post } = useFetchClient();\n\n const [testAddress, setTestAddress] = React.useState('');\n const [isTestAddressValid, setIsTestAddressValid] = React.useState(false);\n\n // TODO: I'm not sure how to type this. I think it should be Record<string, TranslationMessage> but that type is defined in the helper-plugin\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [formErrors, setFormErrors] = React.useState<Record<string, any>>({});\n\n const { data, isLoading } = useQuery(['email', 'settings'], async () => {\n const res = await get<EmailSettings>('/email/settings');\n const {\n data: { config },\n } = res;\n\n return config;\n });\n\n const mutation = useMutation<void, Error, MutationBody>(\n async (body) => {\n await post('/email/test', body);\n },\n {\n onError() {\n toggleNotification!({\n type: 'danger',\n message: formatMessage(\n {\n id: 'email.Settings.email.plugin.notification.test.error',\n defaultMessage: 'Failed to send a test mail to {to}',\n },\n { to: testAddress }\n ),\n });\n },\n onSuccess() {\n toggleNotification!({\n type: 'success',\n message: formatMessage(\n {\n id: 'email.Settings.email.plugin.notification.test.success',\n defaultMessage: 'Email test succeeded, check the {to} mailbox',\n },\n { to: testAddress }\n ),\n });\n },\n retry: false,\n }\n );\n\n React.useEffect(() => {\n schema\n .validate({ email: testAddress }, { abortEarly: false })\n .then(() => setIsTestAddressValid(true))\n .catch(() => setIsTestAddressValid(false));\n }, [testAddress]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setTestAddress(() => event.target.value);\n };\n\n const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n try {\n await schema.validate({ email: testAddress }, { abortEarly: false });\n } catch (error) {\n if (error instanceof ValidationError) {\n setFormErrors(getYupInnerErrors(error));\n }\n }\n\n mutation.mutate({ to: testAddress });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main labelledBy=\"title\" aria-busy={isLoading || mutation.isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'email.Settings.email.plugin.title',\n defaultMessage: 'Configuration',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n id=\"title\"\n title={formatMessage({\n id: 'email.Settings.email.plugin.title',\n defaultMessage: 'Configuration',\n })}\n subtitle={formatMessage({\n id: 'email.Settings.email.plugin.subTitle',\n defaultMessage: 'Test the settings for the Email plugin',\n })}\n />\n\n <Layouts.Content>\n {data && (\n <form onSubmit={handleSubmit}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'email.Settings.email.plugin.title.config',\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n {\n id: 'email.Settings.email.plugin.text.configuration',\n defaultMessage:\n 'The plugin is configured through the {file} file, checkout this {link} for the documentation.',\n },\n {\n file: './config/plugins.js',\n link: (\n <DocumentationLink\n href=\"https://docs.strapi.io/developer-docs/latest/plugins/email.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {formatMessage({\n id: 'email.link',\n defaultMessage: 'Link',\n })}\n </DocumentationLink>\n ),\n }\n )}\n </Typography>\n </Flex>\n\n <Grid.Root gap={5}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root name=\"shipper-email\">\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.defaultFrom',\n defaultMessage: 'Default sender email',\n })}\n </Field.Label>\n <TextInput\n placeholder={formatMessage({\n id: 'email.Settings.email.plugin.placeholder.defaultFrom',\n defaultMessage: \"ex: Strapi No-Reply '<'no-reply@strapi.io'>'\",\n })}\n disabled\n value={data.settings.defaultFrom}\n />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root name=\"response-email\">\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.defaultReplyTo',\n defaultMessage: 'Default response email',\n })}\n </Field.Label>\n <TextInput\n placeholder={formatMessage({\n id: 'email.Settings.email.plugin.placeholder.defaultReplyTo',\n defaultMessage: `ex: Strapi '<'example@strapi.io'>'`,\n })}\n disabled\n value={data.settings.defaultReplyTo}\n />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root name=\"email-provider\">\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.provider',\n defaultMessage: 'Email provider',\n })}\n </Field.Label>\n <SingleSelect disabled value={data.provider}>\n <SingleSelectOption value={data.provider}>\n {data.provider}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n\n <Flex\n alignItems=\"stretch\"\n background=\"neutral0\"\n direction=\"column\"\n gap={4}\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'email.Settings.email.plugin.title.test',\n defaultMessage: 'Test email delivery',\n })}\n </Typography>\n\n <Grid.Root gap={5}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"test-address\"\n error={\n formErrors.email?.id &&\n formatMessage({\n id: `email.${formErrors.email?.id}`,\n defaultMessage: 'This is not a valid email',\n })\n }\n >\n <Field.Label>\n {formatMessage({\n id: 'email.Settings.email.plugin.label.testAddress',\n defaultMessage: 'Recipient email',\n })}\n </Field.Label>\n <TextInput\n onChange={handleChange}\n value={testAddress}\n placeholder={formatMessage({\n id: 'email.Settings.email.plugin.placeholder.testAddress',\n defaultMessage: 'ex: developer@example.com',\n })}\n />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={7} s={12} direction=\"column\" alignItems=\"start\">\n <Button\n loading={mutation.isLoading}\n disabled={!isTestAddressValid}\n type=\"submit\"\n startIcon={<Mail />}\n >\n {formatMessage({\n id: 'email.Settings.email.plugin.button.test-email',\n defaultMessage: 'Send test email',\n })}\n </Button>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Flex>\n </form>\n )}\n </Layouts.Content>\n </Page.Main>\n );\n};\n"],"names":["DocumentationLink","styled","a","theme","colors","primary600","ProtectedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","settings","SettingsPage","toggleNotification","useNotification","formatMessage","useIntl","get","post","useFetchClient","testAddress","setTestAddress","React","useState","isTestAddressValid","setIsTestAddressValid","formErrors","setFormErrors","data","isLoading","useQuery","res","config","mutation","useMutation","body","onError","type","message","id","defaultMessage","to","onSuccess","retry","useEffect","schema","validate","email","abortEarly","then","catch","handleChange","event","target","value","handleSubmit","preventDefault","error","ValidationError","getYupInnerErrors","mutate","Loading","_jsxs","Main","labelledBy","aria-busy","Title","name","Layouts","Header","title","subtitle","Content","form","onSubmit","Flex","direction","alignItems","gap","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","file","link","href","rel","Grid","Root","Item","col","s","Field","Label","TextInput","placeholder","disabled","defaultFrom","defaultReplyTo","SingleSelect","provider","SingleSelectOption","onChange","Button","loading","startIcon","Mail"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cs.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cs.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dk = {
|
|
4
|
+
"Settings.email.plugin.button.test-email": "Send test e-mail",
|
|
5
|
+
"Settings.email.plugin.label.defaultFrom": "Standard afsender e-mail",
|
|
6
|
+
"Settings.email.plugin.label.defaultReplyTo": "Standard svar e-mail",
|
|
7
|
+
"Settings.email.plugin.label.provider": "E-mail provider",
|
|
8
|
+
"Settings.email.plugin.label.testAddress": "Modtager e-mail",
|
|
9
|
+
"Settings.email.plugin.notification.config.error": "Fejlede i at hente e-mail konfiguration",
|
|
10
|
+
"Settings.email.plugin.notification.data.loaded": "E-mail indstillinger er blevet hentet",
|
|
11
|
+
"Settings.email.plugin.notification.test.error": "Fejlede ved udsendelse af test mail til {to}",
|
|
12
|
+
"Settings.email.plugin.notification.test.success": "E-mail test lykkedes, tjek indbakken hos {to}",
|
|
13
|
+
"Settings.email.plugin.placeholder.defaultFrom": "f.eks. Strapi No-Reply <no-reply@strapi.io>",
|
|
14
|
+
"Settings.email.plugin.placeholder.defaultReplyTo": "f.eks. Strapi <example@strapi.io>",
|
|
15
|
+
"Settings.email.plugin.placeholder.testAddress": "f.eks. developer@example.com",
|
|
16
|
+
"Settings.email.plugin.subTitle": "Test indstillingerne for Email plugin",
|
|
17
|
+
"Settings.email.plugin.text.configuration": "Pluginnet er konfigureret igennem {file} filen, tjek {link} for dokumentation.",
|
|
18
|
+
"Settings.email.plugin.title": "Konfiguration",
|
|
19
|
+
"Settings.email.plugin.title.config": "Konfiguration",
|
|
20
|
+
"Settings.email.plugin.title.test": "Test e-mail modtagelse",
|
|
21
|
+
"SettingsNav.link.settings": "Indstillinger",
|
|
22
|
+
"SettingsNav.section-label": "E-mail plugin",
|
|
23
|
+
"components.Input.error.validation.email": "Dette er en ugyldig e-mail"
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
module.exports = dk;
|
|
27
|
+
//# sourceMappingURL=dk.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dk.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var dk = {
|
|
2
|
+
"Settings.email.plugin.button.test-email": "Send test e-mail",
|
|
3
|
+
"Settings.email.plugin.label.defaultFrom": "Standard afsender e-mail",
|
|
4
|
+
"Settings.email.plugin.label.defaultReplyTo": "Standard svar e-mail",
|
|
5
|
+
"Settings.email.plugin.label.provider": "E-mail provider",
|
|
6
|
+
"Settings.email.plugin.label.testAddress": "Modtager e-mail",
|
|
7
|
+
"Settings.email.plugin.notification.config.error": "Fejlede i at hente e-mail konfiguration",
|
|
8
|
+
"Settings.email.plugin.notification.data.loaded": "E-mail indstillinger er blevet hentet",
|
|
9
|
+
"Settings.email.plugin.notification.test.error": "Fejlede ved udsendelse af test mail til {to}",
|
|
10
|
+
"Settings.email.plugin.notification.test.success": "E-mail test lykkedes, tjek indbakken hos {to}",
|
|
11
|
+
"Settings.email.plugin.placeholder.defaultFrom": "f.eks. Strapi No-Reply <no-reply@strapi.io>",
|
|
12
|
+
"Settings.email.plugin.placeholder.defaultReplyTo": "f.eks. Strapi <example@strapi.io>",
|
|
13
|
+
"Settings.email.plugin.placeholder.testAddress": "f.eks. developer@example.com",
|
|
14
|
+
"Settings.email.plugin.subTitle": "Test indstillingerne for Email plugin",
|
|
15
|
+
"Settings.email.plugin.text.configuration": "Pluginnet er konfigureret igennem {file} filen, tjek {link} for dokumentation.",
|
|
16
|
+
"Settings.email.plugin.title": "Konfiguration",
|
|
17
|
+
"Settings.email.plugin.title.config": "Konfiguration",
|
|
18
|
+
"Settings.email.plugin.title.test": "Test e-mail modtagelse",
|
|
19
|
+
"SettingsNav.link.settings": "Indstillinger",
|
|
20
|
+
"SettingsNav.section-label": "E-mail plugin",
|
|
21
|
+
"components.Input.error.validation.email": "Dette er en ugyldig e-mail"
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { dk as default };
|
|
25
|
+
//# sourceMappingURL=dk.json.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dk.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var link = "Link";
|
|
6
|
+
var en = {
|
|
7
|
+
link: link,
|
|
8
|
+
"Settings.email.plugin.button.test-email": "Send test email",
|
|
9
|
+
"Settings.email.plugin.label.defaultFrom": "Default sender email",
|
|
10
|
+
"Settings.email.plugin.label.defaultReplyTo": "Default response email",
|
|
11
|
+
"Settings.email.plugin.label.provider": "Email provider",
|
|
12
|
+
"Settings.email.plugin.label.testAddress": "Recipient email",
|
|
13
|
+
"Settings.email.plugin.notification.config.error": "Failed to retrieve the email config",
|
|
14
|
+
"Settings.email.plugin.notification.data.loaded": "Email settings data has been loaded",
|
|
15
|
+
"Settings.email.plugin.notification.test.error": "Failed to send a test mail to {to}",
|
|
16
|
+
"Settings.email.plugin.notification.test.success": "Email test succeeded, check the {to} mailbox",
|
|
17
|
+
"Settings.email.plugin.placeholder.defaultFrom": "ex: Strapi No-Reply <no-reply@strapi.io>",
|
|
18
|
+
"Settings.email.plugin.placeholder.defaultReplyTo": "ex: Strapi <example@strapi.io>",
|
|
19
|
+
"Settings.email.plugin.placeholder.testAddress": "ex: developer@example.com",
|
|
20
|
+
"Settings.email.plugin.subTitle": "Test the settings for the Email plugin",
|
|
21
|
+
"Settings.email.plugin.text.configuration": "The plugin is configured through the {file} file, checkout this {link} for the documentation.",
|
|
22
|
+
"Settings.email.plugin.title": "Configuration",
|
|
23
|
+
"Settings.email.plugin.title.config": "Configuration",
|
|
24
|
+
"Settings.email.plugin.title.test": "Test email delivery",
|
|
25
|
+
"SettingsNav.link.settings": "Settings",
|
|
26
|
+
"SettingsNav.section-label": "Email plugin",
|
|
27
|
+
"components.Input.error.validation.email": "This is not a valid email"
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.default = en;
|
|
31
|
+
exports.link = link;
|
|
32
|
+
//# sourceMappingURL=en.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|