@bigbinary/neeto-email-delivery-frontend 1.0.7 → 1.0.8

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.
Files changed (36) hide show
  1. package/dist/EmailDeliveryScreen.js +8 -84
  2. package/dist/EmailDeliveryScreen.js.map +1 -1
  3. package/dist/SparkpostDomainSetup.js +2 -1
  4. package/dist/SparkpostDomainSetup.js.map +1 -1
  5. package/dist/SparkpostDomainVerify.js +2 -1
  6. package/dist/SparkpostDomainVerify.js.map +1 -1
  7. package/dist/cjs/EmailDeliveryScreen.js +13 -89
  8. package/dist/cjs/EmailDeliveryScreen.js.map +1 -1
  9. package/dist/cjs/SparkpostDomainSetup.js +2 -1
  10. package/dist/cjs/SparkpostDomainSetup.js.map +1 -1
  11. package/dist/cjs/SparkpostDomainVerify.js +3 -2
  12. package/dist/cjs/SparkpostDomainVerify.js.map +1 -1
  13. package/dist/cjs/hooks.js +52 -0
  14. package/dist/cjs/hooks.js.map +1 -0
  15. package/dist/cjs/index.js +5 -3
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/hooks.js +50 -0
  18. package/dist/hooks.js.map +1 -0
  19. package/dist/index.js +5 -3
  20. package/dist/index.js.map +1 -1
  21. package/dist/useOutlookIntegrationApi-CtHj_BzG.js +92 -0
  22. package/dist/useOutlookIntegrationApi-CtHj_BzG.js.map +1 -0
  23. package/dist/useOutlookIntegrationApi-ZgRWrUQN.js +87 -0
  24. package/dist/useOutlookIntegrationApi-ZgRWrUQN.js.map +1 -0
  25. package/dist/{useSparkpostDomain-DdG5InhX.js → useSparkpostApi-W7XibjIp.js} +2 -92
  26. package/dist/useSparkpostApi-W7XibjIp.js.map +1 -0
  27. package/dist/{useSparkpostDomain-qxCkAS6s.js → useSparkpostApi-pa64NIl6.js} +4 -92
  28. package/dist/useSparkpostApi-pa64NIl6.js.map +1 -0
  29. package/dist/useSparkpostDomain-DNDqvZtR.js +94 -0
  30. package/dist/useSparkpostDomain-DNDqvZtR.js.map +1 -0
  31. package/dist/useSparkpostDomain-yQjcPe0y.js +96 -0
  32. package/dist/useSparkpostDomain-yQjcPe0y.js.map +1 -0
  33. package/hooks.d.ts +21 -0
  34. package/package.json +6 -5
  35. package/dist/useSparkpostDomain-DdG5InhX.js.map +0 -1
  36. package/dist/useSparkpostDomain-qxCkAS6s.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { isPresent, humanize } from '@bigbinary/neeto-cist';
2
- import { useMutationWithInvalidation, withT, useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
3
- import { buildUrl, showThumbsUpToastr } from '@bigbinary/neeto-commons-frontend/utils';
2
+ import { withT, useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
3
+ import { showThumbsUpToastr, buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
4
4
  import MailSend from '@bigbinary/neeto-icons/MailSend';
5
5
  import GmailIcon from '@bigbinary/neeto-icons/misc/Gmail';
6
6
  import OutlookIcon from '@bigbinary/neeto-icons/misc/Outlook';
@@ -10,56 +10,19 @@ import Toastr from '@bigbinary/neetoui/Toastr';
10
10
  import { prop } from 'ramda';
11
11
  import { useTranslation } from 'react-i18next';
12
12
  import { useHistory } from 'react-router-dom';
13
- import { G as GMAIL_URL, b as GMAIL_OAUTH_URL, Q as QUERY_KEYS, O as OUTLOOK_URL, c as OUTLOOK_OAUTH_URL, u as useSparkpostDomain, d as GMAIL_OAUTH_CONNECT_URL, e as OUTLOOK_OAUTH_CONNECT_URL } from './useSparkpostDomain-DdG5InhX.js';
13
+ import { Q as QUERY_KEYS, f as GMAIL_OAUTH_CONNECT_URL, g as OUTLOOK_OAUTH_CONNECT_URL } from './useSparkpostApi-W7XibjIp.js';
14
14
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
15
15
  import { useState, useEffect } from 'react';
16
- import { useQuery, useQueryClient } from '@tanstack/react-query';
17
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
18
- import axios from 'axios';
16
+ import { useQueryClient } from '@tanstack/react-query';
17
+ import { u as useFetchGmail, b as useDestroyGmail, a as useFetchOutlook, c as useDestroyOutlook } from './useOutlookIntegrationApi-ZgRWrUQN.js';
18
+ import { u as useSparkpostDomain } from './useSparkpostDomain-DNDqvZtR.js';
19
19
  import { t } from 'i18next';
20
20
  import Button from '@bigbinary/neetoui/Button';
21
21
  import Tag from '@bigbinary/neetoui/Tag';
22
22
  import Typography from '@bigbinary/neetoui/Typography';
23
23
  import { jsx, jsxs } from 'react/jsx-runtime';
24
-
25
- var get$1 = function get(ownerId) {
26
- return axios.get(buildUrl(GMAIL_URL, {
27
- ownerId: ownerId
28
- }), {
29
- showToastr: false
30
- });
31
- };
32
- var destroy$1 = function destroy(ownerId) {
33
- axios["delete"](buildUrl(GMAIL_OAUTH_URL, {
34
- ownerId: ownerId
35
- }), {
36
- showToastr: false
37
- });
38
- };
39
- var gmailApi = {
40
- get: get$1,
41
- destroy: destroy$1
42
- };
43
-
44
- function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
45
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
46
- var useFetchGmail = function useFetchGmail(ownerId, options) {
47
- return useQuery(_objectSpread$1({
48
- queryKey: [QUERY_KEYS.INTEGRATION_GMAIL, ownerId],
49
- queryFn: function queryFn() {
50
- return gmailApi.get(ownerId);
51
- },
52
- retry: 1
53
- }, options));
54
- };
55
- var useDestroyGmail = function useDestroyGmail(_ref) {
56
- var ownerId = _ref.ownerId;
57
- return useMutationWithInvalidation(function () {
58
- return gmailApi.destroy(ownerId);
59
- }, {
60
- keysToInvalidate: [[QUERY_KEYS.INTEGRATION_GMAIL, ownerId]]
61
- });
62
- };
24
+ import '@babel/runtime/helpers/defineProperty';
25
+ import 'axios';
63
26
 
64
27
  var useGmail = function useGmail(_ref) {
65
28
  var ownerId = _ref.ownerId,
@@ -120,45 +83,6 @@ var useGmail = function useGmail(_ref) {
120
83
  };
121
84
  };
122
85
 
123
- var get = function get(ownerId) {
124
- return axios.get(buildUrl(OUTLOOK_URL, {
125
- ownerId: ownerId
126
- }), {
127
- showToastr: false
128
- });
129
- };
130
- var destroy = function destroy(ownerId) {
131
- axios["delete"](buildUrl(OUTLOOK_OAUTH_URL, {
132
- ownerId: ownerId
133
- }), {
134
- showToastr: false
135
- });
136
- };
137
- var outlookApi = {
138
- get: get,
139
- destroy: destroy
140
- };
141
-
142
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
143
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
144
- var useFetchOutlook = function useFetchOutlook(ownerId, options) {
145
- return useQuery(_objectSpread({
146
- queryKey: [QUERY_KEYS.INTEGRATION_OUTLOOK, ownerId],
147
- queryFn: function queryFn() {
148
- return outlookApi.get(ownerId);
149
- },
150
- retry: 1
151
- }, options));
152
- };
153
- var useDestroyOutlook = function useDestroyOutlook(_ref) {
154
- var ownerId = _ref.ownerId;
155
- return useMutationWithInvalidation(function () {
156
- return outlookApi.destroy(ownerId);
157
- }, {
158
- keysToInvalidate: [[QUERY_KEYS.INTEGRATION_OUTLOOK, ownerId]]
159
- });
160
- };
161
-
162
86
  var useOutlook = function useOutlook(_ref) {
163
87
  var ownerId = _ref.ownerId,
164
88
  indexRoute = _ref.indexRoute,
@@ -1 +1 @@
1
- {"version":3,"file":"EmailDeliveryScreen.js","sources":["../app/javascript/src/apis/integrations/gmail.js","../app/javascript/src/hooks/reactQuery/integrations/useGmailIntegrationApi.js","../app/javascript/src/hooks/integrations/useGmail.js","../app/javascript/src/apis/integrations/outlook.js","../app/javascript/src/hooks/reactQuery/integrations/useOutlookIntegrationApi.js","../app/javascript/src/hooks/integrations/useOutlook.js","../app/javascript/src/components/EmailDeliveryScreen/constants.js","../app/javascript/src/components/EmailDeliveryScreen/IntegrationCard.jsx","../app/javascript/src/components/EmailDeliveryScreen/index.jsx"],"sourcesContent":["import axios from \"axios\";\nimport { buildUrl } from \"neetocommons/utils\";\n\nimport { GMAIL_URL, GMAIL_OAUTH_URL } from \"./constants\";\n\nconst get = ownerId =>\n axios.get(buildUrl(GMAIL_URL, { ownerId }), { showToastr: false });\n\nconst destroy = ownerId => {\n axios.delete(buildUrl(GMAIL_OAUTH_URL, { ownerId }), { showToastr: false });\n};\n\nconst gmailApi = { get, destroy };\n\nexport default gmailApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport gmailApi from \"apis/integrations/gmail\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nexport const useFetchGmail = (ownerId, options) =>\n useQuery({\n queryKey: [QUERY_KEYS.INTEGRATION_GMAIL, ownerId],\n queryFn: () => gmailApi.get(ownerId),\n retry: 1,\n ...options,\n });\n\nexport const useDestroyGmail = ({ ownerId }) =>\n useMutationWithInvalidation(() => gmailApi.destroy(ownerId), {\n keysToInvalidate: [[QUERY_KEYS.INTEGRATION_GMAIL, ownerId]],\n });\n","import { useEffect, useState } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport { useHistory } from \"react-router-dom\";\n\nimport {\n useFetchGmail,\n useDestroyGmail,\n} from \"hooks/reactQuery/integrations/useGmailIntegrationApi\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useGmail = ({ ownerId, indexRoute, canManageIntegrations }) => {\n const [isDisconnectAlertOpen, setIsDisconnectAlertOpen] = useState(false);\n\n const history = useHistory();\n\n const queryClient = useQueryClient();\n\n const {\n isLoading,\n data = {},\n isSuccess: isGmailFetched,\n } = useFetchGmail(ownerId, { enabled: canManageIntegrations });\n\n const { isPending: isDestroying, mutate: destroyIntegration } =\n useDestroyGmail({ ownerId });\n\n const onClose = () => history.replace(indexRoute);\n\n const onDisconnect = () => {\n destroyIntegration(false, {\n onSuccess: () => {\n showThumbsUpToastr();\n setIsDisconnectAlertOpen(false);\n history.replace(indexRoute);\n },\n });\n };\n\n useEffect(() => {\n if (isGmailFetched) {\n queryClient.invalidateQueries({\n predicate: query => {\n const [key, id] = query.queryKey;\n\n return key === QUERY_KEYS.INTEGRATION_GMAIL && id !== ownerId;\n },\n });\n }\n }, [isGmailFetched, queryClient, ownerId]);\n\n return {\n data,\n isLoading,\n isDestroying,\n isConnected: data?.connected,\n isDisconnectAlertOpen,\n setIsDisconnectAlertOpen,\n onDisconnect,\n onClose,\n errorMessage: data?.error,\n };\n};\n\nexport default useGmail;\n","import axios from \"axios\";\nimport { buildUrl } from \"neetocommons/utils\";\n\nimport { OUTLOOK_URL, OUTLOOK_OAUTH_URL } from \"./constants\";\n\nconst get = ownerId =>\n axios.get(buildUrl(OUTLOOK_URL, { ownerId }), { showToastr: false });\n\nconst destroy = ownerId => {\n axios.delete(buildUrl(OUTLOOK_OAUTH_URL, { ownerId }), { showToastr: false });\n};\n\nconst outlookApi = { get, destroy };\n\nexport default outlookApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport outlookApi from \"apis/integrations/outlook\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nexport const useFetchOutlook = (ownerId, options) =>\n useQuery({\n queryKey: [QUERY_KEYS.INTEGRATION_OUTLOOK, ownerId],\n queryFn: () => outlookApi.get(ownerId),\n retry: 1,\n ...options,\n });\n\nexport const useDestroyOutlook = ({ ownerId }) =>\n useMutationWithInvalidation(() => outlookApi.destroy(ownerId), {\n keysToInvalidate: [[QUERY_KEYS.INTEGRATION_OUTLOOK, ownerId]],\n });\n","import { useEffect, useState } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport { useHistory } from \"react-router-dom\";\n\nimport {\n useFetchOutlook,\n useDestroyOutlook,\n} from \"hooks/reactQuery/integrations/useOutlookIntegrationApi\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useOutlook = ({ ownerId, indexRoute, canManageIntegrations }) => {\n const [isDisconnectAlertOpen, setIsDisconnectAlertOpen] = useState(false);\n\n const history = useHistory();\n\n const queryClient = useQueryClient();\n\n const {\n isLoading,\n data = {},\n isSuccess: isOutlookFetched,\n } = useFetchOutlook(ownerId, { enabled: canManageIntegrations });\n\n const { isPending: isDestroying, mutate: destroyIntegration } =\n useDestroyOutlook({ ownerId });\n\n const onClose = () => history.replace(indexRoute);\n\n const onDisconnect = () => {\n destroyIntegration(false, {\n onSuccess: () => {\n showThumbsUpToastr();\n setIsDisconnectAlertOpen(false);\n history.replace(indexRoute);\n },\n });\n };\n\n useEffect(() => {\n if (isOutlookFetched) {\n queryClient.invalidateQueries({\n predicate: query => {\n const [key, id] = query.queryKey;\n\n return key === QUERY_KEYS.INTEGRATION_OUTLOOK && id !== ownerId;\n },\n });\n }\n }, [isOutlookFetched, queryClient, ownerId]);\n\n return {\n data,\n isLoading,\n isDestroying,\n isConnected: data?.connected,\n isDisconnectAlertOpen,\n setIsDisconnectAlertOpen,\n onDisconnect,\n onClose,\n errorMessage: data?.error,\n };\n};\n\nexport default useOutlook;\n","import { t } from \"i18next\";\n\nexport const ERROR_MESSAGES = {\n gmail_permission_not_given: t(\"neetoEmailDelivery.gmail.permissionNotGiven\"),\n outlook_permission_not_given: t(\n \"neetoEmailDelivery.outlook.permissionNotGiven\"\n ),\n outlook_invalid_client: t(\"neetoEmailDelivery.outlook.invalidClient\"),\n outlook_nil_json_web_token: t(\"neetoEmailDelivery.outlook.nilJsonWebToken\"),\n};\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Tag, Typography } from \"neetoui\";\n\nconst IntegrationCard = withT(\n ({\n t,\n icon: Icon,\n title,\n description,\n isConnected,\n isDisconnecting,\n onConnect,\n onDisconnect,\n connectButtonText,\n disconnectButtonText = \"neetoEmailDelivery.sparkpost.emailDelivery.disconnect\",\n connectedTagText = \"neetoEmailDelivery.sparkpost.emailDelivery.connected\",\n }) => (\n <div className=\"neeto-ui-rounded-lg neeto-ui-shadow-xs neeto-ui-border-gray-300 translate flex flex-col gap-y-4 border p-6 no-underline transition-transform duration-300 ease-in-out outline-none hover:-translate-y-1\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-center gap-3\">\n <Icon className=\"shrink-0\" size={32} />\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <Typography style=\"h4\" weight=\"semibold\">\n {title}\n </Typography>\n {isConnected && <Tag label={t(connectedTagText)} />}\n </div>\n </div>\n </div>\n <Typography style=\"body2\">{description}</Typography>\n {connectButtonText && (\n <div className=\"flex gap-2\">\n {isConnected ? (\n <Button\n data-cy=\"disconnect-button\"\n label={t(disconnectButtonText)}\n loading={isDisconnecting}\n size=\"small\"\n style=\"danger\"\n onClick={onDisconnect}\n />\n ) : (\n <Button\n data-cy=\"connect-button\"\n label={t(connectButtonText)}\n size=\"small\"\n style=\"primary\"\n onClick={onConnect}\n />\n )}\n </div>\n )}\n </div>\n </div>\n )\n);\n\nexport default IntegrationCard;\n","import { humanize, isPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { MailSend } from \"neetoicons\";\nimport { Gmail as GmailIcon, Outlook as OutlookIcon } from \"neetoicons/misc\";\nimport { Spinner, Callout, Toastr } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport {\n GMAIL_OAUTH_CONNECT_URL,\n OUTLOOK_OAUTH_CONNECT_URL,\n} from \"apis/integrations/constants\";\nimport useGmail from \"hooks/integrations/useGmail\";\nimport useOutlook from \"hooks/integrations/useOutlook\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\n\nimport { ERROR_MESSAGES } from \"./constants\";\nimport IntegrationCard from \"./IntegrationCard\";\n\nconst EmailDeliveryScreen = ({\n indexRoute,\n ownerId,\n ownDomainSetupRoute,\n canManageIntegrations,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const { error, errorDescription } = useQueryParams();\n\n if (isPresent(error)) {\n let errorMessage = ERROR_MESSAGES[error];\n if (errorDescription) {\n errorMessage = `${errorMessage} ${errorDescription}`;\n }\n Toastr.error(errorMessage ?? humanize(error));\n\n history.replace(indexRoute);\n }\n\n const gmailIntegration = useGmail({\n ownerId,\n indexRoute,\n canManageIntegrations,\n });\n\n const outlookIntegration = useOutlook({\n ownerId,\n indexRoute,\n canManageIntegrations,\n });\n\n const sparkpostIntegration = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const {\n data: gmailData = {},\n isConnected: isGmailConnected,\n isLoading: isGmailLoading,\n isDestroying: isGmailDisconnecting,\n onDisconnect: onGmailDisconnect,\n } = gmailIntegration;\n\n const {\n data: outlookData = {},\n isConnected: isOutlookConnected,\n isLoading: isOutlookLoading,\n isDestroying: isOutlookDisconnecting,\n onDisconnect: onOutlookDisconnect,\n } = outlookIntegration;\n\n const {\n data: sparkpostData = {},\n isConnected: isSparkpostConnected,\n isLoading: isSparkpostLoading,\n onDisconnect: onSparkpostDisconnect,\n isDestroying: isSparkpostDisconnecting,\n } = sparkpostIntegration;\n\n const isLoading = isGmailLoading || isOutlookLoading || isSparkpostLoading;\n const hasActiveIntegration =\n isGmailConnected || isOutlookConnected || isSparkpostConnected;\n\n const handleGmailConnect = () => {\n window.location.href = buildUrl(GMAIL_OAUTH_CONNECT_URL, { ownerId });\n };\n\n const handleOutlookConnect = () => {\n window.location.href = buildUrl(OUTLOOK_OAUTH_CONNECT_URL, { ownerId });\n };\n\n const handleOwnDomainConnect = () => {\n history.push(ownDomainSetupRoute);\n };\n\n const gmailEmail = prop(\"email\", gmailData);\n const outlookEmail = prop(\"email\", outlookData);\n const sparkpostEmail = prop(\"email\", sparkpostData);\n\n const gmailTitle = t(\"neetoEmailDelivery.gmail.title\");\n const gmailDescription = isGmailConnected\n ? t(\"neetoEmailDelivery.sparkpost.emailDelivery.connectedEmail\", {\n email: gmailEmail,\n })\n : t(\"neetoEmailDelivery.gmail.description\");\n\n const outlookTitle = t(\"neetoEmailDelivery.outlook.title\");\n const outlookDescription = isOutlookConnected\n ? t(\"neetoEmailDelivery.sparkpost.emailDelivery.connectedEmail\", {\n email: outlookEmail,\n })\n : t(\"neetoEmailDelivery.outlook.description\");\n\n const ownDomainTitle = t(\n \"neetoEmailDelivery.sparkpost.emailDelivery.ownDomainTitle\"\n );\n\n const ownDomainDescription = isSparkpostConnected\n ? t(\"neetoEmailDelivery.sparkpost.emailDelivery.connectedEmail\", {\n email: sparkpostEmail,\n })\n : t(\"neetoEmailDelivery.sparkpost.emailDelivery.ownDomainDescription\");\n\n if (isLoading) {\n return (\n <div className=\"flex grow items-center justify-center w-full\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"min-h-0 w-full grow\">\n <div className=\"@container mx-auto space-y-6\">\n <div className=\"grid grid-cols-1 gap-3 py-1 @lg:grid-cols-2 @lg:gap-6 @3xl:grid-cols-3 @7xl:grid-cols-4\">\n {/* Gmail Option */}\n {(!hasActiveIntegration || isGmailConnected) && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.gmail.connectGmail\"\n description={gmailDescription}\n icon={GmailIcon}\n isConnected={isGmailConnected}\n isDisconnecting={isGmailDisconnecting}\n title={gmailTitle}\n onConnect={handleGmailConnect}\n onDisconnect={onGmailDisconnect}\n />\n )}\n {/* Outlook Option */}\n {(!hasActiveIntegration || isOutlookConnected) && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.outlook.connectOutlook\"\n description={outlookDescription}\n icon={OutlookIcon}\n isConnected={isOutlookConnected}\n isDisconnecting={isOutlookDisconnecting}\n title={outlookTitle}\n onConnect={handleOutlookConnect}\n onDisconnect={onOutlookDisconnect}\n />\n )}\n {/* Own Domain (Sparkpost) Option */}\n {(!hasActiveIntegration || isSparkpostConnected) && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.sparkpost.emailDelivery.setupDomain\"\n description={ownDomainDescription}\n icon={MailSend}\n isConnected={isSparkpostConnected}\n isDisconnecting={isSparkpostDisconnecting}\n title={ownDomainTitle}\n onConnect={handleOwnDomainConnect}\n onDisconnect={onSparkpostDisconnect}\n />\n )}\n </div>\n {hasActiveIntegration && (\n <Callout style=\"success\">\n {isGmailConnected\n ? t(\"neetoEmailDelivery.gmail.gmailConfigured\")\n : isOutlookConnected\n ? t(\"neetoEmailDelivery.outlook.outlookConfigured\")\n : t(\"neetoEmailDelivery.sparkpost.ownDomainConfigured\")}\n </Callout>\n )}\n </div>\n </div>\n );\n};\n\nexport default EmailDeliveryScreen;\n"],"names":["get","ownerId","axios","buildUrl","GMAIL_URL","showToastr","destroy","GMAIL_OAUTH_URL","gmailApi","useFetchGmail","options","useQuery","_objectSpread","queryKey","QUERY_KEYS","INTEGRATION_GMAIL","queryFn","retry","useDestroyGmail","_ref","useMutationWithInvalidation","keysToInvalidate","useGmail","indexRoute","canManageIntegrations","_useState","useState","_useState2","_slicedToArray","isDisconnectAlertOpen","setIsDisconnectAlertOpen","history","useHistory","queryClient","useQueryClient","_useFetchGmail","enabled","isLoading","_useFetchGmail$data","data","isGmailFetched","isSuccess","_useDestroyGmail","isDestroying","isPending","destroyIntegration","mutate","onClose","replace","onDisconnect","onSuccess","showThumbsUpToastr","useEffect","invalidateQueries","predicate","query","_query$queryKey","key","id","isConnected","connected","errorMessage","error","OUTLOOK_URL","OUTLOOK_OAUTH_URL","outlookApi","useFetchOutlook","INTEGRATION_OUTLOOK","useDestroyOutlook","useOutlook","_useFetchOutlook","_useFetchOutlook$data","isOutlookFetched","_useDestroyOutlook","ERROR_MESSAGES","gmail_permission_not_given","t","outlook_permission_not_given","outlook_invalid_client","outlook_nil_json_web_token","IntegrationCard","withT","Icon","icon","title","description","isDisconnecting","onConnect","connectButtonText","_ref$disconnectButton","disconnectButtonText","_ref$connectedTagText","connectedTagText","_jsx","className","children","_jsxs","size","Typography","style","weight","Tag","label","Button","loading","onClick","EmailDeliveryScreen","ownDomainSetupRoute","_useTranslation","useTranslation","_useQueryParams","useQueryParams","errorDescription","isPresent","_errorMessage","concat","Toastr","humanize","gmailIntegration","outlookIntegration","sparkpostIntegration","useSparkpostDomain","_gmailIntegration$dat","gmailData","isGmailConnected","isGmailLoading","isGmailDisconnecting","onGmailDisconnect","_outlookIntegration$d","outlookData","isOutlookConnected","isOutlookLoading","isOutlookDisconnecting","onOutlookDisconnect","_sparkpostIntegration","sparkpostData","isSparkpostConnected","isSparkpostLoading","onSparkpostDisconnect","isSparkpostDisconnecting","hasActiveIntegration","handleGmailConnect","window","location","href","GMAIL_OAUTH_CONNECT_URL","handleOutlookConnect","OUTLOOK_OAUTH_CONNECT_URL","handleOwnDomainConnect","push","gmailEmail","prop","outlookEmail","sparkpostEmail","gmailTitle","gmailDescription","email","outlookTitle","outlookDescription","ownDomainTitle","ownDomainDescription","Spinner","GmailIcon","OutlookIcon","MailSend","Callout"],"mappings":"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"}
1
+ {"version":3,"file":"EmailDeliveryScreen.js","sources":["../app/javascript/src/hooks/integrations/useGmail.js","../app/javascript/src/hooks/integrations/useOutlook.js","../app/javascript/src/components/EmailDeliveryScreen/constants.js","../app/javascript/src/components/EmailDeliveryScreen/IntegrationCard.jsx","../app/javascript/src/components/EmailDeliveryScreen/index.jsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport { useHistory } from \"react-router-dom\";\n\nimport {\n useFetchGmail,\n useDestroyGmail,\n} from \"hooks/reactQuery/integrations/useGmailIntegrationApi\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useGmail = ({ ownerId, indexRoute, canManageIntegrations }) => {\n const [isDisconnectAlertOpen, setIsDisconnectAlertOpen] = useState(false);\n\n const history = useHistory();\n\n const queryClient = useQueryClient();\n\n const {\n isLoading,\n data = {},\n isSuccess: isGmailFetched,\n } = useFetchGmail(ownerId, { enabled: canManageIntegrations });\n\n const { isPending: isDestroying, mutate: destroyIntegration } =\n useDestroyGmail({ ownerId });\n\n const onClose = () => history.replace(indexRoute);\n\n const onDisconnect = () => {\n destroyIntegration(false, {\n onSuccess: () => {\n showThumbsUpToastr();\n setIsDisconnectAlertOpen(false);\n history.replace(indexRoute);\n },\n });\n };\n\n useEffect(() => {\n if (isGmailFetched) {\n queryClient.invalidateQueries({\n predicate: query => {\n const [key, id] = query.queryKey;\n\n return key === QUERY_KEYS.INTEGRATION_GMAIL && id !== ownerId;\n },\n });\n }\n }, [isGmailFetched, queryClient, ownerId]);\n\n return {\n data,\n isLoading,\n isDestroying,\n isConnected: data?.connected,\n isDisconnectAlertOpen,\n setIsDisconnectAlertOpen,\n onDisconnect,\n onClose,\n errorMessage: data?.error,\n };\n};\n\nexport default useGmail;\n","import { useEffect, useState } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport { useHistory } from \"react-router-dom\";\n\nimport {\n useFetchOutlook,\n useDestroyOutlook,\n} from \"hooks/reactQuery/integrations/useOutlookIntegrationApi\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useOutlook = ({ ownerId, indexRoute, canManageIntegrations }) => {\n const [isDisconnectAlertOpen, setIsDisconnectAlertOpen] = useState(false);\n\n const history = useHistory();\n\n const queryClient = useQueryClient();\n\n const {\n isLoading,\n data = {},\n isSuccess: isOutlookFetched,\n } = useFetchOutlook(ownerId, { enabled: canManageIntegrations });\n\n const { isPending: isDestroying, mutate: destroyIntegration } =\n useDestroyOutlook({ ownerId });\n\n const onClose = () => history.replace(indexRoute);\n\n const onDisconnect = () => {\n destroyIntegration(false, {\n onSuccess: () => {\n showThumbsUpToastr();\n setIsDisconnectAlertOpen(false);\n history.replace(indexRoute);\n },\n });\n };\n\n useEffect(() => {\n if (isOutlookFetched) {\n queryClient.invalidateQueries({\n predicate: query => {\n const [key, id] = query.queryKey;\n\n return key === QUERY_KEYS.INTEGRATION_OUTLOOK && id !== ownerId;\n },\n });\n }\n }, [isOutlookFetched, queryClient, ownerId]);\n\n return {\n data,\n isLoading,\n isDestroying,\n isConnected: data?.connected,\n isDisconnectAlertOpen,\n setIsDisconnectAlertOpen,\n onDisconnect,\n onClose,\n errorMessage: data?.error,\n };\n};\n\nexport default useOutlook;\n","import { t } from \"i18next\";\n\nexport const ERROR_MESSAGES = {\n gmail_permission_not_given: t(\"neetoEmailDelivery.gmail.permissionNotGiven\"),\n outlook_permission_not_given: t(\n \"neetoEmailDelivery.outlook.permissionNotGiven\"\n ),\n outlook_invalid_client: t(\"neetoEmailDelivery.outlook.invalidClient\"),\n outlook_nil_json_web_token: t(\"neetoEmailDelivery.outlook.nilJsonWebToken\"),\n};\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button, Tag, Typography } from \"neetoui\";\n\nconst IntegrationCard = withT(\n ({\n t,\n icon: Icon,\n title,\n description,\n isConnected,\n isDisconnecting,\n onConnect,\n onDisconnect,\n connectButtonText,\n disconnectButtonText = \"neetoEmailDelivery.sparkpost.emailDelivery.disconnect\",\n connectedTagText = \"neetoEmailDelivery.sparkpost.emailDelivery.connected\",\n }) => (\n <div className=\"neeto-ui-rounded-lg neeto-ui-shadow-xs neeto-ui-border-gray-300 translate flex flex-col gap-y-4 border p-6 no-underline transition-transform duration-300 ease-in-out outline-none hover:-translate-y-1\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-center gap-3\">\n <Icon className=\"shrink-0\" size={32} />\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <Typography style=\"h4\" weight=\"semibold\">\n {title}\n </Typography>\n {isConnected && <Tag label={t(connectedTagText)} />}\n </div>\n </div>\n </div>\n <Typography style=\"body2\">{description}</Typography>\n {connectButtonText && (\n <div className=\"flex gap-2\">\n {isConnected ? (\n <Button\n data-cy=\"disconnect-button\"\n label={t(disconnectButtonText)}\n loading={isDisconnecting}\n size=\"small\"\n style=\"danger\"\n onClick={onDisconnect}\n />\n ) : (\n <Button\n data-cy=\"connect-button\"\n label={t(connectButtonText)}\n size=\"small\"\n style=\"primary\"\n onClick={onConnect}\n />\n )}\n </div>\n )}\n </div>\n </div>\n )\n);\n\nexport default IntegrationCard;\n","import { humanize, isPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { MailSend } from \"neetoicons\";\nimport { Gmail as GmailIcon, Outlook as OutlookIcon } from \"neetoicons/misc\";\nimport { Spinner, Callout, Toastr } from \"neetoui\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport {\n GMAIL_OAUTH_CONNECT_URL,\n OUTLOOK_OAUTH_CONNECT_URL,\n} from \"apis/integrations/constants\";\nimport useGmail from \"hooks/integrations/useGmail\";\nimport useOutlook from \"hooks/integrations/useOutlook\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\n\nimport { ERROR_MESSAGES } from \"./constants\";\nimport IntegrationCard from \"./IntegrationCard\";\n\nconst EmailDeliveryScreen = ({\n indexRoute,\n ownerId,\n ownDomainSetupRoute,\n canManageIntegrations,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const { error, errorDescription } = useQueryParams();\n\n if (isPresent(error)) {\n let errorMessage = ERROR_MESSAGES[error];\n if (errorDescription) {\n errorMessage = `${errorMessage} ${errorDescription}`;\n }\n Toastr.error(errorMessage ?? humanize(error));\n\n history.replace(indexRoute);\n }\n\n const gmailIntegration = useGmail({\n ownerId,\n indexRoute,\n canManageIntegrations,\n });\n\n const outlookIntegration = useOutlook({\n ownerId,\n indexRoute,\n canManageIntegrations,\n });\n\n const sparkpostIntegration = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const {\n data: gmailData = {},\n isConnected: isGmailConnected,\n isLoading: isGmailLoading,\n isDestroying: isGmailDisconnecting,\n onDisconnect: onGmailDisconnect,\n } = gmailIntegration;\n\n const {\n data: outlookData = {},\n isConnected: isOutlookConnected,\n isLoading: isOutlookLoading,\n isDestroying: isOutlookDisconnecting,\n onDisconnect: onOutlookDisconnect,\n } = outlookIntegration;\n\n const {\n data: sparkpostData = {},\n isConnected: isSparkpostConnected,\n isLoading: isSparkpostLoading,\n onDisconnect: onSparkpostDisconnect,\n isDestroying: isSparkpostDisconnecting,\n } = sparkpostIntegration;\n\n const isLoading = isGmailLoading || isOutlookLoading || isSparkpostLoading;\n const hasActiveIntegration =\n isGmailConnected || isOutlookConnected || isSparkpostConnected;\n\n const handleGmailConnect = () => {\n window.location.href = buildUrl(GMAIL_OAUTH_CONNECT_URL, { ownerId });\n };\n\n const handleOutlookConnect = () => {\n window.location.href = buildUrl(OUTLOOK_OAUTH_CONNECT_URL, { ownerId });\n };\n\n const handleOwnDomainConnect = () => {\n history.push(ownDomainSetupRoute);\n };\n\n const gmailEmail = prop(\"email\", gmailData);\n const outlookEmail = prop(\"email\", outlookData);\n const sparkpostEmail = prop(\"email\", sparkpostData);\n\n const gmailTitle = t(\"neetoEmailDelivery.gmail.title\");\n const gmailDescription = isGmailConnected\n ? t(\"neetoEmailDelivery.sparkpost.emailDelivery.connectedEmail\", {\n email: gmailEmail,\n })\n : t(\"neetoEmailDelivery.gmail.description\");\n\n const outlookTitle = t(\"neetoEmailDelivery.outlook.title\");\n const outlookDescription = isOutlookConnected\n ? t(\"neetoEmailDelivery.sparkpost.emailDelivery.connectedEmail\", {\n email: outlookEmail,\n })\n : t(\"neetoEmailDelivery.outlook.description\");\n\n const ownDomainTitle = t(\n \"neetoEmailDelivery.sparkpost.emailDelivery.ownDomainTitle\"\n );\n\n const ownDomainDescription = isSparkpostConnected\n ? t(\"neetoEmailDelivery.sparkpost.emailDelivery.connectedEmail\", {\n email: sparkpostEmail,\n })\n : t(\"neetoEmailDelivery.sparkpost.emailDelivery.ownDomainDescription\");\n\n if (isLoading) {\n return (\n <div className=\"flex grow items-center justify-center w-full\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"min-h-0 w-full grow\">\n <div className=\"@container mx-auto space-y-6\">\n <div className=\"grid grid-cols-1 gap-3 py-1 @lg:grid-cols-2 @lg:gap-6 @3xl:grid-cols-3 @7xl:grid-cols-4\">\n {/* Gmail Option */}\n {(!hasActiveIntegration || isGmailConnected) && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.gmail.connectGmail\"\n description={gmailDescription}\n icon={GmailIcon}\n isConnected={isGmailConnected}\n isDisconnecting={isGmailDisconnecting}\n title={gmailTitle}\n onConnect={handleGmailConnect}\n onDisconnect={onGmailDisconnect}\n />\n )}\n {/* Outlook Option */}\n {(!hasActiveIntegration || isOutlookConnected) && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.outlook.connectOutlook\"\n description={outlookDescription}\n icon={OutlookIcon}\n isConnected={isOutlookConnected}\n isDisconnecting={isOutlookDisconnecting}\n title={outlookTitle}\n onConnect={handleOutlookConnect}\n onDisconnect={onOutlookDisconnect}\n />\n )}\n {/* Own Domain (Sparkpost) Option */}\n {(!hasActiveIntegration || isSparkpostConnected) && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.sparkpost.emailDelivery.setupDomain\"\n description={ownDomainDescription}\n icon={MailSend}\n isConnected={isSparkpostConnected}\n isDisconnecting={isSparkpostDisconnecting}\n title={ownDomainTitle}\n onConnect={handleOwnDomainConnect}\n onDisconnect={onSparkpostDisconnect}\n />\n )}\n </div>\n {hasActiveIntegration && (\n <Callout style=\"success\">\n {isGmailConnected\n ? t(\"neetoEmailDelivery.gmail.gmailConfigured\")\n : isOutlookConnected\n ? t(\"neetoEmailDelivery.outlook.outlookConfigured\")\n : t(\"neetoEmailDelivery.sparkpost.ownDomainConfigured\")}\n </Callout>\n )}\n </div>\n </div>\n );\n};\n\nexport default EmailDeliveryScreen;\n"],"names":["useGmail","_ref","ownerId","indexRoute","canManageIntegrations","_useState","useState","_useState2","_slicedToArray","isDisconnectAlertOpen","setIsDisconnectAlertOpen","history","useHistory","queryClient","useQueryClient","_useFetchGmail","useFetchGmail","enabled","isLoading","_useFetchGmail$data","data","isGmailFetched","isSuccess","_useDestroyGmail","useDestroyGmail","isDestroying","isPending","destroyIntegration","mutate","onClose","replace","onDisconnect","onSuccess","showThumbsUpToastr","useEffect","invalidateQueries","predicate","query","_query$queryKey","queryKey","key","id","QUERY_KEYS","INTEGRATION_GMAIL","isConnected","connected","errorMessage","error","useOutlook","_useFetchOutlook","useFetchOutlook","_useFetchOutlook$data","isOutlookFetched","_useDestroyOutlook","useDestroyOutlook","INTEGRATION_OUTLOOK","ERROR_MESSAGES","gmail_permission_not_given","t","outlook_permission_not_given","outlook_invalid_client","outlook_nil_json_web_token","IntegrationCard","withT","Icon","icon","title","description","isDisconnecting","onConnect","connectButtonText","_ref$disconnectButton","disconnectButtonText","_ref$connectedTagText","connectedTagText","_jsx","className","children","_jsxs","size","Typography","style","weight","Tag","label","Button","loading","onClick","EmailDeliveryScreen","ownDomainSetupRoute","_useTranslation","useTranslation","_useQueryParams","useQueryParams","errorDescription","isPresent","_errorMessage","concat","Toastr","humanize","gmailIntegration","outlookIntegration","sparkpostIntegration","useSparkpostDomain","_gmailIntegration$dat","gmailData","isGmailConnected","isGmailLoading","isGmailDisconnecting","onGmailDisconnect","_outlookIntegration$d","outlookData","isOutlookConnected","isOutlookLoading","isOutlookDisconnecting","onOutlookDisconnect","_sparkpostIntegration","sparkpostData","isSparkpostConnected","isSparkpostLoading","onSparkpostDisconnect","isSparkpostDisconnecting","hasActiveIntegration","handleGmailConnect","window","location","href","buildUrl","GMAIL_OAUTH_CONNECT_URL","handleOutlookConnect","OUTLOOK_OAUTH_CONNECT_URL","handleOwnDomainConnect","push","gmailEmail","prop","outlookEmail","sparkpostEmail","gmailTitle","gmailDescription","email","outlookTitle","outlookDescription","ownDomainTitle","ownDomainDescription","Spinner","GmailIcon","OutlookIcon","MailSend","Callout"],"mappings":"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"}
@@ -7,7 +7,7 @@ import Form from '@bigbinary/neetoui/formik/Form';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { useHistory } from 'react-router-dom';
9
9
  import { P as PageWrapper, a as PageContent, V as VALIDATION_SCHEMA } from './constants-Cvxv8ly7.js';
10
- import { u as useSparkpostDomain } from './useSparkpostDomain-DdG5InhX.js';
10
+ import { u as useSparkpostDomain } from './useSparkpostDomain-DNDqvZtR.js';
11
11
  import { jsx, jsxs } from 'react/jsx-runtime';
12
12
  import '@babel/runtime/helpers/defineProperty';
13
13
  import '@babel/runtime/helpers/objectWithoutProperties';
@@ -19,6 +19,7 @@ import 'i18next';
19
19
  import 'yup';
20
20
  import '@babel/runtime/helpers/slicedToArray';
21
21
  import '@bigbinary/neetoui/Toastr';
22
+ import './useSparkpostApi-W7XibjIp.js';
22
23
  import '@tanstack/react-query';
23
24
  import '@bigbinary/neeto-commons-frontend/react-utils';
24
25
  import 'axios';
@@ -1 +1 @@
1
- {"version":3,"file":"SparkpostDomainSetup.js","sources":["../app/javascript/src/components/SparkpostDomain/utils.js","../app/javascript/src/components/SparkpostDomain/Setup.jsx"],"sourcesContent":["const getDomainFromEmail = email => email.trim().split(\"@\")[1];\n\nexport { getDomainFromEmail };\n","import { buildUrl } from \"neetocommons/utils\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { Callout } from \"neetoui\";\nimport { Input, ActionBlock, Form } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { PageContent, PageWrapper } from \"components/PageLayout\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\n\nimport { VALIDATION_SCHEMA } from \"./constants\";\nimport { getDomainFromEmail } from \"./utils\";\n\nconst SparkpostDomainSetup = ({\n ownerId,\n alreadyVerifiedRoute,\n verifyRoute,\n onCancelRoute,\n canManageIntegrations,\n}) => {\n const { t } = useTranslation();\n\n const history = useHistory();\n\n const { onCreateDomain, isCreating } = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const handleSubmit = (values, { setFieldError }) => {\n onCreateDomain(\n values.email.trim(),\n response => {\n if (response?.alreadyVerified) {\n // Domain is already verified, go back to email delivery settings\n history.push(alreadyVerifiedRoute);\n } else {\n // Navigate to verification page with domain query parameter\n const domain = getDomainFromEmail(values.email);\n history.push(\n buildUrl(verifyRoute, { domain, email: values.email.trim() })\n );\n }\n },\n error => {\n const errorMessage =\n error?.response?.data?.error ||\n t(\"neetoEmailDelivery.sparkpost.setup.validation.setupFailed\");\n setFieldError(\"email\", errorMessage);\n }\n );\n };\n\n const handleCancel = () => {\n history.push(onCancelRoute);\n };\n\n return (\n <PageWrapper>\n <PageContent>\n <Form\n className=\"w-full\"\n formikProps={{\n initialValues: { email: \"\" },\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values }) => {\n const domain = values.email\n ? getDomainFromEmail(values.email)\n : t(\"neetoEmailDelivery.sparkpost.customDomain\");\n\n return (\n <CardLayout\n title={String(t(\"neetoEmailDelivery.sparkpost.setup.title\"))}\n actionBlock={\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isCreating}\n submitButtonProps={{\n label: t(\"neetoEmailDelivery.sparkpost.setup.setupEmail\"),\n }}\n />\n }\n description={String(\n t(\"neetoEmailDelivery.sparkpost.setup.description\")\n )}\n >\n <div className=\"flex flex-col gap-6\">\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.sparkpost.setup.note\")}\n </Callout>\n <Input\n required\n unlimitedChars\n label={t(\"neetoEmailDelivery.sparkpost.setup.emailLabel\")}\n name=\"email\"\n type=\"email\"\n helpText={t(\n \"neetoEmailDelivery.sparkpost.setup.emailHelp\",\n { domain }\n )}\n placeholder={t(\n \"neetoEmailDelivery.sparkpost.setup.emailPlaceholder\"\n )}\n />\n </div>\n </CardLayout>\n );\n }}\n </Form>\n </PageContent>\n </PageWrapper>\n );\n};\n\nexport default SparkpostDomainSetup;\n"],"names":["getDomainFromEmail","email","trim","split","SparkpostDomainSetup","_ref","ownerId","alreadyVerifiedRoute","verifyRoute","onCancelRoute","canManageIntegrations","_useTranslation","useTranslation","t","history","useHistory","_useSparkpostDomain","useSparkpostDomain","onCreateDomain","isCreating","handleSubmit","values","_ref2","setFieldError","response","alreadyVerified","push","domain","buildUrl","error","_error$response","errorMessage","data","handleCancel","_jsx","PageWrapper","children","PageContent","Form","className","formikProps","initialValues","validationSchema","VALIDATION_SCHEMA","onSubmit","_ref3","CardLayout","title","String","actionBlock","ActionBlock","cancelButtonProps","onClick","isSubmitting","submitButtonProps","label","description","_jsxs","Callout","style","Input","required","unlimitedChars","name","type","helpText","placeholder"],"mappings":"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"}
1
+ {"version":3,"file":"SparkpostDomainSetup.js","sources":["../app/javascript/src/components/SparkpostDomain/utils.js","../app/javascript/src/components/SparkpostDomain/Setup.jsx"],"sourcesContent":["const getDomainFromEmail = email => email.trim().split(\"@\")[1];\n\nexport { getDomainFromEmail };\n","import { buildUrl } from \"neetocommons/utils\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { Callout } from \"neetoui\";\nimport { Input, ActionBlock, Form } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { PageContent, PageWrapper } from \"components/PageLayout\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\n\nimport { VALIDATION_SCHEMA } from \"./constants\";\nimport { getDomainFromEmail } from \"./utils\";\n\nconst SparkpostDomainSetup = ({\n ownerId,\n alreadyVerifiedRoute,\n verifyRoute,\n onCancelRoute,\n canManageIntegrations,\n}) => {\n const { t } = useTranslation();\n\n const history = useHistory();\n\n const { onCreateDomain, isCreating } = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const handleSubmit = (values, { setFieldError }) => {\n onCreateDomain(\n values.email.trim(),\n response => {\n if (response?.alreadyVerified) {\n // Domain is already verified, go back to email delivery settings\n history.push(alreadyVerifiedRoute);\n } else {\n // Navigate to verification page with domain query parameter\n const domain = getDomainFromEmail(values.email);\n history.push(\n buildUrl(verifyRoute, { domain, email: values.email.trim() })\n );\n }\n },\n error => {\n const errorMessage =\n error?.response?.data?.error ||\n t(\"neetoEmailDelivery.sparkpost.setup.validation.setupFailed\");\n setFieldError(\"email\", errorMessage);\n }\n );\n };\n\n const handleCancel = () => {\n history.push(onCancelRoute);\n };\n\n return (\n <PageWrapper>\n <PageContent>\n <Form\n className=\"w-full\"\n formikProps={{\n initialValues: { email: \"\" },\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values }) => {\n const domain = values.email\n ? getDomainFromEmail(values.email)\n : t(\"neetoEmailDelivery.sparkpost.customDomain\");\n\n return (\n <CardLayout\n title={String(t(\"neetoEmailDelivery.sparkpost.setup.title\"))}\n actionBlock={\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isCreating}\n submitButtonProps={{\n label: t(\"neetoEmailDelivery.sparkpost.setup.setupEmail\"),\n }}\n />\n }\n description={String(\n t(\"neetoEmailDelivery.sparkpost.setup.description\")\n )}\n >\n <div className=\"flex flex-col gap-6\">\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.sparkpost.setup.note\")}\n </Callout>\n <Input\n required\n unlimitedChars\n label={t(\"neetoEmailDelivery.sparkpost.setup.emailLabel\")}\n name=\"email\"\n type=\"email\"\n helpText={t(\n \"neetoEmailDelivery.sparkpost.setup.emailHelp\",\n { domain }\n )}\n placeholder={t(\n \"neetoEmailDelivery.sparkpost.setup.emailPlaceholder\"\n )}\n />\n </div>\n </CardLayout>\n );\n }}\n </Form>\n </PageContent>\n </PageWrapper>\n );\n};\n\nexport default SparkpostDomainSetup;\n"],"names":["getDomainFromEmail","email","trim","split","SparkpostDomainSetup","_ref","ownerId","alreadyVerifiedRoute","verifyRoute","onCancelRoute","canManageIntegrations","_useTranslation","useTranslation","t","history","useHistory","_useSparkpostDomain","useSparkpostDomain","onCreateDomain","isCreating","handleSubmit","values","_ref2","setFieldError","response","alreadyVerified","push","domain","buildUrl","error","_error$response","errorMessage","data","handleCancel","_jsx","PageWrapper","children","PageContent","Form","className","formikProps","initialValues","validationSchema","VALIDATION_SCHEMA","onSubmit","_ref3","CardLayout","title","String","actionBlock","ActionBlock","cancelButtonProps","onClick","isSubmitting","submitButtonProps","label","description","_jsxs","Callout","style","Input","required","unlimitedChars","name","type","helpText","placeholder"],"mappings":"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"}
@@ -7,7 +7,8 @@ import { isEmpty, pathOr } from 'ramda';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { useHistory } from 'react-router-dom';
9
9
  import { b as PURPOSE_COLORS, D as DEFAULT_COLOR, c as VERIFICATION_STATUS_CONFIG, d as VERIFICATION_STATUSES, P as PageWrapper, a as PageContent } from './constants-Cvxv8ly7.js';
10
- import { a as useFetchSparkpostDomain, u as useSparkpostDomain } from './useSparkpostDomain-DdG5InhX.js';
10
+ import { u as useSparkpostDomain } from './useSparkpostDomain-DNDqvZtR.js';
11
+ import { u as useFetchSparkpostDomain } from './useSparkpostApi-W7XibjIp.js';
11
12
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
12
13
  import Typography from '@bigbinary/neetoui/Typography';
13
14
  import Tag from '@bigbinary/neetoui/Tag';
@@ -1 +1 @@
1
- {"version":3,"file":"SparkpostDomainVerify.js","sources":["../app/javascript/src/components/SparkpostDomain/RecordField.jsx","../app/javascript/src/components/SparkpostDomain/DnsRecordsSection.jsx","../app/javascript/src/components/SparkpostDomain/VerificationActions.jsx","../app/javascript/src/components/SparkpostDomain/VerificationInstructions.jsx","../app/javascript/src/components/SparkpostDomain/VerificationStatusCallout.jsx","../app/javascript/src/components/SparkpostDomain/Verify.jsx"],"sourcesContent":["import CopyToClipboardButton from \"neetomolecules/CopyToClipboardButton\";\nimport { Typography } from \"neetoui\";\n\nconst RecordField = ({ label, value }) => (\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"flex items-center justify-between\">\n <Typography style=\"h5\">{label}</Typography>\n </div>\n <code className=\"neeto-ui-text-gray-800 neeto-ui-bg-gray-100 neeto-ui-rounded-md relative block p-4 pe-10 font-mono text-xs break-all\">\n {value}\n <CopyToClipboardButton\n {...{ value }}\n className=\"absolute top-1 end-1 shrink-0\"\n style=\"tertiary\"\n />\n </code>\n </div>\n);\n\nexport default RecordField;\n","import { Typography, Tag } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PURPOSE_COLORS, DEFAULT_COLOR } from \"./constants\";\nimport RecordField from \"./RecordField\";\n\nconst DnsRecordsSection = ({ dnsRecords, domain, sparkpostData }) => {\n const { t } = useTranslation();\n\n const formatPurpose = purpose => {\n switch (purpose) {\n case \"dkim\":\n return t(\"neetoEmailDelivery.sparkpost.dnsRecords.dkimSigning\");\n case \"txt\":\n return t(\"neetoEmailDelivery.sparkpost.dnsRecords.txtVerification\");\n default:\n return purpose;\n }\n };\n\n const formatRecordName = hostname => {\n if (!hostname) return \"\";\n\n return hostname.endsWith(`.${domain}`) ? hostname : `${hostname}.${domain}`;\n };\n\n const { status, txtVerificationValue, txtVerificationHostname } =\n sparkpostData;\n\n const allRecords = [];\n const isTxtUnverified = status === \"txt_unverified\";\n\n if (isTxtUnverified) {\n if (txtVerificationValue && txtVerificationHostname) {\n allRecords.push({\n type: \"TXT\",\n purpose: \"txt\",\n hostname: txtVerificationHostname,\n value: txtVerificationValue,\n });\n }\n } else {\n allRecords.push(...dnsRecords);\n }\n\n if (isEmpty(allRecords)) {\n return (\n <div className=\"p-8 text-center\">\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {sparkpostData?.connected\n ? t(\"neetoEmailDelivery.sparkpost.dnsRecords.alreadyVerified\")\n : t(\"neetoEmailDelivery.sparkpost.dnsRecords.loading\")}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-4\">\n <Typography style=\"h4\" weight=\"medium\">\n {t(\"neetoEmailDelivery.sparkpost.dnsRecords.title\")}\n </Typography>\n {allRecords.map((record, index) => (\n <div\n className=\"neeto-ui-rounded-lg neeto-ui-bg-white neeto-ui-border-gray-300 border p-3\"\n key={index}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Tag\n label={formatPurpose(record.purpose)}\n size=\"small\"\n style={PURPOSE_COLORS[record.purpose] || DEFAULT_COLOR}\n />\n <Tag label={record.type} size=\"small\" style=\"secondary\" />\n </div>\n </div>\n <div className=\"flex flex-col gap-4\">\n <RecordField\n label={t(\"neetoEmailDelivery.sparkpost.dnsRecords.nameLabel\")}\n value={formatRecordName(record.hostname)}\n />\n <RecordField\n label={t(\"neetoEmailDelivery.sparkpost.dnsRecords.valueLabel\")}\n value={record.value}\n />\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default DnsRecordsSection;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button } from \"neetoui\";\n\nconst VerificationActions = withT(\n ({ t, isVerifying, verificationStatus, onVerify, onCancel }) => (\n <div className=\"flex gap-3\">\n <Button\n disabled={isVerifying || verificationStatus === \"success\"}\n loading={isVerifying}\n onClick={onVerify}\n >\n {isVerifying\n ? t(\"neetoEmailDelivery.sparkpost.verify.verifying\")\n : t(\"neetoEmailDelivery.sparkpost.verify.verifyDomain\")}\n </Button>\n <Button disabled={isVerifying} style=\"secondary\" onClick={onCancel}>\n {t(\"neetoEmailDelivery.sparkpost.verify.cancel\")}\n </Button>\n </div>\n )\n);\n\nexport default VerificationActions;\n","import { Typography, Callout } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst VerificationInstructions = () => {\n const { t } = useTranslation();\n\n const instructionText = t(\n \"neetoEmailDelivery.sparkpost.instructions.fullText\"\n );\n const lines = instructionText.split(\"\\n\");\n\n return (\n <Callout style=\"info\">\n <div className=\"w-full\">\n <Typography style=\"body2\">\n {lines.map((line, index) => (\n <span key={index}>\n {line}\n {index < lines.length - 1 && <br />}\n </span>\n ))}\n </Typography>\n </div>\n </Callout>\n );\n};\n\nexport default VerificationInstructions;\n","import { Callout, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { VERIFICATION_STATUS_CONFIG } from \"./constants\";\n\nconst VerificationStatusCallout = ({ verificationStatus }) => {\n const { t } = useTranslation();\n\n const config = VERIFICATION_STATUS_CONFIG[verificationStatus];\n\n if (!config) return null;\n\n return (\n <Callout style={config.style}>\n <div className=\"space-y-1\">\n <Typography style=\"body2\" weight=\"medium\">\n {t(config.titleKey)}\n </Typography>\n <Typography style=\"body3\">{t(config.descriptionKey)}</Typography>\n </div>\n </Callout>\n );\n};\n\nexport default VerificationStatusCallout;\n","import { useState, useEffect } from \"react\";\n\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { Spinner } from \"neetoui\";\nimport { pathOr } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { PageContent, PageWrapper } from \"components/PageLayout\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\nimport { useFetchSparkpostDomain } from \"hooks/reactQuery/integrations/useSparkpostApi\";\n\nimport { VERIFICATION_STATUSES } from \"./constants\";\nimport DnsRecordsSection from \"./DnsRecordsSection\";\nimport VerificationActions from \"./VerificationActions\";\nimport VerificationInstructions from \"./VerificationInstructions\";\nimport VerificationStatusCallout from \"./VerificationStatusCallout\";\n\nconst SparkpostDomainVerify = ({\n ownerId,\n canManageIntegrations,\n emailDeliveryIndexRoute,\n}) => {\n const [verificationStatus, setVerificationStatus] = useState(\"\");\n const { t } = useTranslation();\n\n const history = useHistory();\n\n const { domain: queryDomain } = useQueryParams();\n\n const { data: sparkpostData, isLoading } = useFetchSparkpostDomain(ownerId);\n const { onVerifyDomain, isVerifying } = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const domain = pathOr(queryDomain, [\"domain\"], sparkpostData);\n const dnsRecords = pathOr([], [\"verificationRecords\"], sparkpostData);\n\n useEffect(() => {\n // Check if domain is already verified\n if (!sparkpostData?.connected) return;\n setVerificationStatus(VERIFICATION_STATUSES.SUCCESS);\n setTimeout(() => {\n history.push(emailDeliveryIndexRoute);\n }, 5000);\n }, [sparkpostData, emailDeliveryIndexRoute, history]);\n\n const handleVerify = () => {\n onVerifyDomain(\n response => {\n if (response?.status === \"active\") {\n setVerificationStatus(VERIFICATION_STATUSES.SUCCESS);\n setTimeout(() => {\n history.push(emailDeliveryIndexRoute);\n }, 3000);\n } else {\n setVerificationStatus(VERIFICATION_STATUSES.PENDING);\n }\n },\n _error => {\n setVerificationStatus(VERIFICATION_STATUSES.ERROR);\n }\n );\n };\n\n const isVerificationSuccessful =\n verificationStatus === VERIFICATION_STATUSES.SUCCESS;\n\n const handleCancel = () => {\n history.push(emailDeliveryIndexRoute);\n };\n\n if (isLoading) {\n return (\n <div className=\"flex justify-center p-6\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <PageWrapper>\n <PageContent>\n <CardLayout\n title={t(\"neetoEmailDelivery.sparkpost.verify.title\")}\n actionBlock={\n <VerificationActions\n {...{ isVerifying, verificationStatus }}\n onCancel={handleCancel}\n onVerify={handleVerify}\n />\n }\n description={t(\"neetoEmailDelivery.sparkpost.verify.description\", {\n domain,\n }).replace(/<strong>|<\\/strong>/g, \"\")}\n >\n <div className=\"flex flex-col gap-4\">\n <VerificationStatusCallout {...{ verificationStatus }} />\n {!isVerificationSuccessful && (\n <>\n <DnsRecordsSection {...{ dnsRecords, domain, sparkpostData }} />\n <VerificationInstructions />\n </>\n )}\n </div>\n </CardLayout>\n </PageContent>\n </PageWrapper>\n );\n};\n\nexport default SparkpostDomainVerify;\n"],"names":["RecordField","_ref","label","value","_jsxs","className","children","_jsx","Typography","style","CopyToClipboardButton","DnsRecordsSection","dnsRecords","domain","sparkpostData","_useTranslation","useTranslation","t","formatPurpose","purpose","formatRecordName","hostname","endsWith","concat","status","txtVerificationValue","txtVerificationHostname","allRecords","isTxtUnverified","push","type","apply","_toConsumableArray","isEmpty","connected","weight","map","record","index","Tag","size","PURPOSE_COLORS","DEFAULT_COLOR","VerificationActions","withT","isVerifying","verificationStatus","onVerify","onCancel","Button","disabled","loading","onClick","VerificationInstructions","instructionText","lines","split","Callout","line","length","VerificationStatusCallout","config","VERIFICATION_STATUS_CONFIG","titleKey","descriptionKey","SparkpostDomainVerify","ownerId","canManageIntegrations","emailDeliveryIndexRoute","_useState","useState","_useState2","_slicedToArray","setVerificationStatus","history","useHistory","_useQueryParams","useQueryParams","queryDomain","_useFetchSparkpostDom","useFetchSparkpostDomain","data","isLoading","_useSparkpostDomain","useSparkpostDomain","onVerifyDomain","pathOr","useEffect","VERIFICATION_STATUSES","SUCCESS","setTimeout","handleVerify","response","PENDING","_error","ERROR","isVerificationSuccessful","handleCancel","Spinner","PageWrapper","PageContent","CardLayout","title","actionBlock","description","replace","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"SparkpostDomainVerify.js","sources":["../app/javascript/src/components/SparkpostDomain/RecordField.jsx","../app/javascript/src/components/SparkpostDomain/DnsRecordsSection.jsx","../app/javascript/src/components/SparkpostDomain/VerificationActions.jsx","../app/javascript/src/components/SparkpostDomain/VerificationInstructions.jsx","../app/javascript/src/components/SparkpostDomain/VerificationStatusCallout.jsx","../app/javascript/src/components/SparkpostDomain/Verify.jsx"],"sourcesContent":["import CopyToClipboardButton from \"neetomolecules/CopyToClipboardButton\";\nimport { Typography } from \"neetoui\";\n\nconst RecordField = ({ label, value }) => (\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"flex items-center justify-between\">\n <Typography style=\"h5\">{label}</Typography>\n </div>\n <code className=\"neeto-ui-text-gray-800 neeto-ui-bg-gray-100 neeto-ui-rounded-md relative block p-4 pe-10 font-mono text-xs break-all\">\n {value}\n <CopyToClipboardButton\n {...{ value }}\n className=\"absolute top-1 end-1 shrink-0\"\n style=\"tertiary\"\n />\n </code>\n </div>\n);\n\nexport default RecordField;\n","import { Typography, Tag } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PURPOSE_COLORS, DEFAULT_COLOR } from \"./constants\";\nimport RecordField from \"./RecordField\";\n\nconst DnsRecordsSection = ({ dnsRecords, domain, sparkpostData }) => {\n const { t } = useTranslation();\n\n const formatPurpose = purpose => {\n switch (purpose) {\n case \"dkim\":\n return t(\"neetoEmailDelivery.sparkpost.dnsRecords.dkimSigning\");\n case \"txt\":\n return t(\"neetoEmailDelivery.sparkpost.dnsRecords.txtVerification\");\n default:\n return purpose;\n }\n };\n\n const formatRecordName = hostname => {\n if (!hostname) return \"\";\n\n return hostname.endsWith(`.${domain}`) ? hostname : `${hostname}.${domain}`;\n };\n\n const { status, txtVerificationValue, txtVerificationHostname } =\n sparkpostData;\n\n const allRecords = [];\n const isTxtUnverified = status === \"txt_unverified\";\n\n if (isTxtUnverified) {\n if (txtVerificationValue && txtVerificationHostname) {\n allRecords.push({\n type: \"TXT\",\n purpose: \"txt\",\n hostname: txtVerificationHostname,\n value: txtVerificationValue,\n });\n }\n } else {\n allRecords.push(...dnsRecords);\n }\n\n if (isEmpty(allRecords)) {\n return (\n <div className=\"p-8 text-center\">\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {sparkpostData?.connected\n ? t(\"neetoEmailDelivery.sparkpost.dnsRecords.alreadyVerified\")\n : t(\"neetoEmailDelivery.sparkpost.dnsRecords.loading\")}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-4\">\n <Typography style=\"h4\" weight=\"medium\">\n {t(\"neetoEmailDelivery.sparkpost.dnsRecords.title\")}\n </Typography>\n {allRecords.map((record, index) => (\n <div\n className=\"neeto-ui-rounded-lg neeto-ui-bg-white neeto-ui-border-gray-300 border p-3\"\n key={index}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Tag\n label={formatPurpose(record.purpose)}\n size=\"small\"\n style={PURPOSE_COLORS[record.purpose] || DEFAULT_COLOR}\n />\n <Tag label={record.type} size=\"small\" style=\"secondary\" />\n </div>\n </div>\n <div className=\"flex flex-col gap-4\">\n <RecordField\n label={t(\"neetoEmailDelivery.sparkpost.dnsRecords.nameLabel\")}\n value={formatRecordName(record.hostname)}\n />\n <RecordField\n label={t(\"neetoEmailDelivery.sparkpost.dnsRecords.valueLabel\")}\n value={record.value}\n />\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default DnsRecordsSection;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button } from \"neetoui\";\n\nconst VerificationActions = withT(\n ({ t, isVerifying, verificationStatus, onVerify, onCancel }) => (\n <div className=\"flex gap-3\">\n <Button\n disabled={isVerifying || verificationStatus === \"success\"}\n loading={isVerifying}\n onClick={onVerify}\n >\n {isVerifying\n ? t(\"neetoEmailDelivery.sparkpost.verify.verifying\")\n : t(\"neetoEmailDelivery.sparkpost.verify.verifyDomain\")}\n </Button>\n <Button disabled={isVerifying} style=\"secondary\" onClick={onCancel}>\n {t(\"neetoEmailDelivery.sparkpost.verify.cancel\")}\n </Button>\n </div>\n )\n);\n\nexport default VerificationActions;\n","import { Typography, Callout } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst VerificationInstructions = () => {\n const { t } = useTranslation();\n\n const instructionText = t(\n \"neetoEmailDelivery.sparkpost.instructions.fullText\"\n );\n const lines = instructionText.split(\"\\n\");\n\n return (\n <Callout style=\"info\">\n <div className=\"w-full\">\n <Typography style=\"body2\">\n {lines.map((line, index) => (\n <span key={index}>\n {line}\n {index < lines.length - 1 && <br />}\n </span>\n ))}\n </Typography>\n </div>\n </Callout>\n );\n};\n\nexport default VerificationInstructions;\n","import { Callout, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { VERIFICATION_STATUS_CONFIG } from \"./constants\";\n\nconst VerificationStatusCallout = ({ verificationStatus }) => {\n const { t } = useTranslation();\n\n const config = VERIFICATION_STATUS_CONFIG[verificationStatus];\n\n if (!config) return null;\n\n return (\n <Callout style={config.style}>\n <div className=\"space-y-1\">\n <Typography style=\"body2\" weight=\"medium\">\n {t(config.titleKey)}\n </Typography>\n <Typography style=\"body3\">{t(config.descriptionKey)}</Typography>\n </div>\n </Callout>\n );\n};\n\nexport default VerificationStatusCallout;\n","import { useState, useEffect } from \"react\";\n\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { Spinner } from \"neetoui\";\nimport { pathOr } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { PageContent, PageWrapper } from \"components/PageLayout\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\nimport { useFetchSparkpostDomain } from \"hooks/reactQuery/integrations/useSparkpostApi\";\n\nimport { VERIFICATION_STATUSES } from \"./constants\";\nimport DnsRecordsSection from \"./DnsRecordsSection\";\nimport VerificationActions from \"./VerificationActions\";\nimport VerificationInstructions from \"./VerificationInstructions\";\nimport VerificationStatusCallout from \"./VerificationStatusCallout\";\n\nconst SparkpostDomainVerify = ({\n ownerId,\n canManageIntegrations,\n emailDeliveryIndexRoute,\n}) => {\n const [verificationStatus, setVerificationStatus] = useState(\"\");\n const { t } = useTranslation();\n\n const history = useHistory();\n\n const { domain: queryDomain } = useQueryParams();\n\n const { data: sparkpostData, isLoading } = useFetchSparkpostDomain(ownerId);\n const { onVerifyDomain, isVerifying } = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const domain = pathOr(queryDomain, [\"domain\"], sparkpostData);\n const dnsRecords = pathOr([], [\"verificationRecords\"], sparkpostData);\n\n useEffect(() => {\n // Check if domain is already verified\n if (!sparkpostData?.connected) return;\n setVerificationStatus(VERIFICATION_STATUSES.SUCCESS);\n setTimeout(() => {\n history.push(emailDeliveryIndexRoute);\n }, 5000);\n }, [sparkpostData, emailDeliveryIndexRoute, history]);\n\n const handleVerify = () => {\n onVerifyDomain(\n response => {\n if (response?.status === \"active\") {\n setVerificationStatus(VERIFICATION_STATUSES.SUCCESS);\n setTimeout(() => {\n history.push(emailDeliveryIndexRoute);\n }, 3000);\n } else {\n setVerificationStatus(VERIFICATION_STATUSES.PENDING);\n }\n },\n _error => {\n setVerificationStatus(VERIFICATION_STATUSES.ERROR);\n }\n );\n };\n\n const isVerificationSuccessful =\n verificationStatus === VERIFICATION_STATUSES.SUCCESS;\n\n const handleCancel = () => {\n history.push(emailDeliveryIndexRoute);\n };\n\n if (isLoading) {\n return (\n <div className=\"flex justify-center p-6\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <PageWrapper>\n <PageContent>\n <CardLayout\n title={t(\"neetoEmailDelivery.sparkpost.verify.title\")}\n actionBlock={\n <VerificationActions\n {...{ isVerifying, verificationStatus }}\n onCancel={handleCancel}\n onVerify={handleVerify}\n />\n }\n description={t(\"neetoEmailDelivery.sparkpost.verify.description\", {\n domain,\n }).replace(/<strong>|<\\/strong>/g, \"\")}\n >\n <div className=\"flex flex-col gap-4\">\n <VerificationStatusCallout {...{ verificationStatus }} />\n {!isVerificationSuccessful && (\n <>\n <DnsRecordsSection {...{ dnsRecords, domain, sparkpostData }} />\n <VerificationInstructions />\n </>\n )}\n </div>\n </CardLayout>\n </PageContent>\n </PageWrapper>\n );\n};\n\nexport default SparkpostDomainVerify;\n"],"names":["RecordField","_ref","label","value","_jsxs","className","children","_jsx","Typography","style","CopyToClipboardButton","DnsRecordsSection","dnsRecords","domain","sparkpostData","_useTranslation","useTranslation","t","formatPurpose","purpose","formatRecordName","hostname","endsWith","concat","status","txtVerificationValue","txtVerificationHostname","allRecords","isTxtUnverified","push","type","apply","_toConsumableArray","isEmpty","connected","weight","map","record","index","Tag","size","PURPOSE_COLORS","DEFAULT_COLOR","VerificationActions","withT","isVerifying","verificationStatus","onVerify","onCancel","Button","disabled","loading","onClick","VerificationInstructions","instructionText","lines","split","Callout","line","length","VerificationStatusCallout","config","VERIFICATION_STATUS_CONFIG","titleKey","descriptionKey","SparkpostDomainVerify","ownerId","canManageIntegrations","emailDeliveryIndexRoute","_useState","useState","_useState2","_slicedToArray","setVerificationStatus","history","useHistory","_useQueryParams","useQueryParams","queryDomain","_useFetchSparkpostDom","useFetchSparkpostDomain","data","isLoading","_useSparkpostDomain","useSparkpostDomain","onVerifyDomain","pathOr","useEffect","VERIFICATION_STATUSES","SUCCESS","setTimeout","handleVerify","response","PENDING","_error","ERROR","isVerificationSuccessful","handleCancel","Spinner","PageWrapper","PageContent","CardLayout","title","actionBlock","description","replace","_Fragment"],"mappings":"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"}