@bigbinary/neeto-email-delivery-frontend 1.0.10 → 1.0.12
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/README.md +106 -6
- package/dist/EmailDeliveryScreen.js +3 -1
- package/dist/EmailDeliveryScreen.js.map +1 -1
- package/dist/SparkpostDomainSetup.js +2 -2
- package/dist/SparkpostDomainVerify.js +2 -2
- package/dist/cjs/EmailDeliveryScreen.js +3 -1
- package/dist/cjs/EmailDeliveryScreen.js.map +1 -1
- package/dist/cjs/SparkpostDomainSetup.js +2 -2
- package/dist/cjs/SparkpostDomainVerify.js +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/{useSparkpostDomain-wsENCoto.js → useSparkpostDomain-CK-k6Xrr.js} +16 -1
- package/dist/useSparkpostDomain-CK-k6Xrr.js.map +1 -0
- package/dist/{useSparkpostDomain-DO4bG1HD.js → useSparkpostDomain-DDI4pHcZ.js} +17 -3
- package/dist/useSparkpostDomain-DDI4pHcZ.js.map +1 -0
- package/package.json +11 -11
- package/dist/useSparkpostDomain-DO4bG1HD.js.map +0 -1
- package/dist/useSparkpostDomain-wsENCoto.js.map +0 -1
package/README.md
CHANGED
|
@@ -64,13 +64,18 @@ class ApplicationMailer < NeetoCommonsBackend::ApplicationMailer
|
|
|
64
64
|
# ...
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
-
6. Include NeetoEmailDeliveryEngine::HasEmailIntegrations in the host's owner model
|
|
67
|
+
6. Include NeetoEmailDeliveryEngine::HasEmailIntegrations in the host's owner model and override the `email_delivery_redirect_url` method
|
|
68
68
|
|
|
69
69
|
```diff
|
|
70
70
|
class Form < ApplicationRecord
|
|
71
71
|
# ...
|
|
72
72
|
+ include NeetoEmailDeliveryEngine::HasEmailIntegrations
|
|
73
73
|
# ...
|
|
74
|
+
|
|
75
|
+
def email_delivery_redirect_url
|
|
76
|
+
# "/admin/..."
|
|
77
|
+
end
|
|
78
|
+
|
|
74
79
|
end
|
|
75
80
|
````
|
|
76
81
|
|
|
@@ -81,7 +86,58 @@ end
|
|
|
81
86
|
NeetoEmailDeliveryEngine.owner_class = "Form"
|
|
82
87
|
```
|
|
83
88
|
|
|
84
|
-
8.
|
|
89
|
+
8. Override the `load_owner` private method by adding the following files.
|
|
90
|
+
|
|
91
|
+
- app/overrides/controllers/neeto_email_delivery_engine/integrations/sparkpost_domains_controller_override.rb
|
|
92
|
+
- app/overrides/controllers/neeto_email_delivery_engine/gmail_controller_override.rb
|
|
93
|
+
- app/overrides/controllers/neeto_email_delivery_engine/outlook_controller_override.rb
|
|
94
|
+
|
|
95
|
+
Example:
|
|
96
|
+
|
|
97
|
+
```ruby
|
|
98
|
+
NeetoEmailDeliveryEngine::Api::V1::GmailController.class_eval do
|
|
99
|
+
|
|
100
|
+
private
|
|
101
|
+
def load_owner
|
|
102
|
+
# @owner = current_user
|
|
103
|
+
# OR
|
|
104
|
+
# @owner = @organization.forms.find(params[:owner_id])
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
9. Override the `send_disconnection_email` private method -
|
|
110
|
+
|
|
111
|
+
- app/overrides/services/neeto_email_delivery_engine/gmail/send_email_service_override.rb
|
|
112
|
+
- app/overrides/services/neeto_email_delivery_engine/outlook/send_email_service_override.rb
|
|
113
|
+
|
|
114
|
+
Example:
|
|
115
|
+
|
|
116
|
+
```ruby
|
|
117
|
+
NeetoEmailDeliveryEngine::Gmail::SendEmailService.class_eval do
|
|
118
|
+
|
|
119
|
+
private
|
|
120
|
+
|
|
121
|
+
def send_disconnection_email
|
|
122
|
+
organization = @gmail_account.organization
|
|
123
|
+
# DisconnectionMailer
|
|
124
|
+
# .with(organization_id: organization.id)
|
|
125
|
+
# .send_email(user: @gmail_account.integrable, type: "gmail")
|
|
126
|
+
# .deliver_later
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
10. Add mailgun ingress config in application.rb
|
|
132
|
+
|
|
133
|
+
```ruby
|
|
134
|
+
config.action_mailbox.ingress = :mailgun
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
11. Add `:gmail` and `:outlook` to omniauth_providers in
|
|
138
|
+
config/initializers/extend_user_omniauth.rb.
|
|
139
|
+
|
|
140
|
+
12. The following env variables need to be added to the host application.
|
|
85
141
|
|
|
86
142
|
```
|
|
87
143
|
GOOGLE_OAUTH_CLIENT_ID
|
|
@@ -97,10 +153,25 @@ CONNECT_PUBLIC_KEY
|
|
|
97
153
|
MAILGUN_INGRESS_SIGNING_KEY (needed for our custom logic to verify the Outlook account.)
|
|
98
154
|
```
|
|
99
155
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
156
|
+
13. In secrets.yml add
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
sparkpost:
|
|
160
|
+
sending_domains_key: <%= ENV['SPARKPOST_SENDING_DOMAINS_KEY'] %>
|
|
161
|
+
sending_domains_user_name: SMTP_Injection
|
|
162
|
+
sending_domains_address: smtp.sparkpostmail.com
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
14. Ensure that the domain `<app-name>email.com` (production) and
|
|
166
|
+
`<app-name>email.net` (staging) is correctly setup in Mailgun to accept
|
|
167
|
+
incoming emails. Example: For NeetoForm it would be neetoformemail.com
|
|
168
|
+
(production) and neetoformemail.net (staging).
|
|
169
|
+
|
|
170
|
+
15. Add the following to ApplicationMailbox
|
|
171
|
+
|
|
172
|
+
```ruby
|
|
173
|
+
routing /neetoemaildelivery/i => "neeto_email_delivery_engine/inbound"
|
|
174
|
+
```
|
|
104
175
|
|
|
105
176
|
### Frontend package
|
|
106
177
|
|
|
@@ -226,6 +297,35 @@ host application. This is needed for the verification of the Outlook account.
|
|
|
226
297
|
`outlook_...@outlook.com`), the mailbox flags the account as
|
|
227
298
|
`shadow_account` and marks it as `forbidden` instead of activating it.
|
|
228
299
|
|
|
300
|
+
## Disconnection emails
|
|
301
|
+
|
|
302
|
+
In case the email delivery fails using the Gmail/Outlook integrations, we
|
|
303
|
+
disconnect the integration and send out an email. To customize the email, the
|
|
304
|
+
host application needs to add an override so that they are in control of the
|
|
305
|
+
mailers.
|
|
306
|
+
|
|
307
|
+
```ruby
|
|
308
|
+
# Inside the host application
|
|
309
|
+
|
|
310
|
+
# app/overrides/services/neeto_email_delivery_engine/gmail/send_email_service_override.rb
|
|
311
|
+
NeetoEmailDeliveryEngine::Gmail::SendEmailService.class_eval do
|
|
312
|
+
private
|
|
313
|
+
|
|
314
|
+
def send_disconnection_email
|
|
315
|
+
# Call your mailer logic
|
|
316
|
+
end
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
# app/overrides/services/neeto_email_delivery_engine/outlook/send_email_service_override.rb
|
|
320
|
+
NeetoEmailDeliveryEngine::Outlook::SendEmailService.class_eval do
|
|
321
|
+
private
|
|
322
|
+
|
|
323
|
+
def send_disconnection_email
|
|
324
|
+
# Call your mailer logic
|
|
325
|
+
end
|
|
326
|
+
end
|
|
327
|
+
```
|
|
328
|
+
|
|
229
329
|
## Instructions for Publishing
|
|
230
330
|
|
|
231
331
|
Consult the
|
|
@@ -15,7 +15,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
|
15
15
|
import { useState, useEffect } from 'react';
|
|
16
16
|
import { useQueryClient } from '@tanstack/react-query';
|
|
17
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-
|
|
18
|
+
import { i as invalidateAllIntegrationQueries, u as useSparkpostDomain } from './useSparkpostDomain-DDI4pHcZ.js';
|
|
19
19
|
import { t } from 'i18next';
|
|
20
20
|
import Button from '@bigbinary/neetoui/Button';
|
|
21
21
|
import Tag from '@bigbinary/neetoui/Tag';
|
|
@@ -54,6 +54,7 @@ var useGmail = function useGmail(_ref) {
|
|
|
54
54
|
onSuccess: function onSuccess() {
|
|
55
55
|
showThumbsUpToastr();
|
|
56
56
|
setIsDisconnectAlertOpen(false);
|
|
57
|
+
invalidateAllIntegrationQueries(queryClient, ownerId);
|
|
57
58
|
history.replace(indexRoute);
|
|
58
59
|
}
|
|
59
60
|
});
|
|
@@ -114,6 +115,7 @@ var useOutlook = function useOutlook(_ref) {
|
|
|
114
115
|
onSuccess: function onSuccess() {
|
|
115
116
|
showThumbsUpToastr();
|
|
116
117
|
setIsDisconnectAlertOpen(false);
|
|
118
|
+
invalidateAllIntegrationQueries(queryClient, ownerId);
|
|
117
119
|
history.replace(indexRoute);
|
|
118
120
|
}
|
|
119
121
|
});
|
|
@@ -1 +1 @@
|
|
|
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 exists: data?.exists,\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 exists: data?.exists,\n status: data?.status,\n shadowAccount: data?.shadowAccount,\n isWaitingForTestEmail: data?.status === \"inactive\" && !data?.connected,\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 { Button, Tag, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst IntegrationCard = ({\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 showDisconnect = false,\n}) => {\n const { t } = useTranslation();\n\n const shouldShowDisconnect = isConnected || showDisconnect;\n\n return (\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 {shouldShowDisconnect ? (\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 exists: isGmailExists,\n } = gmailIntegration;\n\n const {\n data: outlookData = {},\n isConnected: isOutlookConnected,\n isLoading: isOutlookLoading,\n isDestroying: isOutlookDisconnecting,\n isWaitingForTestEmail: isOutlookWaitingForTestEmail,\n shadowAccount: isOutlookShadowAccount,\n onDisconnect: onOutlookDisconnect,\n exists: isOutlookExists,\n } = outlookIntegration;\n\n const {\n data: sparkpostData = {},\n isConnected: isSparkpostConnected,\n isLoading: isSparkpostLoading,\n onDisconnect: onSparkpostDisconnect,\n isDestroying: isSparkpostDisconnecting,\n exists: isSparkpostExists,\n } = sparkpostIntegration;\n\n const isLoading = isGmailLoading || isOutlookLoading || isSparkpostLoading;\n const noneExists = !isGmailExists && !isOutlookExists && !isSparkpostExists;\n const showGmail = noneExists || isGmailExists;\n const showOutlook = noneExists || isOutlookExists;\n const showSparkpost = noneExists || isSparkpostExists;\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 const activeMessage =\n (isGmailConnected && t(\"neetoEmailDelivery.gmail.gmailConfigured\")) ||\n (isOutlookConnected && t(\"neetoEmailDelivery.outlook.outlookConfigured\")) ||\n (isSparkpostConnected &&\n t(\"neetoEmailDelivery.sparkpost.ownDomainConfigured\"));\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 {showGmail && (\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 {showOutlook && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.outlook.connectOutlook\"\n description={outlookDescription}\n icon={OutlookIcon}\n isConnected={isOutlookConnected}\n isDisconnecting={isOutlookDisconnecting}\n title={outlookTitle}\n showDisconnect={\n isOutlookWaitingForTestEmail || isOutlookShadowAccount\n }\n onConnect={handleOutlookConnect}\n onDisconnect={onOutlookDisconnect}\n />\n )}\n {/* Own Domain (Sparkpost) Option */}\n {showSparkpost && (\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 {activeMessage && <Callout style=\"success\">{activeMessage}</Callout>}\n {isOutlookWaitingForTestEmail && (\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.outlook.waitingForTestEmail\", {\n email: outlookEmail,\n })}\n </Callout>\n )}\n {isOutlookShadowAccount && (\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.outlook.shadowAccountMessage\", {\n email: outlookEmail,\n })}\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","exists","isConnected","connected","errorMessage","error","useOutlook","_useFetchOutlook","useFetchOutlook","_useFetchOutlook$data","isOutlookFetched","_useDestroyOutlook","useDestroyOutlook","INTEGRATION_OUTLOOK","status","shadowAccount","isWaitingForTestEmail","ERROR_MESSAGES","gmail_permission_not_given","t","outlook_permission_not_given","outlook_invalid_client","outlook_nil_json_web_token","IntegrationCard","Icon","icon","title","description","isDisconnecting","onConnect","connectButtonText","_ref$disconnectButton","disconnectButtonText","_ref$connectedTagText","connectedTagText","_ref$showDisconnect","showDisconnect","_useTranslation","useTranslation","shouldShowDisconnect","_jsx","className","children","_jsxs","size","Typography","style","weight","Tag","label","Button","loading","onClick","EmailDeliveryScreen","ownDomainSetupRoute","_useQueryParams","useQueryParams","errorDescription","isPresent","_errorMessage","concat","Toastr","humanize","gmailIntegration","outlookIntegration","sparkpostIntegration","useSparkpostDomain","_gmailIntegration$dat","gmailData","isGmailConnected","isGmailLoading","isGmailDisconnecting","onGmailDisconnect","isGmailExists","_outlookIntegration$d","outlookData","isOutlookConnected","isOutlookLoading","isOutlookDisconnecting","isOutlookWaitingForTestEmail","isOutlookShadowAccount","onOutlookDisconnect","isOutlookExists","_sparkpostIntegration","sparkpostData","isSparkpostConnected","isSparkpostLoading","onSparkpostDisconnect","isSparkpostDisconnecting","isSparkpostExists","noneExists","showGmail","showOutlook","showSparkpost","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","activeMessage","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\";\nimport { invalidateAllIntegrationQueries } from \"src/utils\";\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 invalidateAllIntegrationQueries(queryClient, ownerId);\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 exists: data?.exists,\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\";\nimport { invalidateAllIntegrationQueries } from \"src/utils\";\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 invalidateAllIntegrationQueries(queryClient, ownerId);\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 exists: data?.exists,\n status: data?.status,\n shadowAccount: data?.shadowAccount,\n isWaitingForTestEmail: data?.status === \"inactive\" && !data?.connected,\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 { Button, Tag, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst IntegrationCard = ({\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 showDisconnect = false,\n}) => {\n const { t } = useTranslation();\n\n const shouldShowDisconnect = isConnected || showDisconnect;\n\n return (\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 {shouldShowDisconnect ? (\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 exists: isGmailExists,\n } = gmailIntegration;\n\n const {\n data: outlookData = {},\n isConnected: isOutlookConnected,\n isLoading: isOutlookLoading,\n isDestroying: isOutlookDisconnecting,\n isWaitingForTestEmail: isOutlookWaitingForTestEmail,\n shadowAccount: isOutlookShadowAccount,\n onDisconnect: onOutlookDisconnect,\n exists: isOutlookExists,\n } = outlookIntegration;\n\n const {\n data: sparkpostData = {},\n isConnected: isSparkpostConnected,\n isLoading: isSparkpostLoading,\n onDisconnect: onSparkpostDisconnect,\n isDestroying: isSparkpostDisconnecting,\n exists: isSparkpostExists,\n } = sparkpostIntegration;\n\n const isLoading = isGmailLoading || isOutlookLoading || isSparkpostLoading;\n const noneExists = !isGmailExists && !isOutlookExists && !isSparkpostExists;\n const showGmail = noneExists || isGmailExists;\n const showOutlook = noneExists || isOutlookExists;\n const showSparkpost = noneExists || isSparkpostExists;\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 const activeMessage =\n (isGmailConnected && t(\"neetoEmailDelivery.gmail.gmailConfigured\")) ||\n (isOutlookConnected && t(\"neetoEmailDelivery.outlook.outlookConfigured\")) ||\n (isSparkpostConnected &&\n t(\"neetoEmailDelivery.sparkpost.ownDomainConfigured\"));\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 {showGmail && (\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 {showOutlook && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.outlook.connectOutlook\"\n description={outlookDescription}\n icon={OutlookIcon}\n isConnected={isOutlookConnected}\n isDisconnecting={isOutlookDisconnecting}\n title={outlookTitle}\n showDisconnect={\n isOutlookWaitingForTestEmail || isOutlookShadowAccount\n }\n onConnect={handleOutlookConnect}\n onDisconnect={onOutlookDisconnect}\n />\n )}\n {/* Own Domain (Sparkpost) Option */}\n {showSparkpost && (\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 {activeMessage && <Callout style=\"success\">{activeMessage}</Callout>}\n {isOutlookWaitingForTestEmail && (\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.outlook.waitingForTestEmail\", {\n email: outlookEmail,\n })}\n </Callout>\n )}\n {isOutlookShadowAccount && (\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.outlook.shadowAccountMessage\", {\n email: outlookEmail,\n })}\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","invalidateAllIntegrationQueries","useEffect","invalidateQueries","predicate","query","_query$queryKey","queryKey","key","id","QUERY_KEYS","INTEGRATION_GMAIL","exists","isConnected","connected","errorMessage","error","useOutlook","_useFetchOutlook","useFetchOutlook","_useFetchOutlook$data","isOutlookFetched","_useDestroyOutlook","useDestroyOutlook","INTEGRATION_OUTLOOK","status","shadowAccount","isWaitingForTestEmail","ERROR_MESSAGES","gmail_permission_not_given","t","outlook_permission_not_given","outlook_invalid_client","outlook_nil_json_web_token","IntegrationCard","Icon","icon","title","description","isDisconnecting","onConnect","connectButtonText","_ref$disconnectButton","disconnectButtonText","_ref$connectedTagText","connectedTagText","_ref$showDisconnect","showDisconnect","_useTranslation","useTranslation","shouldShowDisconnect","_jsx","className","children","_jsxs","size","Typography","style","weight","Tag","label","Button","loading","onClick","EmailDeliveryScreen","ownDomainSetupRoute","_useQueryParams","useQueryParams","errorDescription","isPresent","_errorMessage","concat","Toastr","humanize","gmailIntegration","outlookIntegration","sparkpostIntegration","useSparkpostDomain","_gmailIntegration$dat","gmailData","isGmailConnected","isGmailLoading","isGmailDisconnecting","onGmailDisconnect","isGmailExists","_outlookIntegration$d","outlookData","isOutlookConnected","isOutlookLoading","isOutlookDisconnecting","isOutlookWaitingForTestEmail","isOutlookShadowAccount","onOutlookDisconnect","isOutlookExists","_sparkpostIntegration","sparkpostData","isSparkpostConnected","isSparkpostLoading","onSparkpostDisconnect","isSparkpostDisconnecting","isSparkpostExists","noneExists","showGmail","showOutlook","showSparkpost","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","activeMessage","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-
|
|
10
|
+
import { u as useSparkpostDomain } from './useSparkpostDomain-DDI4pHcZ.js';
|
|
11
11
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
12
12
|
import '@babel/runtime/helpers/defineProperty';
|
|
13
13
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
@@ -18,9 +18,9 @@ import '@bigbinary/neeto-molecules/Header';
|
|
|
18
18
|
import 'i18next';
|
|
19
19
|
import 'yup';
|
|
20
20
|
import '@babel/runtime/helpers/slicedToArray';
|
|
21
|
+
import '@tanstack/react-query';
|
|
21
22
|
import '@bigbinary/neetoui/Toastr';
|
|
22
23
|
import './useSparkpostApi-W7XibjIp.js';
|
|
23
|
-
import '@tanstack/react-query';
|
|
24
24
|
import '@bigbinary/neeto-commons-frontend/react-utils';
|
|
25
25
|
import 'axios';
|
|
26
26
|
|
|
@@ -7,7 +7,7 @@ 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 { u as useSparkpostDomain } from './useSparkpostDomain-
|
|
10
|
+
import { u as useSparkpostDomain } from './useSparkpostDomain-DDI4pHcZ.js';
|
|
11
11
|
import { u as useFetchSparkpostDomain } from './useSparkpostApi-W7XibjIp.js';
|
|
12
12
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
13
13
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
@@ -23,8 +23,8 @@ import '@bigbinary/neeto-molecules/Container';
|
|
|
23
23
|
import '@bigbinary/neeto-molecules/Header';
|
|
24
24
|
import 'i18next';
|
|
25
25
|
import 'yup';
|
|
26
|
-
import '@bigbinary/neetoui/Toastr';
|
|
27
26
|
import '@tanstack/react-query';
|
|
27
|
+
import '@bigbinary/neetoui/Toastr';
|
|
28
28
|
import 'axios';
|
|
29
29
|
import '@bigbinary/neeto-commons-frontend/utils';
|
|
30
30
|
|
|
@@ -17,7 +17,7 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
|
17
17
|
var react = require('react');
|
|
18
18
|
var reactQuery = require('@tanstack/react-query');
|
|
19
19
|
var useOutlookIntegrationApi = require('../useOutlookIntegrationApi-CtHj_BzG.js');
|
|
20
|
-
var useSparkpostDomain = require('../useSparkpostDomain-
|
|
20
|
+
var useSparkpostDomain = require('../useSparkpostDomain-CK-k6Xrr.js');
|
|
21
21
|
var i18next = require('i18next');
|
|
22
22
|
var Button = require('@bigbinary/neetoui/Button');
|
|
23
23
|
var Tag = require('@bigbinary/neetoui/Tag');
|
|
@@ -56,6 +56,7 @@ var useGmail = function useGmail(_ref) {
|
|
|
56
56
|
onSuccess: function onSuccess() {
|
|
57
57
|
utils.showThumbsUpToastr();
|
|
58
58
|
setIsDisconnectAlertOpen(false);
|
|
59
|
+
useSparkpostDomain.invalidateAllIntegrationQueries(queryClient, ownerId);
|
|
59
60
|
history.replace(indexRoute);
|
|
60
61
|
}
|
|
61
62
|
});
|
|
@@ -116,6 +117,7 @@ var useOutlook = function useOutlook(_ref) {
|
|
|
116
117
|
onSuccess: function onSuccess() {
|
|
117
118
|
utils.showThumbsUpToastr();
|
|
118
119
|
setIsDisconnectAlertOpen(false);
|
|
120
|
+
useSparkpostDomain.invalidateAllIntegrationQueries(queryClient, ownerId);
|
|
119
121
|
history.replace(indexRoute);
|
|
120
122
|
}
|
|
121
123
|
});
|
|
@@ -1 +1 @@
|
|
|
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 exists: data?.exists,\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 exists: data?.exists,\n status: data?.status,\n shadowAccount: data?.shadowAccount,\n isWaitingForTestEmail: data?.status === \"inactive\" && !data?.connected,\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 { Button, Tag, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst IntegrationCard = ({\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 showDisconnect = false,\n}) => {\n const { t } = useTranslation();\n\n const shouldShowDisconnect = isConnected || showDisconnect;\n\n return (\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 {shouldShowDisconnect ? (\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 exists: isGmailExists,\n } = gmailIntegration;\n\n const {\n data: outlookData = {},\n isConnected: isOutlookConnected,\n isLoading: isOutlookLoading,\n isDestroying: isOutlookDisconnecting,\n isWaitingForTestEmail: isOutlookWaitingForTestEmail,\n shadowAccount: isOutlookShadowAccount,\n onDisconnect: onOutlookDisconnect,\n exists: isOutlookExists,\n } = outlookIntegration;\n\n const {\n data: sparkpostData = {},\n isConnected: isSparkpostConnected,\n isLoading: isSparkpostLoading,\n onDisconnect: onSparkpostDisconnect,\n isDestroying: isSparkpostDisconnecting,\n exists: isSparkpostExists,\n } = sparkpostIntegration;\n\n const isLoading = isGmailLoading || isOutlookLoading || isSparkpostLoading;\n const noneExists = !isGmailExists && !isOutlookExists && !isSparkpostExists;\n const showGmail = noneExists || isGmailExists;\n const showOutlook = noneExists || isOutlookExists;\n const showSparkpost = noneExists || isSparkpostExists;\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 const activeMessage =\n (isGmailConnected && t(\"neetoEmailDelivery.gmail.gmailConfigured\")) ||\n (isOutlookConnected && t(\"neetoEmailDelivery.outlook.outlookConfigured\")) ||\n (isSparkpostConnected &&\n t(\"neetoEmailDelivery.sparkpost.ownDomainConfigured\"));\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 {showGmail && (\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 {showOutlook && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.outlook.connectOutlook\"\n description={outlookDescription}\n icon={OutlookIcon}\n isConnected={isOutlookConnected}\n isDisconnecting={isOutlookDisconnecting}\n title={outlookTitle}\n showDisconnect={\n isOutlookWaitingForTestEmail || isOutlookShadowAccount\n }\n onConnect={handleOutlookConnect}\n onDisconnect={onOutlookDisconnect}\n />\n )}\n {/* Own Domain (Sparkpost) Option */}\n {showSparkpost && (\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 {activeMessage && <Callout style=\"success\">{activeMessage}</Callout>}\n {isOutlookWaitingForTestEmail && (\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.outlook.waitingForTestEmail\", {\n email: outlookEmail,\n })}\n </Callout>\n )}\n {isOutlookShadowAccount && (\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.outlook.shadowAccountMessage\", {\n email: outlookEmail,\n })}\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","exists","isConnected","connected","errorMessage","error","useOutlook","_useFetchOutlook","useFetchOutlook","_useFetchOutlook$data","isOutlookFetched","_useDestroyOutlook","useDestroyOutlook","INTEGRATION_OUTLOOK","status","shadowAccount","isWaitingForTestEmail","ERROR_MESSAGES","gmail_permission_not_given","t","outlook_permission_not_given","outlook_invalid_client","outlook_nil_json_web_token","IntegrationCard","Icon","icon","title","description","isDisconnecting","onConnect","connectButtonText","_ref$disconnectButton","disconnectButtonText","_ref$connectedTagText","connectedTagText","_ref$showDisconnect","showDisconnect","_useTranslation","useTranslation","shouldShowDisconnect","_jsx","className","children","_jsxs","size","Typography","style","weight","Tag","label","Button","loading","onClick","EmailDeliveryScreen","ownDomainSetupRoute","_useQueryParams","useQueryParams","errorDescription","isPresent","_errorMessage","concat","Toastr","humanize","gmailIntegration","outlookIntegration","sparkpostIntegration","useSparkpostDomain","_gmailIntegration$dat","gmailData","isGmailConnected","isGmailLoading","isGmailDisconnecting","onGmailDisconnect","isGmailExists","_outlookIntegration$d","outlookData","isOutlookConnected","isOutlookLoading","isOutlookDisconnecting","isOutlookWaitingForTestEmail","isOutlookShadowAccount","onOutlookDisconnect","isOutlookExists","_sparkpostIntegration","sparkpostData","isSparkpostConnected","isSparkpostLoading","onSparkpostDisconnect","isSparkpostDisconnecting","isSparkpostExists","noneExists","showGmail","showOutlook","showSparkpost","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","activeMessage","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\";\nimport { invalidateAllIntegrationQueries } from \"src/utils\";\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 invalidateAllIntegrationQueries(queryClient, ownerId);\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 exists: data?.exists,\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\";\nimport { invalidateAllIntegrationQueries } from \"src/utils\";\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 invalidateAllIntegrationQueries(queryClient, ownerId);\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 exists: data?.exists,\n status: data?.status,\n shadowAccount: data?.shadowAccount,\n isWaitingForTestEmail: data?.status === \"inactive\" && !data?.connected,\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 { Button, Tag, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst IntegrationCard = ({\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 showDisconnect = false,\n}) => {\n const { t } = useTranslation();\n\n const shouldShowDisconnect = isConnected || showDisconnect;\n\n return (\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 {shouldShowDisconnect ? (\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 exists: isGmailExists,\n } = gmailIntegration;\n\n const {\n data: outlookData = {},\n isConnected: isOutlookConnected,\n isLoading: isOutlookLoading,\n isDestroying: isOutlookDisconnecting,\n isWaitingForTestEmail: isOutlookWaitingForTestEmail,\n shadowAccount: isOutlookShadowAccount,\n onDisconnect: onOutlookDisconnect,\n exists: isOutlookExists,\n } = outlookIntegration;\n\n const {\n data: sparkpostData = {},\n isConnected: isSparkpostConnected,\n isLoading: isSparkpostLoading,\n onDisconnect: onSparkpostDisconnect,\n isDestroying: isSparkpostDisconnecting,\n exists: isSparkpostExists,\n } = sparkpostIntegration;\n\n const isLoading = isGmailLoading || isOutlookLoading || isSparkpostLoading;\n const noneExists = !isGmailExists && !isOutlookExists && !isSparkpostExists;\n const showGmail = noneExists || isGmailExists;\n const showOutlook = noneExists || isOutlookExists;\n const showSparkpost = noneExists || isSparkpostExists;\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 const activeMessage =\n (isGmailConnected && t(\"neetoEmailDelivery.gmail.gmailConfigured\")) ||\n (isOutlookConnected && t(\"neetoEmailDelivery.outlook.outlookConfigured\")) ||\n (isSparkpostConnected &&\n t(\"neetoEmailDelivery.sparkpost.ownDomainConfigured\"));\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 {showGmail && (\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 {showOutlook && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.outlook.connectOutlook\"\n description={outlookDescription}\n icon={OutlookIcon}\n isConnected={isOutlookConnected}\n isDisconnecting={isOutlookDisconnecting}\n title={outlookTitle}\n showDisconnect={\n isOutlookWaitingForTestEmail || isOutlookShadowAccount\n }\n onConnect={handleOutlookConnect}\n onDisconnect={onOutlookDisconnect}\n />\n )}\n {/* Own Domain (Sparkpost) Option */}\n {showSparkpost && (\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 {activeMessage && <Callout style=\"success\">{activeMessage}</Callout>}\n {isOutlookWaitingForTestEmail && (\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.outlook.waitingForTestEmail\", {\n email: outlookEmail,\n })}\n </Callout>\n )}\n {isOutlookShadowAccount && (\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.outlook.shadowAccountMessage\", {\n email: outlookEmail,\n })}\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","invalidateAllIntegrationQueries","useEffect","invalidateQueries","predicate","query","_query$queryKey","queryKey","key","id","QUERY_KEYS","INTEGRATION_GMAIL","exists","isConnected","connected","errorMessage","error","useOutlook","_useFetchOutlook","useFetchOutlook","_useFetchOutlook$data","isOutlookFetched","_useDestroyOutlook","useDestroyOutlook","INTEGRATION_OUTLOOK","status","shadowAccount","isWaitingForTestEmail","ERROR_MESSAGES","gmail_permission_not_given","t","outlook_permission_not_given","outlook_invalid_client","outlook_nil_json_web_token","IntegrationCard","Icon","icon","title","description","isDisconnecting","onConnect","connectButtonText","_ref$disconnectButton","disconnectButtonText","_ref$connectedTagText","connectedTagText","_ref$showDisconnect","showDisconnect","_useTranslation","useTranslation","shouldShowDisconnect","_jsx","className","children","_jsxs","size","Typography","style","weight","Tag","label","Button","loading","onClick","EmailDeliveryScreen","ownDomainSetupRoute","_useQueryParams","useQueryParams","errorDescription","isPresent","_errorMessage","concat","Toastr","humanize","gmailIntegration","outlookIntegration","sparkpostIntegration","useSparkpostDomain","_gmailIntegration$dat","gmailData","isGmailConnected","isGmailLoading","isGmailDisconnecting","onGmailDisconnect","isGmailExists","_outlookIntegration$d","outlookData","isOutlookConnected","isOutlookLoading","isOutlookDisconnecting","isOutlookWaitingForTestEmail","isOutlookShadowAccount","onOutlookDisconnect","isOutlookExists","_sparkpostIntegration","sparkpostData","isSparkpostConnected","isSparkpostLoading","onSparkpostDisconnect","isSparkpostDisconnecting","isSparkpostExists","noneExists","showGmail","showOutlook","showSparkpost","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","activeMessage","GmailIcon","OutlookIcon","MailSend","Callout"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var Form = require('@bigbinary/neetoui/formik/Form');
|
|
|
9
9
|
var reactI18next = require('react-i18next');
|
|
10
10
|
var reactRouterDom = require('react-router-dom');
|
|
11
11
|
var constants = require('../constants-D3nzz3Te.js');
|
|
12
|
-
var useSparkpostDomain = require('../useSparkpostDomain-
|
|
12
|
+
var useSparkpostDomain = require('../useSparkpostDomain-CK-k6Xrr.js');
|
|
13
13
|
var jsxRuntime = require('react/jsx-runtime');
|
|
14
14
|
require('@babel/runtime/helpers/defineProperty');
|
|
15
15
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
@@ -20,9 +20,9 @@ require('@bigbinary/neeto-molecules/Header');
|
|
|
20
20
|
require('i18next');
|
|
21
21
|
require('yup');
|
|
22
22
|
require('@babel/runtime/helpers/slicedToArray');
|
|
23
|
+
require('@tanstack/react-query');
|
|
23
24
|
require('@bigbinary/neetoui/Toastr');
|
|
24
25
|
require('../useSparkpostApi-pa64NIl6.js');
|
|
25
|
-
require('@tanstack/react-query');
|
|
26
26
|
require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
27
27
|
require('axios');
|
|
28
28
|
|
|
@@ -9,7 +9,7 @@ var ramda = require('ramda');
|
|
|
9
9
|
var reactI18next = require('react-i18next');
|
|
10
10
|
var reactRouterDom = require('react-router-dom');
|
|
11
11
|
var constants = require('../constants-D3nzz3Te.js');
|
|
12
|
-
var useSparkpostDomain = require('../useSparkpostDomain-
|
|
12
|
+
var useSparkpostDomain = require('../useSparkpostDomain-CK-k6Xrr.js');
|
|
13
13
|
var useSparkpostApi = require('../useSparkpostApi-pa64NIl6.js');
|
|
14
14
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
15
15
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
@@ -25,8 +25,8 @@ require('@bigbinary/neeto-molecules/Container');
|
|
|
25
25
|
require('@bigbinary/neeto-molecules/Header');
|
|
26
26
|
require('i18next');
|
|
27
27
|
require('yup');
|
|
28
|
-
require('@bigbinary/neetoui/Toastr');
|
|
29
28
|
require('@tanstack/react-query');
|
|
29
|
+
require('@bigbinary/neetoui/Toastr');
|
|
30
30
|
require('axios');
|
|
31
31
|
require('@bigbinary/neeto-commons-frontend/utils');
|
|
32
32
|
|
package/dist/cjs/index.js
CHANGED
|
@@ -22,7 +22,7 @@ require('axios');
|
|
|
22
22
|
require('@babel/runtime/helpers/slicedToArray');
|
|
23
23
|
require('react');
|
|
24
24
|
require('../useOutlookIntegrationApi-CtHj_BzG.js');
|
|
25
|
-
require('../useSparkpostDomain-
|
|
25
|
+
require('../useSparkpostDomain-CK-k6Xrr.js');
|
|
26
26
|
require('i18next');
|
|
27
27
|
require('@bigbinary/neetoui/Button');
|
|
28
28
|
require('@bigbinary/neetoui/Tag');
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ import 'axios';
|
|
|
20
20
|
import '@babel/runtime/helpers/slicedToArray';
|
|
21
21
|
import 'react';
|
|
22
22
|
import './useOutlookIntegrationApi-ZgRWrUQN.js';
|
|
23
|
-
import './useSparkpostDomain-
|
|
23
|
+
import './useSparkpostDomain-DDI4pHcZ.js';
|
|
24
24
|
import 'i18next';
|
|
25
25
|
import '@bigbinary/neetoui/Button';
|
|
26
26
|
import '@bigbinary/neetoui/Tag';
|
|
@@ -2,10 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
4
|
var react = require('react');
|
|
5
|
+
var reactQuery = require('@tanstack/react-query');
|
|
5
6
|
var Toastr = require('@bigbinary/neetoui/Toastr');
|
|
6
7
|
var reactI18next = require('react-i18next');
|
|
7
8
|
var useSparkpostApi = require('./useSparkpostApi-pa64NIl6.js');
|
|
8
9
|
|
|
10
|
+
var invalidateAllIntegrationQueries = function invalidateAllIntegrationQueries(queryClient, ownerId) {
|
|
11
|
+
queryClient.invalidateQueries({
|
|
12
|
+
predicate: function predicate(query) {
|
|
13
|
+
var _query$queryKey = _slicedToArray(query.queryKey, 2),
|
|
14
|
+
key = _query$queryKey[0],
|
|
15
|
+
id = _query$queryKey[1];
|
|
16
|
+
return id === ownerId && [useSparkpostApi.QUERY_KEYS.INTEGRATION_GMAIL, useSparkpostApi.QUERY_KEYS.INTEGRATION_OUTLOOK, useSparkpostApi.QUERY_KEYS.INTEGRATION_SPARKPOST].includes(key);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
9
21
|
var useSparkpostDomain = function useSparkpostDomain(_ref) {
|
|
10
22
|
var ownerId = _ref.ownerId,
|
|
11
23
|
canManageIntegrations = _ref.canManageIntegrations;
|
|
@@ -15,6 +27,7 @@ var useSparkpostDomain = function useSparkpostDomain(_ref) {
|
|
|
15
27
|
setIsDisconnectAlertOpen = _useState2[1];
|
|
16
28
|
var _useTranslation = reactI18next.useTranslation(),
|
|
17
29
|
t = _useTranslation.t;
|
|
30
|
+
var queryClient = reactQuery.useQueryClient();
|
|
18
31
|
var _useFetchSparkpostDom = useSparkpostApi.useFetchSparkpostDomain(ownerId, {
|
|
19
32
|
enabled: canManageIntegrations
|
|
20
33
|
}),
|
|
@@ -73,6 +86,7 @@ var useSparkpostDomain = function useSparkpostDomain(_ref) {
|
|
|
73
86
|
onSuccess: function onSuccess() {
|
|
74
87
|
Toastr.success(t("neetoEmailDelivery.sparkpost.toasts.domainDisconnected"));
|
|
75
88
|
setIsDisconnectAlertOpen(false);
|
|
89
|
+
invalidateAllIntegrationQueries(queryClient, ownerId);
|
|
76
90
|
_onSuccess3 === null || _onSuccess3 === void 0 || _onSuccess3();
|
|
77
91
|
}
|
|
78
92
|
});
|
|
@@ -93,5 +107,6 @@ var useSparkpostDomain = function useSparkpostDomain(_ref) {
|
|
|
93
107
|
};
|
|
94
108
|
};
|
|
95
109
|
|
|
110
|
+
exports.invalidateAllIntegrationQueries = invalidateAllIntegrationQueries;
|
|
96
111
|
exports.useSparkpostDomain = useSparkpostDomain;
|
|
97
|
-
//# sourceMappingURL=useSparkpostDomain-
|
|
112
|
+
//# sourceMappingURL=useSparkpostDomain-CK-k6Xrr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSparkpostDomain-CK-k6Xrr.js","sources":["../app/javascript/src/utils.js","../app/javascript/src/hooks/integrations/useSparkpostDomain.js"],"sourcesContent":["import { QUERY_KEYS } from \"src/constants/query\";\n\nexport const invalidateAllIntegrationQueries = (queryClient, ownerId) => {\n queryClient.invalidateQueries({\n predicate: query => {\n const [key, id] = query.queryKey;\n\n return (\n id === ownerId &&\n [\n QUERY_KEYS.INTEGRATION_GMAIL,\n QUERY_KEYS.INTEGRATION_OUTLOOK,\n QUERY_KEYS.INTEGRATION_SPARKPOST,\n ].includes(key)\n );\n },\n });\n};\n","import { useState } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Toastr } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchSparkpostDomain,\n useCreateSparkpostDomain,\n useVerifySparkpostDomain,\n useDestroySparkpostDomain,\n} from \"hooks/reactQuery/integrations/useSparkpostApi\";\nimport { invalidateAllIntegrationQueries } from \"src/utils\";\n\nconst useSparkpostDomain = ({ ownerId, canManageIntegrations }) => {\n const [isDisconnectAlertOpen, setIsDisconnectAlertOpen] = useState(false);\n const { t } = useTranslation();\n const queryClient = useQueryClient();\n\n const { isLoading, data = {} } = useFetchSparkpostDomain(ownerId, {\n enabled: canManageIntegrations,\n });\n\n const { isPending: isCreating, mutate: createDomain } =\n useCreateSparkpostDomain({ ownerId });\n\n const { isPending: isVerifying, mutate: verifyDomain } =\n useVerifySparkpostDomain({ ownerId });\n\n const { isPending: isDestroying, mutate: destroyDomain } =\n useDestroySparkpostDomain({ ownerId });\n\n const onCreateDomain = (email, onSuccess, onError) => {\n createDomain(\n { sparkpostDomain: { email } },\n {\n onSuccess: response => {\n if (response?.alreadyVerified) {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainVerifiedConnected\")\n );\n }\n onSuccess?.(response);\n },\n onError: error => {\n onError?.(error);\n },\n }\n );\n };\n\n const onVerifyDomain = (onSuccess, onError) => {\n verifyDomain(false, {\n onSuccess: response => {\n if (response?.verified) {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainVerified\")\n );\n } else {\n Toastr.warning(\n t(\"neetoEmailDelivery.sparkpost.toasts.verificationPending\")\n );\n }\n onSuccess?.(response);\n },\n onError: error => {\n onError?.(error);\n },\n });\n };\n\n const onDisconnect = onSuccess => {\n destroyDomain(false, {\n onSuccess: () => {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainDisconnected\")\n );\n setIsDisconnectAlertOpen(false);\n invalidateAllIntegrationQueries(queryClient, ownerId);\n onSuccess?.();\n },\n });\n };\n\n return {\n data,\n isLoading,\n isCreating,\n isVerifying,\n isDestroying,\n exists: data?.exists,\n isConnected: data?.connected || false,\n isDisconnectAlertOpen,\n setIsDisconnectAlertOpen,\n onCreateDomain,\n onVerifyDomain,\n onDisconnect,\n };\n};\n\nexport default useSparkpostDomain;\n"],"names":["invalidateAllIntegrationQueries","queryClient","ownerId","invalidateQueries","predicate","query","_query$queryKey","_slicedToArray","queryKey","key","id","QUERY_KEYS","INTEGRATION_GMAIL","INTEGRATION_OUTLOOK","INTEGRATION_SPARKPOST","includes","useSparkpostDomain","_ref","canManageIntegrations","_useState","useState","_useState2","isDisconnectAlertOpen","setIsDisconnectAlertOpen","_useTranslation","useTranslation","t","useQueryClient","_useFetchSparkpostDom","useFetchSparkpostDomain","enabled","isLoading","_useFetchSparkpostDom2","data","_useCreateSparkpostDo","useCreateSparkpostDomain","isCreating","isPending","createDomain","mutate","_useVerifySparkpostDo","useVerifySparkpostDomain","isVerifying","verifyDomain","_useDestroySparkpostD","useDestroySparkpostDomain","isDestroying","destroyDomain","onCreateDomain","email","onSuccess","onError","sparkpostDomain","response","alreadyVerified","Toastr","success","error","onVerifyDomain","verified","warning","onDisconnect","exists","isConnected","connected"],"mappings":"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"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
3
4
|
import Toastr from '@bigbinary/neetoui/Toastr';
|
|
4
5
|
import { useTranslation } from 'react-i18next';
|
|
5
|
-
import { u as useFetchSparkpostDomain, a as useCreateSparkpostDomain, b as useVerifySparkpostDomain, c as useDestroySparkpostDomain } from './useSparkpostApi-W7XibjIp.js';
|
|
6
|
+
import { Q as QUERY_KEYS, u as useFetchSparkpostDomain, a as useCreateSparkpostDomain, b as useVerifySparkpostDomain, c as useDestroySparkpostDomain } from './useSparkpostApi-W7XibjIp.js';
|
|
7
|
+
|
|
8
|
+
var invalidateAllIntegrationQueries = function invalidateAllIntegrationQueries(queryClient, ownerId) {
|
|
9
|
+
queryClient.invalidateQueries({
|
|
10
|
+
predicate: function predicate(query) {
|
|
11
|
+
var _query$queryKey = _slicedToArray(query.queryKey, 2),
|
|
12
|
+
key = _query$queryKey[0],
|
|
13
|
+
id = _query$queryKey[1];
|
|
14
|
+
return id === ownerId && [QUERY_KEYS.INTEGRATION_GMAIL, QUERY_KEYS.INTEGRATION_OUTLOOK, QUERY_KEYS.INTEGRATION_SPARKPOST].includes(key);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
};
|
|
6
18
|
|
|
7
19
|
var useSparkpostDomain = function useSparkpostDomain(_ref) {
|
|
8
20
|
var ownerId = _ref.ownerId,
|
|
@@ -13,6 +25,7 @@ var useSparkpostDomain = function useSparkpostDomain(_ref) {
|
|
|
13
25
|
setIsDisconnectAlertOpen = _useState2[1];
|
|
14
26
|
var _useTranslation = useTranslation(),
|
|
15
27
|
t = _useTranslation.t;
|
|
28
|
+
var queryClient = useQueryClient();
|
|
16
29
|
var _useFetchSparkpostDom = useFetchSparkpostDomain(ownerId, {
|
|
17
30
|
enabled: canManageIntegrations
|
|
18
31
|
}),
|
|
@@ -71,6 +84,7 @@ var useSparkpostDomain = function useSparkpostDomain(_ref) {
|
|
|
71
84
|
onSuccess: function onSuccess() {
|
|
72
85
|
Toastr.success(t("neetoEmailDelivery.sparkpost.toasts.domainDisconnected"));
|
|
73
86
|
setIsDisconnectAlertOpen(false);
|
|
87
|
+
invalidateAllIntegrationQueries(queryClient, ownerId);
|
|
74
88
|
_onSuccess3 === null || _onSuccess3 === void 0 || _onSuccess3();
|
|
75
89
|
}
|
|
76
90
|
});
|
|
@@ -91,5 +105,5 @@ var useSparkpostDomain = function useSparkpostDomain(_ref) {
|
|
|
91
105
|
};
|
|
92
106
|
};
|
|
93
107
|
|
|
94
|
-
export { useSparkpostDomain as u };
|
|
95
|
-
//# sourceMappingURL=useSparkpostDomain-
|
|
108
|
+
export { invalidateAllIntegrationQueries as i, useSparkpostDomain as u };
|
|
109
|
+
//# sourceMappingURL=useSparkpostDomain-DDI4pHcZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSparkpostDomain-DDI4pHcZ.js","sources":["../app/javascript/src/utils.js","../app/javascript/src/hooks/integrations/useSparkpostDomain.js"],"sourcesContent":["import { QUERY_KEYS } from \"src/constants/query\";\n\nexport const invalidateAllIntegrationQueries = (queryClient, ownerId) => {\n queryClient.invalidateQueries({\n predicate: query => {\n const [key, id] = query.queryKey;\n\n return (\n id === ownerId &&\n [\n QUERY_KEYS.INTEGRATION_GMAIL,\n QUERY_KEYS.INTEGRATION_OUTLOOK,\n QUERY_KEYS.INTEGRATION_SPARKPOST,\n ].includes(key)\n );\n },\n });\n};\n","import { useState } from \"react\";\n\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Toastr } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchSparkpostDomain,\n useCreateSparkpostDomain,\n useVerifySparkpostDomain,\n useDestroySparkpostDomain,\n} from \"hooks/reactQuery/integrations/useSparkpostApi\";\nimport { invalidateAllIntegrationQueries } from \"src/utils\";\n\nconst useSparkpostDomain = ({ ownerId, canManageIntegrations }) => {\n const [isDisconnectAlertOpen, setIsDisconnectAlertOpen] = useState(false);\n const { t } = useTranslation();\n const queryClient = useQueryClient();\n\n const { isLoading, data = {} } = useFetchSparkpostDomain(ownerId, {\n enabled: canManageIntegrations,\n });\n\n const { isPending: isCreating, mutate: createDomain } =\n useCreateSparkpostDomain({ ownerId });\n\n const { isPending: isVerifying, mutate: verifyDomain } =\n useVerifySparkpostDomain({ ownerId });\n\n const { isPending: isDestroying, mutate: destroyDomain } =\n useDestroySparkpostDomain({ ownerId });\n\n const onCreateDomain = (email, onSuccess, onError) => {\n createDomain(\n { sparkpostDomain: { email } },\n {\n onSuccess: response => {\n if (response?.alreadyVerified) {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainVerifiedConnected\")\n );\n }\n onSuccess?.(response);\n },\n onError: error => {\n onError?.(error);\n },\n }\n );\n };\n\n const onVerifyDomain = (onSuccess, onError) => {\n verifyDomain(false, {\n onSuccess: response => {\n if (response?.verified) {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainVerified\")\n );\n } else {\n Toastr.warning(\n t(\"neetoEmailDelivery.sparkpost.toasts.verificationPending\")\n );\n }\n onSuccess?.(response);\n },\n onError: error => {\n onError?.(error);\n },\n });\n };\n\n const onDisconnect = onSuccess => {\n destroyDomain(false, {\n onSuccess: () => {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainDisconnected\")\n );\n setIsDisconnectAlertOpen(false);\n invalidateAllIntegrationQueries(queryClient, ownerId);\n onSuccess?.();\n },\n });\n };\n\n return {\n data,\n isLoading,\n isCreating,\n isVerifying,\n isDestroying,\n exists: data?.exists,\n isConnected: data?.connected || false,\n isDisconnectAlertOpen,\n setIsDisconnectAlertOpen,\n onCreateDomain,\n onVerifyDomain,\n onDisconnect,\n };\n};\n\nexport default useSparkpostDomain;\n"],"names":["invalidateAllIntegrationQueries","queryClient","ownerId","invalidateQueries","predicate","query","_query$queryKey","_slicedToArray","queryKey","key","id","QUERY_KEYS","INTEGRATION_GMAIL","INTEGRATION_OUTLOOK","INTEGRATION_SPARKPOST","includes","useSparkpostDomain","_ref","canManageIntegrations","_useState","useState","_useState2","isDisconnectAlertOpen","setIsDisconnectAlertOpen","_useTranslation","useTranslation","t","useQueryClient","_useFetchSparkpostDom","useFetchSparkpostDomain","enabled","isLoading","_useFetchSparkpostDom2","data","_useCreateSparkpostDo","useCreateSparkpostDomain","isCreating","isPending","createDomain","mutate","_useVerifySparkpostDo","useVerifySparkpostDomain","isVerifying","verifyDomain","_useDestroySparkpostD","useDestroySparkpostDomain","isDestroying","destroyDomain","onCreateDomain","email","onSuccess","onError","sparkpostDomain","response","alreadyVerified","Toastr","success","error","onVerifyDomain","verified","warning","onDisconnect","exists","isConnected","connected"],"mappings":";;;;;;;AAEO,IAAMA,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAIC,WAAW,EAAEC,OAAO,EAAK;EACvED,WAAW,CAACE,iBAAiB,CAAC;AAC5BC,IAAAA,SAAS,EAAE,SAAXA,SAASA,CAAEC,KAAK,EAAI;AAClB,MAAA,IAAAC,eAAA,GAAAC,cAAA,CAAkBF,KAAK,CAACG,QAAQ,EAAA,CAAA,CAAA;AAAzBC,QAAAA,GAAG,GAAAH,eAAA,CAAA,CAAA,CAAA;AAAEI,QAAAA,EAAE,GAAAJ,eAAA,CAAA,CAAA,CAAA;MAEd,OACEI,EAAE,KAAKR,OAAO,IACd,CACES,UAAU,CAACC,iBAAiB,EAC5BD,UAAU,CAACE,mBAAmB,EAC9BF,UAAU,CAACG,qBAAqB,CACjC,CAACC,QAAQ,CAACN,GAAG,CAAC;AAEnB;AACF,GAAC,CAAC;AACJ;;ACHA,IAAMO,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAA2C;AAAA,EAAA,IAArCf,OAAO,GAAAe,IAAA,CAAPf,OAAO;IAAEgB,qBAAqB,GAAAD,IAAA,CAArBC,qBAAqB;AAC1D,EAAA,IAAAC,SAAA,GAA0DC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAd,cAAA,CAAAY,SAAA,EAAA,CAAA,CAAA;AAAlEG,IAAAA,qBAAqB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,wBAAwB,GAAAF,UAAA,CAAA,CAAA,CAAA;AACtD,EAAA,IAAAG,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AACT,EAAA,IAAMzB,WAAW,GAAG0B,cAAc,EAAE;AAEpC,EAAA,IAAAC,qBAAA,GAAiCC,uBAAuB,CAAC3B,OAAO,EAAE;AAChE4B,MAAAA,OAAO,EAAEZ;AACX,KAAC,CAAC;IAFMa,SAAS,GAAAH,qBAAA,CAATG,SAAS;IAAAC,sBAAA,GAAAJ,qBAAA,CAAEK,IAAI;AAAJA,IAAAA,IAAI,GAAAD,sBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,sBAAA;EAI5B,IAAAE,qBAAA,GACEC,wBAAwB,CAAC;AAAEjC,MAAAA,OAAO,EAAPA;AAAQ,KAAC,CAAC;IADpBkC,UAAU,GAAAF,qBAAA,CAArBG,SAAS;IAAsBC,YAAY,GAAAJ,qBAAA,CAApBK,MAAM;EAGrC,IAAAC,qBAAA,GACEC,wBAAwB,CAAC;AAAEvC,MAAAA,OAAO,EAAPA;AAAQ,KAAC,CAAC;IADpBwC,WAAW,GAAAF,qBAAA,CAAtBH,SAAS;IAAuBM,YAAY,GAAAH,qBAAA,CAApBD,MAAM;EAGtC,IAAAK,qBAAA,GACEC,yBAAyB,CAAC;AAAE3C,MAAAA,OAAO,EAAPA;AAAQ,KAAC,CAAC;IADrB4C,YAAY,GAAAF,qBAAA,CAAvBP,SAAS;IAAwBU,aAAa,GAAAH,qBAAA,CAArBL,MAAM;EAGvC,IAAMS,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,KAAK,EAAEC,UAAS,EAAEC,QAAO,EAAK;AACpDb,IAAAA,YAAY,CACV;AAAEc,MAAAA,eAAe,EAAE;AAAEH,QAAAA,KAAK,EAALA;AAAM;AAAE,KAAC,EAC9B;AACEC,MAAAA,SAAS,EAAE,SAAXA,SAASA,CAAEG,QAAQ,EAAI;AACrB,QAAA,IAAIA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,eAARA,QAAQ,CAAEC,eAAe,EAAE;AAC7BC,UAAAA,MAAM,CAACC,OAAO,CACZ9B,CAAC,CAAC,6DAA6D,CACjE,CAAC;AACH;AACAwB,QAAAA,UAAS,aAATA,UAAS,KAAA,KAAA,CAAA,IAATA,UAAS,CAAGG,QAAQ,CAAC;OACtB;AACDF,MAAAA,OAAO,EAAE,SAATA,OAAOA,CAAEM,KAAK,EAAI;AAChBN,QAAAA,QAAO,aAAPA,QAAO,KAAA,KAAA,CAAA,IAAPA,QAAO,CAAGM,KAAK,CAAC;AAClB;AACF,KACF,CAAC;GACF;EAED,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIR,WAAS,EAAEC,SAAO,EAAK;IAC7CR,YAAY,CAAC,KAAK,EAAE;AAClBO,MAAAA,SAAS,EAAE,SAAXA,SAASA,CAAEG,QAAQ,EAAI;AACrB,QAAA,IAAIA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,eAARA,QAAQ,CAAEM,QAAQ,EAAE;AACtBJ,UAAAA,MAAM,CAACC,OAAO,CACZ9B,CAAC,CAAC,oDAAoD,CACxD,CAAC;AACH,SAAC,MAAM;AACL6B,UAAAA,MAAM,CAACK,OAAO,CACZlC,CAAC,CAAC,yDAAyD,CAC7D,CAAC;AACH;AACAwB,QAAAA,WAAS,aAATA,WAAS,KAAA,KAAA,CAAA,IAATA,WAAS,CAAGG,QAAQ,CAAC;OACtB;AACDF,MAAAA,OAAO,EAAE,SAATA,OAAOA,CAAEM,KAAK,EAAI;AAChBN,QAAAA,SAAO,aAAPA,SAAO,KAAA,KAAA,CAAA,IAAPA,SAAO,CAAGM,KAAK,CAAC;AAClB;AACF,KAAC,CAAC;GACH;AAED,EAAA,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAGX,WAAS,EAAI;IAChCH,aAAa,CAAC,KAAK,EAAE;AACnBG,MAAAA,SAAS,EAAE,SAAXA,SAASA,GAAQ;AACfK,QAAAA,MAAM,CAACC,OAAO,CACZ9B,CAAC,CAAC,wDAAwD,CAC5D,CAAC;QACDH,wBAAwB,CAAC,KAAK,CAAC;AAC/BvB,QAAAA,+BAA+B,CAACC,WAAW,EAAEC,OAAO,CAAC;AACrDgD,QAAAA,WAAS,KAATA,IAAAA,IAAAA,WAAS,KAATA,KAAAA,CAAAA,IAAAA,WAAS,EAAI;AACf;AACF,KAAC,CAAC;GACH;EAED,OAAO;AACLjB,IAAAA,IAAI,EAAJA,IAAI;AACJF,IAAAA,SAAS,EAATA,SAAS;AACTK,IAAAA,UAAU,EAAVA,UAAU;AACVM,IAAAA,WAAW,EAAXA,WAAW;AACXI,IAAAA,YAAY,EAAZA,YAAY;AACZgB,IAAAA,MAAM,EAAE7B,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAE6B,MAAM;IACpBC,WAAW,EAAE,CAAA9B,IAAI,KAAJA,IAAAA,IAAAA,IAAI,uBAAJA,IAAI,CAAE+B,SAAS,KAAI,KAAK;AACrC1C,IAAAA,qBAAqB,EAArBA,qBAAqB;AACrBC,IAAAA,wBAAwB,EAAxBA,wBAAwB;AACxByB,IAAAA,cAAc,EAAdA,cAAc;AACdU,IAAAA,cAAc,EAAdA,cAAc;AACdG,IAAAA,YAAY,EAAZA;GACD;AACH;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-email-delivery-frontend",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"description": "This repo is for implementing custom email delivery functionality for the Neeto platform.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"homepage": "https://github.com/bigbinary/neeto-email-delivery-nano",
|
|
@@ -68,11 +68,11 @@
|
|
|
68
68
|
"@bigbinary/babel-preset-neeto": "^1.0.3",
|
|
69
69
|
"@bigbinary/eslint-plugin-neeto": "1.8.0",
|
|
70
70
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
71
|
-
"@bigbinary/neeto-commons-frontend": "4.13.
|
|
72
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
73
|
-
"@bigbinary/neeto-icons": "1.20.
|
|
74
|
-
"@bigbinary/neeto-molecules": "4.0.
|
|
75
|
-
"@bigbinary/neetoui": "8.3.
|
|
71
|
+
"@bigbinary/neeto-commons-frontend": "4.13.91",
|
|
72
|
+
"@bigbinary/neeto-filters-frontend": "4.3.28",
|
|
73
|
+
"@bigbinary/neeto-icons": "1.20.71",
|
|
74
|
+
"@bigbinary/neeto-molecules": "4.0.126",
|
|
75
|
+
"@bigbinary/neetoui": "8.3.50",
|
|
76
76
|
"@emotion/is-prop-valid": "1.2.0",
|
|
77
77
|
"@faker-js/faker": "8.2.0",
|
|
78
78
|
"@honeybadger-io/js": "6.10.1",
|
|
@@ -178,11 +178,11 @@
|
|
|
178
178
|
"peerDependencies": {
|
|
179
179
|
"@babel/runtime": "7.26.10",
|
|
180
180
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
181
|
-
"@bigbinary/neeto-commons-frontend": "4.13.
|
|
182
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
183
|
-
"@bigbinary/neeto-icons": "1.20.
|
|
184
|
-
"@bigbinary/neeto-molecules": "4.0.
|
|
185
|
-
"@bigbinary/neetoui": "8.3.
|
|
181
|
+
"@bigbinary/neeto-commons-frontend": "4.13.91",
|
|
182
|
+
"@bigbinary/neeto-filters-frontend": "4.3.28",
|
|
183
|
+
"@bigbinary/neeto-icons": "1.20.71",
|
|
184
|
+
"@bigbinary/neeto-molecules": "4.0.126",
|
|
185
|
+
"@bigbinary/neetoui": "8.3.50",
|
|
186
186
|
"@honeybadger-io/js": "6.10.1",
|
|
187
187
|
"@honeybadger-io/react": "6.1.25",
|
|
188
188
|
"@tanstack/react-query": "5.59.20",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSparkpostDomain-DO4bG1HD.js","sources":["../app/javascript/src/hooks/integrations/useSparkpostDomain.js"],"sourcesContent":["import { useState } from \"react\";\n\nimport { Toastr } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchSparkpostDomain,\n useCreateSparkpostDomain,\n useVerifySparkpostDomain,\n useDestroySparkpostDomain,\n} from \"hooks/reactQuery/integrations/useSparkpostApi\";\n\nconst useSparkpostDomain = ({ ownerId, canManageIntegrations }) => {\n const [isDisconnectAlertOpen, setIsDisconnectAlertOpen] = useState(false);\n const { t } = useTranslation();\n\n const { isLoading, data = {} } = useFetchSparkpostDomain(ownerId, {\n enabled: canManageIntegrations,\n });\n\n const { isPending: isCreating, mutate: createDomain } =\n useCreateSparkpostDomain({ ownerId });\n\n const { isPending: isVerifying, mutate: verifyDomain } =\n useVerifySparkpostDomain({ ownerId });\n\n const { isPending: isDestroying, mutate: destroyDomain } =\n useDestroySparkpostDomain({ ownerId });\n\n const onCreateDomain = (email, onSuccess, onError) => {\n createDomain(\n { sparkpostDomain: { email } },\n {\n onSuccess: response => {\n if (response?.alreadyVerified) {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainVerifiedConnected\")\n );\n }\n onSuccess?.(response);\n },\n onError: error => {\n onError?.(error);\n },\n }\n );\n };\n\n const onVerifyDomain = (onSuccess, onError) => {\n verifyDomain(false, {\n onSuccess: response => {\n if (response?.verified) {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainVerified\")\n );\n } else {\n Toastr.warning(\n t(\"neetoEmailDelivery.sparkpost.toasts.verificationPending\")\n );\n }\n onSuccess?.(response);\n },\n onError: error => {\n onError?.(error);\n },\n });\n };\n\n const onDisconnect = onSuccess => {\n destroyDomain(false, {\n onSuccess: () => {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainDisconnected\")\n );\n setIsDisconnectAlertOpen(false);\n onSuccess?.();\n },\n });\n };\n\n return {\n data,\n isLoading,\n isCreating,\n isVerifying,\n isDestroying,\n exists: data?.exists,\n isConnected: data?.connected || false,\n isDisconnectAlertOpen,\n setIsDisconnectAlertOpen,\n onCreateDomain,\n onVerifyDomain,\n onDisconnect,\n };\n};\n\nexport default useSparkpostDomain;\n"],"names":["useSparkpostDomain","_ref","ownerId","canManageIntegrations","_useState","useState","_useState2","_slicedToArray","isDisconnectAlertOpen","setIsDisconnectAlertOpen","_useTranslation","useTranslation","t","_useFetchSparkpostDom","useFetchSparkpostDomain","enabled","isLoading","_useFetchSparkpostDom2","data","_useCreateSparkpostDo","useCreateSparkpostDomain","isCreating","isPending","createDomain","mutate","_useVerifySparkpostDo","useVerifySparkpostDomain","isVerifying","verifyDomain","_useDestroySparkpostD","useDestroySparkpostDomain","isDestroying","destroyDomain","onCreateDomain","email","onSuccess","onError","sparkpostDomain","response","alreadyVerified","Toastr","success","error","onVerifyDomain","verified","warning","onDisconnect","exists","isConnected","connected"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSparkpostDomain-wsENCoto.js","sources":["../app/javascript/src/hooks/integrations/useSparkpostDomain.js"],"sourcesContent":["import { useState } from \"react\";\n\nimport { Toastr } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchSparkpostDomain,\n useCreateSparkpostDomain,\n useVerifySparkpostDomain,\n useDestroySparkpostDomain,\n} from \"hooks/reactQuery/integrations/useSparkpostApi\";\n\nconst useSparkpostDomain = ({ ownerId, canManageIntegrations }) => {\n const [isDisconnectAlertOpen, setIsDisconnectAlertOpen] = useState(false);\n const { t } = useTranslation();\n\n const { isLoading, data = {} } = useFetchSparkpostDomain(ownerId, {\n enabled: canManageIntegrations,\n });\n\n const { isPending: isCreating, mutate: createDomain } =\n useCreateSparkpostDomain({ ownerId });\n\n const { isPending: isVerifying, mutate: verifyDomain } =\n useVerifySparkpostDomain({ ownerId });\n\n const { isPending: isDestroying, mutate: destroyDomain } =\n useDestroySparkpostDomain({ ownerId });\n\n const onCreateDomain = (email, onSuccess, onError) => {\n createDomain(\n { sparkpostDomain: { email } },\n {\n onSuccess: response => {\n if (response?.alreadyVerified) {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainVerifiedConnected\")\n );\n }\n onSuccess?.(response);\n },\n onError: error => {\n onError?.(error);\n },\n }\n );\n };\n\n const onVerifyDomain = (onSuccess, onError) => {\n verifyDomain(false, {\n onSuccess: response => {\n if (response?.verified) {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainVerified\")\n );\n } else {\n Toastr.warning(\n t(\"neetoEmailDelivery.sparkpost.toasts.verificationPending\")\n );\n }\n onSuccess?.(response);\n },\n onError: error => {\n onError?.(error);\n },\n });\n };\n\n const onDisconnect = onSuccess => {\n destroyDomain(false, {\n onSuccess: () => {\n Toastr.success(\n t(\"neetoEmailDelivery.sparkpost.toasts.domainDisconnected\")\n );\n setIsDisconnectAlertOpen(false);\n onSuccess?.();\n },\n });\n };\n\n return {\n data,\n isLoading,\n isCreating,\n isVerifying,\n isDestroying,\n exists: data?.exists,\n isConnected: data?.connected || false,\n isDisconnectAlertOpen,\n setIsDisconnectAlertOpen,\n onCreateDomain,\n onVerifyDomain,\n onDisconnect,\n };\n};\n\nexport default useSparkpostDomain;\n"],"names":["useSparkpostDomain","_ref","ownerId","canManageIntegrations","_useState","useState","_useState2","_slicedToArray","isDisconnectAlertOpen","setIsDisconnectAlertOpen","_useTranslation","useTranslation","t","_useFetchSparkpostDom","useFetchSparkpostDomain","enabled","isLoading","_useFetchSparkpostDom2","data","_useCreateSparkpostDo","useCreateSparkpostDomain","isCreating","isPending","createDomain","mutate","_useVerifySparkpostDo","useVerifySparkpostDomain","isVerifying","verifyDomain","_useDestroySparkpostD","useDestroySparkpostDomain","isDestroying","destroyDomain","onCreateDomain","email","onSuccess","onError","sparkpostDomain","response","alreadyVerified","Toastr","success","error","onVerifyDomain","verified","warning","onDisconnect","exists","isConnected","connected"],"mappings":"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"}
|