@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 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. The following env variables need to be added to the host application.
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
- 9. Ensure that the domain `<app-name>email.com` (production) and
101
- `<app-name>email.net` (staging) is correctly setup in Mailgun to accept
102
- incoming emails. Example: For NeetoForm it would be neetoformemail.com
103
- (production) and neetoformemail.net (staging).
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-DO4bG1HD.js';
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-DO4bG1HD.js';
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-DO4bG1HD.js';
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-wsENCoto.js');
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-wsENCoto.js');
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-wsENCoto.js');
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-wsENCoto.js');
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-DO4bG1HD.js';
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-wsENCoto.js.map
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-DO4bG1HD.js.map
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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-email-delivery-frontend",
3
- "version": "1.0.10",
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.89",
72
- "@bigbinary/neeto-filters-frontend": "4.3.27",
73
- "@bigbinary/neeto-icons": "1.20.67",
74
- "@bigbinary/neeto-molecules": "4.0.117",
75
- "@bigbinary/neetoui": "8.3.47",
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.89",
182
- "@bigbinary/neeto-filters-frontend": "4.3.27",
183
- "@bigbinary/neeto-icons": "1.20.67",
184
- "@bigbinary/neeto-molecules": "4.0.117",
185
- "@bigbinary/neetoui": "8.3.47",
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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"}