@bigbinary/neeto-email-delivery-frontend 1.0.26 → 1.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/app/javascript/src/translations/en.json +17 -0
  2. package/dist/EmailDeliveryScreen.js +22 -584
  3. package/dist/EmailDeliveryScreen.js.map +1 -1
  4. package/dist/SparkpostDomainSetup.js +20 -2
  5. package/dist/SparkpostDomainSetup.js.map +1 -1
  6. package/dist/SparkpostDomainVerify.js +13 -3
  7. package/dist/SparkpostDomainVerify.js.map +1 -1
  8. package/dist/cjs/EmailDeliveryScreen.js +23 -600
  9. package/dist/cjs/EmailDeliveryScreen.js.map +1 -1
  10. package/dist/cjs/SparkpostDomainSetup.js +20 -2
  11. package/dist/cjs/SparkpostDomainSetup.js.map +1 -1
  12. package/dist/cjs/SparkpostDomainVerify.js +13 -3
  13. package/dist/cjs/SparkpostDomainVerify.js.map +1 -1
  14. package/dist/cjs/hooks.js +6 -46
  15. package/dist/cjs/hooks.js.map +1 -1
  16. package/dist/cjs/index.js +447 -29
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/hooks.js +4 -48
  19. package/dist/hooks.js.map +1 -1
  20. package/dist/index-BKKcEEt1.js +337 -0
  21. package/dist/index-BKKcEEt1.js.map +1 -0
  22. package/dist/index-C7KroEtv.js +342 -0
  23. package/dist/index-C7KroEtv.js.map +1 -0
  24. package/dist/index.js +431 -28
  25. package/dist/index.js.map +1 -1
  26. package/dist/useEmailDeliveryIntegrationApi-BD6h2h5w.js +57 -0
  27. package/dist/useEmailDeliveryIntegrationApi-BD6h2h5w.js.map +1 -0
  28. package/dist/useEmailDeliveryIntegrationApi-NUL8d1xC.js +55 -0
  29. package/dist/useEmailDeliveryIntegrationApi-NUL8d1xC.js.map +1 -0
  30. package/dist/useSparkpostApi-C7cHCa3T.js +253 -0
  31. package/dist/useSparkpostApi-C7cHCa3T.js.map +1 -0
  32. package/dist/{useOutlookIntegrationApi-b_mNVfRE.js → useSparkpostApi-tYImubXZ.js} +150 -53
  33. package/dist/useSparkpostApi-tYImubXZ.js.map +1 -0
  34. package/dist/{useSparkpostDomain-DtEcunpG.js → useSparkpostDomain-BiZb7l8r.js} +2 -2
  35. package/dist/{useSparkpostDomain-DtEcunpG.js.map → useSparkpostDomain-BiZb7l8r.js.map} +1 -1
  36. package/dist/{useSparkpostDomain-De-Fz3ek.js → useSparkpostDomain-CmX8ka38.js} +2 -2
  37. package/dist/{useSparkpostDomain-De-Fz3ek.js.map → useSparkpostDomain-CmX8ka38.js.map} +1 -1
  38. package/package.json +12 -13
  39. package/types.d.ts +23 -2
  40. package/dist/useOutlookIntegrationApi-BC-RPHmJ.js +0 -149
  41. package/dist/useOutlookIntegrationApi-BC-RPHmJ.js.map +0 -1
  42. package/dist/useOutlookIntegrationApi-b_mNVfRE.js.map +0 -1
  43. package/dist/useSparkpostApi-D9NOjTNA.js +0 -120
  44. package/dist/useSparkpostApi-D9NOjTNA.js.map +0 -1
  45. package/dist/useSparkpostApi-qpRhsK7H.js +0 -106
  46. package/dist/useSparkpostApi-qpRhsK7H.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EmailDeliveryScreen.js","sources":["../../app/javascript/src/components/Smtp/constants.js","../../app/javascript/src/components/Smtp/Setup.jsx","../../app/javascript/src/hooks/integrations/useGmail.js","../../app/javascript/src/hooks/integrations/useOutlook.js","../../app/javascript/src/hooks/integrations/useSmtp.js","../../app/javascript/src/components/EmailDeliveryScreen/constants.js","../../app/javascript/src/components/EmailDeliveryScreen/IntegrationCard.jsx","../../app/javascript/src/components/EmailDeliveryScreen/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const ENCRYPTION_OPTIONS = [\n { label: \"None\", value: \"none\" },\n { label: \"StartTLS\", value: \"starttls\" },\n { label: \"SSL\", value: \"ssl\" },\n];\n\nexport const SMTP_ACCOUNT_INITIAL_VALUES = {\n host: \"\",\n port: 587,\n username: \"\",\n password: \"\",\n email: \"\",\n encryption: \"starttls\",\n displayName: \"\",\n};\n\nexport const SMTP_ACCOUNT_VALIDATION_SCHEMA = yup.object().shape({\n host: yup\n .string()\n .trim()\n .required(\n t(\"neetoEmailDelivery.smtp.setup.requiredField\", {\n field: t(\"neetoEmailDelivery.smtp.setup.hostLabel\"),\n })\n ),\n port: yup.number().required(\n t(\"neetoEmailDelivery.smtp.setup.requiredField\", {\n field: t(\"neetoEmailDelivery.smtp.setup.portLabel\"),\n })\n ),\n username: yup\n .string()\n .trim()\n .required(\n t(\"neetoEmailDelivery.smtp.setup.requiredField\", {\n field: t(\"neetoEmailDelivery.smtp.setup.usernameLabel\"),\n })\n ),\n password: yup\n .string()\n .trim()\n .required(\n t(\"neetoEmailDelivery.smtp.setup.requiredField\", {\n field: t(\"neetoEmailDelivery.smtp.setup.passwordLabel\"),\n })\n ),\n email: yup\n .string()\n .trim()\n .required(\n t(\"neetoEmailDelivery.smtp.setup.requiredField\", {\n field: t(\"neetoEmailDelivery.smtp.setup.emailLabel\"),\n })\n )\n .email(t(\"neetoEmailDelivery.smtp.setup.emailInvalid\")),\n displayName: yup\n .string()\n .trim()\n .required(\n t(\"neetoEmailDelivery.smtp.setup.requiredField\", {\n field: t(\"neetoEmailDelivery.smtp.setup.displayNameLabel\"),\n })\n ),\n encryption: yup\n .string()\n .trim()\n .required(\n t(\"neetoEmailDelivery.smtp.setup.requiredField\", {\n field: t(\"neetoEmailDelivery.smtp.setup.encryptionLabel\"),\n })\n ),\n});\n","import { Callout, Pane, Typography } from \"neetoui\";\nimport { Form, Input, Radio, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateSmtp } from \"hooks/reactQuery/integrations/useSmtpIntegrationApi\";\n\nimport {\n SMTP_ACCOUNT_INITIAL_VALUES,\n SMTP_ACCOUNT_VALIDATION_SCHEMA,\n ENCRYPTION_OPTIONS,\n} from \"./constants\";\n\nconst SmtpSetup = ({ ownerId, onDone, onCancel, isOpen }) => {\n const { t } = useTranslation();\n\n const { isPending: isCreating, mutate: createSmtp } = useCreateSmtp({\n ownerId,\n });\n\n const handleSubmit = values => {\n createSmtp({ smtp_account: values }, { onSuccess: onDone });\n };\n\n return (\n <Pane {...{ isOpen }} size=\"lg\" onClose={onCancel}>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoEmailDelivery.smtp.setup.title\")}\n </Typography>\n </Pane.Header>\n <Form\n className=\"w-full\"\n formikProps={{\n initialValues: SMTP_ACCOUNT_INITIAL_VALUES,\n validationSchema: SMTP_ACCOUNT_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body className=\"space-y-4\">\n <div className=\"flex flex-col gap-6\">\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.smtp.setup.note\")}\n </Callout>\n <Input\n required\n label={t(\"neetoEmailDelivery.smtp.setup.hostLabel\")}\n name=\"host\"\n />\n <Input\n required\n label={t(\"neetoEmailDelivery.smtp.setup.portLabel\")}\n name=\"port\"\n type=\"number\"\n />\n <Input\n required\n label={t(\"neetoEmailDelivery.smtp.setup.usernameLabel\")}\n name=\"username\"\n />\n <Input\n required\n label={t(\"neetoEmailDelivery.smtp.setup.passwordLabel\")}\n name=\"password\"\n type=\"password\"\n />\n <Input\n required\n label={t(\"neetoEmailDelivery.smtp.setup.emailLabel\")}\n name=\"email\"\n type=\"email\"\n />\n <Input\n required\n label={t(\"neetoEmailDelivery.smtp.setup.displayNameLabel\")}\n name=\"displayName\"\n />\n <Radio\n label={t(\"neetoEmailDelivery.smtp.setup.encryptionLabel\")}\n name=\"encryption\"\n >\n {ENCRYPTION_OPTIONS.map(option => (\n <Radio.Item\n key={option.value}\n label={option.label}\n value={option.value}\n />\n ))}\n </Radio>\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: onCancel }}\n isSubmitting={isCreating}\n submitButtonProps={{\n label: t(\"neetoEmailDelivery.smtp.setup.saveAndActivate\"),\n }}\n />\n </Pane.Footer>\n </Form>\n </Pane>\n );\n};\n\nexport default SmtpSetup;\n","import { 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 { 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 { isLoading, data = {} } = useFetchGmail(ownerId, {\n enabled: canManageIntegrations,\n });\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 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 { 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 { 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 { isLoading, data = {} } = useFetchOutlook(ownerId, {\n enabled: canManageIntegrations,\n });\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 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 {\n useFetchSmtp,\n useDestroySmtp,\n} from \"hooks/reactQuery/integrations/useSmtpIntegrationApi\";\n\nconst useSmtp = ({ ownerId, canManageIntegrations }) => {\n const { isLoading, data = {} } = useFetchSmtp(ownerId, {\n enabled: canManageIntegrations,\n });\n\n const { isPending: isDestroying, mutate: onDisconnect } = useDestroySmtp({\n ownerId,\n });\n\n return {\n data,\n isConnected: data?.connected,\n isLoading,\n isDestroying,\n onDisconnect,\n exists: data?.exists,\n };\n};\n\nexport default useSmtp;\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 showManageButton = false,\n manageButtonText,\n onManage,\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 grow min-h-0\">\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 className=\"min-w-0 break-words\" style=\"body2\">\n {description}\n </Typography>\n {connectButtonText && (\n <div className=\"flex gap-2 mt-auto\">\n {showManageButton && (\n <Button\n data-testid=\"manage-button\"\n label={t(manageButtonText)}\n size=\"small\"\n style=\"secondary\"\n onClick={onManage}\n />\n )}\n {shouldShowDisconnect ? (\n <Button\n data-testid=\"disconnect-button\"\n label={t(disconnectButtonText)}\n loading={isDisconnecting}\n size=\"small\"\n style=\"danger\"\n onClick={onDisconnect}\n />\n ) : (\n <Button\n data-testid=\"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 { useState } from \"react\";\n\nimport { 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 SmtpSetup from \"components/Smtp/Setup\";\nimport useGmail from \"hooks/integrations/useGmail\";\nimport useOutlook from \"hooks/integrations/useOutlook\";\nimport useSmtp from \"hooks/integrations/useSmtp\";\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 ownDomainVerifyRoute,\n canManageIntegrations,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const [isSmtpPaneOpen, setIsSmtpPaneOpen] = useState(false);\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 smtpIntegration = useSmtp({ ownerId, canManageIntegrations });\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 {\n data: smtpData = {},\n isConnected: isSmtpConnected,\n isLoading: isSmtpLoading,\n isDestroying: isSmtpDisconnecting,\n onDisconnect: onSmtpDisconnect,\n exists: isSmtpExists,\n } = smtpIntegration;\n\n const isLoading =\n isGmailLoading || isOutlookLoading || isSparkpostLoading || isSmtpLoading;\n\n const noneExists =\n !isGmailExists && !isOutlookExists && !isSparkpostExists && !isSmtpExists;\n const showGmail = noneExists || isGmailExists;\n const showOutlook = noneExists || isOutlookExists;\n const showSparkpost = noneExists || isSparkpostExists;\n const showSmtp = noneExists || isSmtpExists;\n const sparkpostVerificationPending =\n isSparkpostExists && !isSparkpostConnected;\n\n const handleGmailConnect = () => {\n window.location.href = buildUrl(GMAIL_OAUTH_CONNECT_URL, { ownerId });\n };\n\n const handleOutlookConnect = () => {\n window.location.href = buildUrl(OUTLOOK_OAUTH_CONNECT_URL, { ownerId });\n };\n\n const handleOwnDomainConnect = () => {\n history.push(ownDomainSetupRoute);\n };\n\n const handleSmtpConnect = () => {\n setIsSmtpPaneOpen(true);\n };\n\n const handleSmtpPaneClose = () => {\n setIsSmtpPaneOpen(false);\n };\n\n const gmailEmail = prop(\"email\", gmailData);\n const outlookEmail = prop(\"email\", outlookData);\n const sparkpostEmail = prop(\"email\", sparkpostData);\n const sparkpostDomain = prop(\"domain\", sparkpostData);\n const smtpEmail = prop(\"email\", smtpData);\n\n const showVerificationPage = () => {\n history.push(\n buildUrl(ownDomainVerifyRoute, {\n domain: sparkpostDomain,\n email: sparkpostEmail,\n })\n );\n };\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 const smtpTitle = t(\"neetoEmailDelivery.smtp.title\");\n const smtpDescription = isSmtpConnected\n ? t(\"neetoEmailDelivery.sparkpost.emailDelivery.connectedEmail\", {\n email: smtpEmail,\n })\n : t(\"neetoEmailDelivery.smtp.description\");\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 (isSmtpConnected && t(\"neetoEmailDelivery.smtp.smtpConfigured\"));\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 manageButtonText=\"neetoEmailDelivery.sparkpost.emailDelivery.continueVerification\"\n showManageButton={sparkpostVerificationPending}\n title={ownDomainTitle}\n showDisconnect={\n sparkpostVerificationPending || isSparkpostConnected\n }\n onConnect={handleOwnDomainConnect}\n onDisconnect={onSparkpostDisconnect}\n onManage={showVerificationPage}\n />\n )}\n {/* SMTP Option */}\n {showSmtp && (\n <IntegrationCard\n connectButtonText=\"neetoEmailDelivery.smtp.connectSmtp\"\n description={smtpDescription}\n icon={MailSend}\n isConnected={isSmtpConnected}\n isDisconnecting={isSmtpDisconnecting}\n title={smtpTitle}\n onConnect={handleSmtpConnect}\n onDisconnect={onSmtpDisconnect}\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 {sparkpostVerificationPending && (\n <Callout style=\"warning\">\n {t(\n \"neetoEmailDelivery.sparkpost.emailDelivery.verificationPending\",\n { domain: sparkpostDomain }\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 <SmtpSetup\n {...{ ownerId }}\n isOpen={isSmtpPaneOpen}\n onCancel={handleSmtpPaneClose}\n onDone={handleSmtpPaneClose}\n />\n </div>\n );\n};\n\nexport default EmailDeliveryScreen;\n"],"names":["ENCRYPTION_OPTIONS","label","value","SMTP_ACCOUNT_INITIAL_VALUES","host","port","username","password","email","encryption","displayName","SMTP_ACCOUNT_VALIDATION_SCHEMA","yup","object","shape","string","trim","required","t","field","number","SmtpSetup","_ref","ownerId","onDone","onCancel","isOpen","_useTranslation","useTranslation","_useCreateSmtp","useCreateSmtp","isCreating","isPending","createSmtp","mutate","handleSubmit","values","smtp_account","onSuccess","_jsxs","Pane","size","onClose","children","_jsx","Header","Typography","style","weight","Form","className","formikProps","initialValues","validationSchema","onSubmit","Body","Callout","Input","name","type","Radio","map","option","Item","Footer","ActionBlock","cancelButtonProps","onClick","isSubmitting","submitButtonProps","useGmail","indexRoute","canManageIntegrations","_useState","useState","_useState2","_slicedToArray","isDisconnectAlertOpen","setIsDisconnectAlertOpen","history","useHistory","queryClient","useQueryClient","_useFetchGmail","useFetchGmail","enabled","isLoading","_useFetchGmail$data","data","_useDestroyGmail","useDestroyGmail","isDestroying","destroyIntegration","replace","onDisconnect","showThumbsUpToastr","invalidateAllIntegrationQueries","exists","isConnected","connected","errorMessage","error","useOutlook","_useFetchOutlook","useFetchOutlook","_useFetchOutlook$data","_useDestroyOutlook","useDestroyOutlook","status","shadowAccount","isWaitingForTestEmail","useSmtp","_useFetchSmtp","useFetchSmtp","_useFetchSmtp$data","_useDestroySmtp","useDestroySmtp","ERROR_MESSAGES","gmail_permission_not_given","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","_ref$showManageButton","showManageButton","manageButtonText","onManage","shouldShowDisconnect","Tag","Button","loading","EmailDeliveryScreen","ownDomainSetupRoute","ownDomainVerifyRoute","isSmtpPaneOpen","setIsSmtpPaneOpen","_useQueryParams","useQueryParams","errorDescription","isPresent","_errorMessage","concat","Toastr","humanize","gmailIntegration","outlookIntegration","sparkpostIntegration","useSparkpostDomain","smtpIntegration","_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","_smtpIntegration$data","smtpData","isSmtpConnected","isSmtpLoading","isSmtpDisconnecting","onSmtpDisconnect","isSmtpExists","noneExists","showGmail","showOutlook","showSparkpost","showSmtp","sparkpostVerificationPending","handleGmailConnect","window","location","href","buildUrl","GMAIL_OAUTH_CONNECT_URL","handleOutlookConnect","OUTLOOK_OAUTH_CONNECT_URL","handleOwnDomainConnect","push","handleSmtpConnect","handleSmtpPaneClose","gmailEmail","prop","outlookEmail","sparkpostEmail","sparkpostDomain","smtpEmail","showVerificationPage","domain","gmailTitle","gmailDescription","outlookTitle","outlookDescription","ownDomainTitle","ownDomainDescription","smtpTitle","smtpDescription","Spinner","activeMessage","GmailIcon","OutlookIcon","MailSend"],"mappings":"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"}
1
+ {"version":3,"file":"EmailDeliveryScreen.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,13 +3,15 @@
3
3
  var utils = require('@bigbinary/neeto-commons-frontend/utils');
4
4
  var CardLayout = require('@bigbinary/neeto-molecules/CardLayout');
5
5
  var Callout = require('@bigbinary/neetoui/Callout');
6
+ var Spinner = require('@bigbinary/neetoui/Spinner');
6
7
  var Input = require('@bigbinary/neetoui/formik/Input');
7
8
  var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
8
9
  var Form = require('@bigbinary/neetoui/formik/Form');
9
10
  var reactI18next = require('react-i18next');
10
11
  var reactRouterDom = require('react-router-dom');
11
12
  var constants = require('../constants-DPhFGbtO.js');
12
- var useSparkpostDomain = require('../useSparkpostDomain-DtEcunpG.js');
13
+ var useSparkpostDomain = require('../useSparkpostDomain-BiZb7l8r.js');
14
+ var useEmailDeliveryIntegrationApi = require('../useEmailDeliveryIntegrationApi-BD6h2h5w.js');
13
15
  var jsxRuntime = require('react/jsx-runtime');
14
16
  require('@babel/runtime/helpers/defineProperty');
15
17
  require('@babel/runtime/helpers/objectWithoutProperties');
@@ -22,9 +24,11 @@ require('yup');
22
24
  require('@babel/runtime/helpers/slicedToArray');
23
25
  require('@tanstack/react-query');
24
26
  require('@bigbinary/neetoui/Toastr');
25
- require('../useSparkpostApi-D9NOjTNA.js');
27
+ require('../useSparkpostApi-C7cHCa3T.js');
26
28
  require('@bigbinary/neeto-commons-frontend/react-utils');
27
29
  require('axios');
30
+ require('@bigbinary/neeto-cist');
31
+ require('ramda');
28
32
 
29
33
  var getDomainFromEmail = function getDomainFromEmail(email) {
30
34
  return email.trim().split("@")[1];
@@ -39,6 +43,10 @@ var SparkpostDomainSetup = function SparkpostDomainSetup(_ref) {
39
43
  var _useTranslation = reactI18next.useTranslation(),
40
44
  t = _useTranslation.t;
41
45
  var history = reactRouterDom.useHistory();
46
+ var _useFetchConnectedInt = useEmailDeliveryIntegrationApi.useFetchConnectedIntegration(ownerId),
47
+ integration = _useFetchConnectedInt.integration,
48
+ isIntegrationLoading = _useFetchConnectedInt.isLoading;
49
+ var hasConnectedIntegration = integration && !integration.isPending;
42
50
  var _useSparkpostDomain = useSparkpostDomain.useSparkpostDomain({
43
51
  ownerId: ownerId,
44
52
  canManageIntegrations: canManageIntegrations
@@ -68,6 +76,16 @@ var SparkpostDomainSetup = function SparkpostDomainSetup(_ref) {
68
76
  var handleCancel = function handleCancel() {
69
77
  history.push(onCancelRoute);
70
78
  };
79
+ if (isIntegrationLoading) {
80
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
81
+ className: "flex justify-center p-6",
82
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
83
+ });
84
+ }
85
+ if (hasConnectedIntegration) {
86
+ history.replace(onCancelRoute);
87
+ return null;
88
+ }
71
89
  return /*#__PURE__*/jsxRuntime.jsx(constants.PageWrapper, {
72
90
  children: /*#__PURE__*/jsxRuntime.jsx(constants.PageContent, {
73
91
  children: /*#__PURE__*/jsxRuntime.jsx(Form, {
@@ -1 +1 @@
1
- {"version":3,"file":"SparkpostDomainSetup.js","sources":["../../app/javascript/src/components/SparkpostDomain/utils.js","../../app/javascript/src/components/SparkpostDomain/Setup.jsx"],"sourcesContent":["const getDomainFromEmail = email => email.trim().split(\"@\")[1];\n\nexport { getDomainFromEmail };\n","import { buildUrl } from \"neetocommons/utils\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { Callout } from \"neetoui\";\nimport { Input, ActionBlock, Form } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { PageContent, PageWrapper } from \"components/PageLayout\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\n\nimport { VALIDATION_SCHEMA, INITIAL_VALUES } from \"./constants\";\nimport { getDomainFromEmail } from \"./utils\";\n\nconst SparkpostDomainSetup = ({\n ownerId,\n alreadyVerifiedRoute,\n verifyRoute,\n onCancelRoute,\n canManageIntegrations,\n}) => {\n const { t } = useTranslation();\n\n const history = useHistory();\n\n const { onCreateDomain, isCreating } = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const handleSubmit = (values, { setFieldError }) => {\n onCreateDomain(\n values.email.trim(),\n values.displayName.trim(),\n response => {\n if (response?.alreadyVerified) {\n // Domain is already verified, go back to email delivery settings\n history.push(alreadyVerifiedRoute);\n } else {\n // Navigate to verification page with domain query parameter\n const domain = getDomainFromEmail(values.email);\n history.push(\n buildUrl(verifyRoute, { domain, email: values.email.trim() })\n );\n }\n },\n error => {\n const errorMessage =\n error?.response?.data?.error ||\n t(\"neetoEmailDelivery.sparkpost.setup.validation.setupFailed\");\n setFieldError(\"email\", errorMessage);\n }\n );\n };\n\n const handleCancel = () => {\n history.push(onCancelRoute);\n };\n\n return (\n <PageWrapper>\n <PageContent>\n <Form\n className=\"w-full\"\n formikProps={{\n initialValues: INITIAL_VALUES,\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values }) => {\n const domain = values.email\n ? getDomainFromEmail(values.email)\n : t(\"neetoEmailDelivery.sparkpost.customDomain\");\n\n return (\n <CardLayout\n title={String(t(\"neetoEmailDelivery.sparkpost.setup.title\"))}\n actionBlock={\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isCreating}\n submitButtonProps={{\n label: t(\"neetoEmailDelivery.sparkpost.setup.setupEmail\"),\n }}\n />\n }\n description={String(\n t(\"neetoEmailDelivery.sparkpost.setup.description\")\n )}\n >\n <div className=\"flex flex-col gap-6\">\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.sparkpost.setup.note\")}\n </Callout>\n <Input\n required\n unlimitedChars\n label={t(\"neetoEmailDelivery.sparkpost.setup.emailLabel\")}\n name=\"email\"\n type=\"email\"\n helpText={t(\n \"neetoEmailDelivery.sparkpost.setup.emailHelp\",\n { domain }\n )}\n placeholder={t(\n \"neetoEmailDelivery.sparkpost.setup.emailPlaceholder\"\n )}\n />\n <Input\n required\n name=\"displayName\"\n helpText={t(\n \"neetoEmailDelivery.sparkpost.setup.displayNameHelp\"\n )}\n label={t(\n \"neetoEmailDelivery.sparkpost.setup.displayNameLabel\"\n )}\n />\n </div>\n </CardLayout>\n );\n }}\n </Form>\n </PageContent>\n </PageWrapper>\n );\n};\n\nexport default SparkpostDomainSetup;\n"],"names":["getDomainFromEmail","email","trim","split","SparkpostDomainSetup","_ref","ownerId","alreadyVerifiedRoute","verifyRoute","onCancelRoute","canManageIntegrations","_useTranslation","useTranslation","t","history","useHistory","_useSparkpostDomain","useSparkpostDomain","onCreateDomain","isCreating","handleSubmit","values","_ref2","setFieldError","displayName","response","alreadyVerified","push","domain","buildUrl","error","_error$response","errorMessage","data","handleCancel","_jsx","PageWrapper","children","PageContent","Form","className","formikProps","initialValues","INITIAL_VALUES","validationSchema","VALIDATION_SCHEMA","onSubmit","_ref3","CardLayout","title","String","actionBlock","ActionBlock","cancelButtonProps","onClick","isSubmitting","submitButtonProps","label","description","_jsxs","Callout","style","Input","required","unlimitedChars","name","type","helpText","placeholder"],"mappings":"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"}
1
+ {"version":3,"file":"SparkpostDomainSetup.js","sources":["../../app/javascript/src/components/SparkpostDomain/utils.js","../../app/javascript/src/components/SparkpostDomain/Setup.jsx"],"sourcesContent":["const getDomainFromEmail = email => email.trim().split(\"@\")[1];\n\nexport { getDomainFromEmail };\n","import { buildUrl } from \"neetocommons/utils\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { Callout, Spinner } from \"neetoui\";\nimport { Input, ActionBlock, Form } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { PageContent, PageWrapper } from \"components/PageLayout\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\nimport { useFetchConnectedIntegration } from \"hooks/reactQuery/integrations/useEmailDeliveryIntegrationApi\";\n\nimport { VALIDATION_SCHEMA, INITIAL_VALUES } from \"./constants\";\nimport { getDomainFromEmail } from \"./utils\";\n\nconst SparkpostDomainSetup = ({\n ownerId,\n alreadyVerifiedRoute,\n verifyRoute,\n onCancelRoute,\n canManageIntegrations,\n}) => {\n const { t } = useTranslation();\n\n const history = useHistory();\n\n const { integration, isLoading: isIntegrationLoading } =\n useFetchConnectedIntegration(ownerId);\n\n const hasConnectedIntegration = integration && !integration.isPending;\n\n const { onCreateDomain, isCreating } = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const handleSubmit = (values, { setFieldError }) => {\n onCreateDomain(\n values.email.trim(),\n values.displayName.trim(),\n response => {\n if (response?.alreadyVerified) {\n // Domain is already verified, go back to email delivery settings\n history.push(alreadyVerifiedRoute);\n } else {\n // Navigate to verification page with domain query parameter\n const domain = getDomainFromEmail(values.email);\n history.push(\n buildUrl(verifyRoute, { domain, email: values.email.trim() })\n );\n }\n },\n error => {\n const errorMessage =\n error?.response?.data?.error ||\n t(\"neetoEmailDelivery.sparkpost.setup.validation.setupFailed\");\n setFieldError(\"email\", errorMessage);\n }\n );\n };\n\n const handleCancel = () => {\n history.push(onCancelRoute);\n };\n\n if (isIntegrationLoading) {\n return (\n <div className=\"flex justify-center p-6\">\n <Spinner />\n </div>\n );\n }\n\n if (hasConnectedIntegration) {\n history.replace(onCancelRoute);\n\n return null;\n }\n\n return (\n <PageWrapper>\n <PageContent>\n <Form\n className=\"w-full\"\n formikProps={{\n initialValues: INITIAL_VALUES,\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values }) => {\n const domain = values.email\n ? getDomainFromEmail(values.email)\n : t(\"neetoEmailDelivery.sparkpost.customDomain\");\n\n return (\n <CardLayout\n title={String(t(\"neetoEmailDelivery.sparkpost.setup.title\"))}\n actionBlock={\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isCreating}\n submitButtonProps={{\n label: t(\"neetoEmailDelivery.sparkpost.setup.setupEmail\"),\n }}\n />\n }\n description={String(\n t(\"neetoEmailDelivery.sparkpost.setup.description\")\n )}\n >\n <div className=\"flex flex-col gap-6\">\n <Callout style=\"warning\">\n {t(\"neetoEmailDelivery.sparkpost.setup.note\")}\n </Callout>\n <Input\n required\n unlimitedChars\n label={t(\"neetoEmailDelivery.sparkpost.setup.emailLabel\")}\n name=\"email\"\n type=\"email\"\n helpText={t(\n \"neetoEmailDelivery.sparkpost.setup.emailHelp\",\n { domain }\n )}\n placeholder={t(\n \"neetoEmailDelivery.sparkpost.setup.emailPlaceholder\"\n )}\n />\n <Input\n required\n name=\"displayName\"\n helpText={t(\n \"neetoEmailDelivery.sparkpost.setup.displayNameHelp\"\n )}\n label={t(\n \"neetoEmailDelivery.sparkpost.setup.displayNameLabel\"\n )}\n />\n </div>\n </CardLayout>\n );\n }}\n </Form>\n </PageContent>\n </PageWrapper>\n );\n};\n\nexport default SparkpostDomainSetup;\n"],"names":["getDomainFromEmail","email","trim","split","SparkpostDomainSetup","_ref","ownerId","alreadyVerifiedRoute","verifyRoute","onCancelRoute","canManageIntegrations","_useTranslation","useTranslation","t","history","useHistory","_useFetchConnectedInt","useFetchConnectedIntegration","integration","isIntegrationLoading","isLoading","hasConnectedIntegration","isPending","_useSparkpostDomain","useSparkpostDomain","onCreateDomain","isCreating","handleSubmit","values","_ref2","setFieldError","displayName","response","alreadyVerified","push","domain","buildUrl","error","_error$response","errorMessage","data","handleCancel","_jsx","className","children","Spinner","replace","PageWrapper","PageContent","Form","formikProps","initialValues","INITIAL_VALUES","validationSchema","VALIDATION_SCHEMA","onSubmit","_ref3","CardLayout","title","String","actionBlock","ActionBlock","cancelButtonProps","onClick","isSubmitting","submitButtonProps","label","description","_jsxs","Callout","style","Input","required","unlimitedChars","name","type","helpText","placeholder"],"mappings":"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"}
@@ -9,8 +9,9 @@ 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-DPhFGbtO.js');
12
- var useSparkpostDomain = require('../useSparkpostDomain-DtEcunpG.js');
13
- var useSparkpostApi = require('../useSparkpostApi-D9NOjTNA.js');
12
+ var useSparkpostDomain = require('../useSparkpostDomain-BiZb7l8r.js');
13
+ var useEmailDeliveryIntegrationApi = require('../useEmailDeliveryIntegrationApi-BD6h2h5w.js');
14
+ var useSparkpostApi = require('../useSparkpostApi-C7cHCa3T.js');
14
15
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
15
16
  var Typography = require('@bigbinary/neetoui/Typography');
16
17
  var Tag = require('@bigbinary/neetoui/Tag');
@@ -27,6 +28,7 @@ require('i18next');
27
28
  require('yup');
28
29
  require('@tanstack/react-query');
29
30
  require('@bigbinary/neetoui/Toastr');
31
+ require('@bigbinary/neeto-cist');
30
32
  require('axios');
31
33
  require('@bigbinary/neeto-commons-frontend/utils');
32
34
 
@@ -219,6 +221,10 @@ var SparkpostDomainVerify = function SparkpostDomainVerify(_ref) {
219
221
  var _useTranslation = reactI18next.useTranslation(),
220
222
  t = _useTranslation.t;
221
223
  var history = reactRouterDom.useHistory();
224
+ var _useFetchConnectedInt = useEmailDeliveryIntegrationApi.useFetchConnectedIntegration(ownerId),
225
+ integration = _useFetchConnectedInt.integration,
226
+ isIntegrationLoading = _useFetchConnectedInt.isLoading;
227
+ var hasConnectedIntegration = integration && !integration.isPending;
222
228
  var _useQueryParams = reactUtils.useQueryParams(),
223
229
  queryDomain = _useQueryParams.domain;
224
230
  var _useFetchSparkpostDom = useSparkpostApi.useFetchSparkpostDomain(ownerId),
@@ -258,12 +264,16 @@ var SparkpostDomainVerify = function SparkpostDomainVerify(_ref) {
258
264
  var handleCancel = function handleCancel() {
259
265
  history.push(emailDeliveryIndexRoute);
260
266
  };
261
- if (isLoading) {
267
+ if (isLoading || isIntegrationLoading) {
262
268
  return /*#__PURE__*/jsxRuntime.jsx("div", {
263
269
  className: "flex justify-center p-6",
264
270
  children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
265
271
  });
266
272
  }
273
+ if (hasConnectedIntegration) {
274
+ history.replace(emailDeliveryIndexRoute);
275
+ return null;
276
+ }
267
277
  return /*#__PURE__*/jsxRuntime.jsx(constants.PageWrapper, {
268
278
  children: /*#__PURE__*/jsxRuntime.jsx(constants.PageContent, {
269
279
  children: /*#__PURE__*/jsxRuntime.jsx(CardLayout, {
@@ -1 +1 @@
1
- {"version":3,"file":"SparkpostDomainVerify.js","sources":["../../app/javascript/src/components/SparkpostDomain/RecordField.jsx","../../app/javascript/src/components/SparkpostDomain/DnsRecordsSection.jsx","../../app/javascript/src/components/SparkpostDomain/VerificationActions.jsx","../../app/javascript/src/components/SparkpostDomain/VerificationInstructions.jsx","../../app/javascript/src/components/SparkpostDomain/VerificationStatusCallout.jsx","../../app/javascript/src/components/SparkpostDomain/Verify.jsx"],"sourcesContent":["import CopyToClipboardButton from \"neetomolecules/CopyToClipboardButton\";\nimport { Typography } from \"neetoui\";\n\nconst RecordField = ({ label, value, dataTestid }) => (\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"flex items-center justify-between\">\n <Typography style=\"h5\">{label}</Typography>\n </div>\n <code\n className=\"neeto-ui-text-gray-800 neeto-ui-bg-gray-100 neeto-ui-rounded-md relative block p-4 pe-10 font-mono text-xs break-all\"\n data-testid={dataTestid}\n >\n {value}\n <CopyToClipboardButton\n {...{ value }}\n className=\"absolute top-1 end-1 shrink-0\"\n style=\"tertiary\"\n />\n </code>\n </div>\n);\n\nexport default RecordField;\n","import { Typography, Tag } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PURPOSE_COLORS, DEFAULT_COLOR } from \"./constants\";\nimport RecordField from \"./RecordField\";\n\nconst DnsRecordsSection = ({ dnsRecords, domain, sparkpostData }) => {\n const { t } = useTranslation();\n\n const formatPurpose = purpose => {\n switch (purpose) {\n case \"dkim\":\n return t(\"neetoEmailDelivery.sparkpost.dnsRecords.dkimSigning\");\n case \"txt\":\n return t(\"neetoEmailDelivery.sparkpost.dnsRecords.txtVerification\");\n default:\n return purpose;\n }\n };\n\n const formatRecordName = hostname => {\n if (!hostname) return \"\";\n\n return hostname.endsWith(`.${domain}`) ? hostname : `${hostname}.${domain}`;\n };\n\n const { status, txtVerificationValue, txtVerificationHostname } =\n sparkpostData;\n\n const allRecords = [];\n const isTxtUnverified = status === \"txt_unverified\";\n\n if (isTxtUnverified) {\n if (txtVerificationValue && txtVerificationHostname) {\n allRecords.push({\n type: \"TXT\",\n purpose: \"txt\",\n hostname: txtVerificationHostname,\n value: txtVerificationValue,\n });\n }\n } else {\n allRecords.push(...dnsRecords);\n }\n\n if (isEmpty(allRecords)) {\n return (\n <div className=\"p-8 text-center\">\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {sparkpostData?.connected\n ? t(\"neetoEmailDelivery.sparkpost.dnsRecords.alreadyVerified\")\n : t(\"neetoEmailDelivery.sparkpost.dnsRecords.loading\")}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-4\">\n <Typography style=\"h4\" weight=\"medium\">\n {t(\"neetoEmailDelivery.sparkpost.dnsRecords.title\")}\n </Typography>\n {allRecords.map((record, index) => (\n <div\n className=\"neeto-ui-rounded-lg neeto-ui-bg-white neeto-ui-border-gray-300 border p-3\"\n key={index}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Tag\n label={formatPurpose(record.purpose)}\n size=\"small\"\n style={PURPOSE_COLORS[record.purpose] || DEFAULT_COLOR}\n />\n <Tag label={record.type} size=\"small\" style=\"secondary\" />\n </div>\n </div>\n <div className=\"flex flex-col gap-4\">\n <RecordField\n dataTestid=\"record-name\"\n label={t(\"neetoEmailDelivery.sparkpost.dnsRecords.nameLabel\")}\n value={formatRecordName(record.hostname)}\n />\n <RecordField\n dataTestid=\"record-value\"\n label={t(\"neetoEmailDelivery.sparkpost.dnsRecords.valueLabel\")}\n value={record.value}\n />\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default DnsRecordsSection;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button } from \"neetoui\";\n\nconst VerificationActions = withT(\n ({ t, isVerifying, verificationStatus, onVerify, onCancel }) => (\n <div className=\"flex gap-3\">\n <Button\n data-testid=\"verify-domain-button\"\n disabled={isVerifying || verificationStatus === \"success\"}\n loading={isVerifying}\n onClick={onVerify}\n >\n {isVerifying\n ? t(\"neetoEmailDelivery.sparkpost.verify.verifying\")\n : t(\"neetoEmailDelivery.sparkpost.verify.verifyDomain\")}\n </Button>\n <Button\n data-testid=\"cancel-button\"\n disabled={isVerifying}\n style=\"secondary\"\n onClick={onCancel}\n >\n {t(\"neetoEmailDelivery.sparkpost.verify.cancel\")}\n </Button>\n </div>\n )\n);\n\nexport default VerificationActions;\n","import { Typography, Callout } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst VerificationInstructions = () => {\n const { t } = useTranslation();\n\n const instructionText = t(\n \"neetoEmailDelivery.sparkpost.instructions.fullText\"\n );\n const lines = instructionText.split(\"\\n\");\n\n return (\n <Callout style=\"info\">\n <div className=\"w-full\">\n <Typography style=\"body2\">\n {lines.map((line, index) => (\n <span key={index}>\n {line}\n {index < lines.length - 1 && <br />}\n </span>\n ))}\n </Typography>\n </div>\n </Callout>\n );\n};\n\nexport default VerificationInstructions;\n","import { Callout, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { VERIFICATION_STATUS_CONFIG } from \"./constants\";\n\nconst VerificationStatusCallout = ({ verificationStatus }) => {\n const { t } = useTranslation();\n\n const config = VERIFICATION_STATUS_CONFIG[verificationStatus];\n\n if (!config) return null;\n\n return (\n <Callout style={config.style}>\n <div className=\"space-y-1\">\n <Typography style=\"body2\" weight=\"medium\">\n {t(config.titleKey)}\n </Typography>\n <Typography style=\"body3\">{t(config.descriptionKey)}</Typography>\n </div>\n </Callout>\n );\n};\n\nexport default VerificationStatusCallout;\n","import { useState, useEffect } from \"react\";\n\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { Spinner } from \"neetoui\";\nimport { pathOr } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { PageContent, PageWrapper } from \"components/PageLayout\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\nimport { useFetchSparkpostDomain } from \"hooks/reactQuery/integrations/useSparkpostApi\";\n\nimport { VERIFICATION_STATUSES } from \"./constants\";\nimport DnsRecordsSection from \"./DnsRecordsSection\";\nimport VerificationActions from \"./VerificationActions\";\nimport VerificationInstructions from \"./VerificationInstructions\";\nimport VerificationStatusCallout from \"./VerificationStatusCallout\";\n\nconst SparkpostDomainVerify = ({\n ownerId,\n canManageIntegrations,\n emailDeliveryIndexRoute,\n}) => {\n const [verificationStatus, setVerificationStatus] = useState(\"\");\n const { t } = useTranslation();\n\n const history = useHistory();\n\n const { domain: queryDomain } = useQueryParams();\n\n const { data: sparkpostData, isLoading } = useFetchSparkpostDomain(ownerId);\n const { onVerifyDomain, isVerifying } = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const domain = pathOr(queryDomain, [\"domain\"], sparkpostData);\n const dnsRecords = pathOr([], [\"verificationRecords\"], sparkpostData);\n\n useEffect(() => {\n // Check if domain is already verified\n if (!sparkpostData?.connected) return;\n setVerificationStatus(VERIFICATION_STATUSES.SUCCESS);\n setTimeout(() => {\n history.push(emailDeliveryIndexRoute);\n }, 5000);\n }, [sparkpostData, emailDeliveryIndexRoute, history]);\n\n const handleVerify = () => {\n onVerifyDomain(\n response => {\n if (response?.status === \"active\") {\n setVerificationStatus(VERIFICATION_STATUSES.SUCCESS);\n setTimeout(() => {\n history.push(emailDeliveryIndexRoute);\n }, 3000);\n } else {\n setVerificationStatus(VERIFICATION_STATUSES.PENDING);\n }\n },\n _error => {\n setVerificationStatus(VERIFICATION_STATUSES.ERROR);\n }\n );\n };\n\n const isVerificationSuccessful =\n verificationStatus === VERIFICATION_STATUSES.SUCCESS;\n\n const handleCancel = () => {\n history.push(emailDeliveryIndexRoute);\n };\n\n if (isLoading) {\n return (\n <div className=\"flex justify-center p-6\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <PageWrapper>\n <PageContent>\n <CardLayout\n title={t(\"neetoEmailDelivery.sparkpost.verify.title\")}\n actionBlock={\n <VerificationActions\n {...{ isVerifying, verificationStatus }}\n onCancel={handleCancel}\n onVerify={handleVerify}\n />\n }\n description={t(\"neetoEmailDelivery.sparkpost.verify.description\", {\n domain,\n }).replace(/<strong>|<\\/strong>/g, \"\")}\n >\n <div className=\"flex flex-col gap-4\">\n <VerificationStatusCallout {...{ verificationStatus }} />\n {!isVerificationSuccessful && (\n <>\n <DnsRecordsSection {...{ dnsRecords, domain, sparkpostData }} />\n <VerificationInstructions />\n </>\n )}\n </div>\n </CardLayout>\n </PageContent>\n </PageWrapper>\n );\n};\n\nexport default SparkpostDomainVerify;\n"],"names":["RecordField","_ref","label","value","dataTestid","_jsxs","className","children","_jsx","Typography","style","CopyToClipboardButton","DnsRecordsSection","dnsRecords","domain","sparkpostData","_useTranslation","useTranslation","t","formatPurpose","purpose","formatRecordName","hostname","endsWith","concat","status","txtVerificationValue","txtVerificationHostname","allRecords","isTxtUnverified","push","type","apply","_toConsumableArray","isEmpty","connected","weight","map","record","index","Tag","size","PURPOSE_COLORS","DEFAULT_COLOR","VerificationActions","withT","isVerifying","verificationStatus","onVerify","onCancel","Button","disabled","loading","onClick","VerificationInstructions","instructionText","lines","split","Callout","line","length","VerificationStatusCallout","config","VERIFICATION_STATUS_CONFIG","titleKey","descriptionKey","SparkpostDomainVerify","ownerId","canManageIntegrations","emailDeliveryIndexRoute","_useState","useState","_useState2","_slicedToArray","setVerificationStatus","history","useHistory","_useQueryParams","useQueryParams","queryDomain","_useFetchSparkpostDom","useFetchSparkpostDomain","data","isLoading","_useSparkpostDomain","useSparkpostDomain","onVerifyDomain","pathOr","useEffect","VERIFICATION_STATUSES","SUCCESS","setTimeout","handleVerify","response","PENDING","_error","ERROR","isVerificationSuccessful","handleCancel","Spinner","PageWrapper","PageContent","CardLayout","title","actionBlock","description","replace","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"SparkpostDomainVerify.js","sources":["../../app/javascript/src/components/SparkpostDomain/RecordField.jsx","../../app/javascript/src/components/SparkpostDomain/DnsRecordsSection.jsx","../../app/javascript/src/components/SparkpostDomain/VerificationActions.jsx","../../app/javascript/src/components/SparkpostDomain/VerificationInstructions.jsx","../../app/javascript/src/components/SparkpostDomain/VerificationStatusCallout.jsx","../../app/javascript/src/components/SparkpostDomain/Verify.jsx"],"sourcesContent":["import CopyToClipboardButton from \"neetomolecules/CopyToClipboardButton\";\nimport { Typography } from \"neetoui\";\n\nconst RecordField = ({ label, value, dataTestid }) => (\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"flex items-center justify-between\">\n <Typography style=\"h5\">{label}</Typography>\n </div>\n <code\n className=\"neeto-ui-text-gray-800 neeto-ui-bg-gray-100 neeto-ui-rounded-md relative block p-4 pe-10 font-mono text-xs break-all\"\n data-testid={dataTestid}\n >\n {value}\n <CopyToClipboardButton\n {...{ value }}\n className=\"absolute top-1 end-1 shrink-0\"\n style=\"tertiary\"\n />\n </code>\n </div>\n);\n\nexport default RecordField;\n","import { Typography, Tag } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PURPOSE_COLORS, DEFAULT_COLOR } from \"./constants\";\nimport RecordField from \"./RecordField\";\n\nconst DnsRecordsSection = ({ dnsRecords, domain, sparkpostData }) => {\n const { t } = useTranslation();\n\n const formatPurpose = purpose => {\n switch (purpose) {\n case \"dkim\":\n return t(\"neetoEmailDelivery.sparkpost.dnsRecords.dkimSigning\");\n case \"txt\":\n return t(\"neetoEmailDelivery.sparkpost.dnsRecords.txtVerification\");\n default:\n return purpose;\n }\n };\n\n const formatRecordName = hostname => {\n if (!hostname) return \"\";\n\n return hostname.endsWith(`.${domain}`) ? hostname : `${hostname}.${domain}`;\n };\n\n const { status, txtVerificationValue, txtVerificationHostname } =\n sparkpostData;\n\n const allRecords = [];\n const isTxtUnverified = status === \"txt_unverified\";\n\n if (isTxtUnverified) {\n if (txtVerificationValue && txtVerificationHostname) {\n allRecords.push({\n type: \"TXT\",\n purpose: \"txt\",\n hostname: txtVerificationHostname,\n value: txtVerificationValue,\n });\n }\n } else {\n allRecords.push(...dnsRecords);\n }\n\n if (isEmpty(allRecords)) {\n return (\n <div className=\"p-8 text-center\">\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {sparkpostData?.connected\n ? t(\"neetoEmailDelivery.sparkpost.dnsRecords.alreadyVerified\")\n : t(\"neetoEmailDelivery.sparkpost.dnsRecords.loading\")}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-4\">\n <Typography style=\"h4\" weight=\"medium\">\n {t(\"neetoEmailDelivery.sparkpost.dnsRecords.title\")}\n </Typography>\n {allRecords.map((record, index) => (\n <div\n className=\"neeto-ui-rounded-lg neeto-ui-bg-white neeto-ui-border-gray-300 border p-3\"\n key={index}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Tag\n label={formatPurpose(record.purpose)}\n size=\"small\"\n style={PURPOSE_COLORS[record.purpose] || DEFAULT_COLOR}\n />\n <Tag label={record.type} size=\"small\" style=\"secondary\" />\n </div>\n </div>\n <div className=\"flex flex-col gap-4\">\n <RecordField\n dataTestid=\"record-name\"\n label={t(\"neetoEmailDelivery.sparkpost.dnsRecords.nameLabel\")}\n value={formatRecordName(record.hostname)}\n />\n <RecordField\n dataTestid=\"record-value\"\n label={t(\"neetoEmailDelivery.sparkpost.dnsRecords.valueLabel\")}\n value={record.value}\n />\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default DnsRecordsSection;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Button } from \"neetoui\";\n\nconst VerificationActions = withT(\n ({ t, isVerifying, verificationStatus, onVerify, onCancel }) => (\n <div className=\"flex gap-3\">\n <Button\n data-testid=\"verify-domain-button\"\n disabled={isVerifying || verificationStatus === \"success\"}\n loading={isVerifying}\n onClick={onVerify}\n >\n {isVerifying\n ? t(\"neetoEmailDelivery.sparkpost.verify.verifying\")\n : t(\"neetoEmailDelivery.sparkpost.verify.verifyDomain\")}\n </Button>\n <Button\n data-testid=\"cancel-button\"\n disabled={isVerifying}\n style=\"secondary\"\n onClick={onCancel}\n >\n {t(\"neetoEmailDelivery.sparkpost.verify.cancel\")}\n </Button>\n </div>\n )\n);\n\nexport default VerificationActions;\n","import { Typography, Callout } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst VerificationInstructions = () => {\n const { t } = useTranslation();\n\n const instructionText = t(\n \"neetoEmailDelivery.sparkpost.instructions.fullText\"\n );\n const lines = instructionText.split(\"\\n\");\n\n return (\n <Callout style=\"info\">\n <div className=\"w-full\">\n <Typography style=\"body2\">\n {lines.map((line, index) => (\n <span key={index}>\n {line}\n {index < lines.length - 1 && <br />}\n </span>\n ))}\n </Typography>\n </div>\n </Callout>\n );\n};\n\nexport default VerificationInstructions;\n","import { Callout, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { VERIFICATION_STATUS_CONFIG } from \"./constants\";\n\nconst VerificationStatusCallout = ({ verificationStatus }) => {\n const { t } = useTranslation();\n\n const config = VERIFICATION_STATUS_CONFIG[verificationStatus];\n\n if (!config) return null;\n\n return (\n <Callout style={config.style}>\n <div className=\"space-y-1\">\n <Typography style=\"body2\" weight=\"medium\">\n {t(config.titleKey)}\n </Typography>\n <Typography style=\"body3\">{t(config.descriptionKey)}</Typography>\n </div>\n </Callout>\n );\n};\n\nexport default VerificationStatusCallout;\n","import { useState, useEffect } from \"react\";\n\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { Spinner } from \"neetoui\";\nimport { pathOr } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { PageContent, PageWrapper } from \"components/PageLayout\";\nimport useSparkpostDomain from \"hooks/integrations/useSparkpostDomain\";\nimport { useFetchConnectedIntegration } from \"hooks/reactQuery/integrations/useEmailDeliveryIntegrationApi\";\nimport { useFetchSparkpostDomain } from \"hooks/reactQuery/integrations/useSparkpostApi\";\n\nimport { VERIFICATION_STATUSES } from \"./constants\";\nimport DnsRecordsSection from \"./DnsRecordsSection\";\nimport VerificationActions from \"./VerificationActions\";\nimport VerificationInstructions from \"./VerificationInstructions\";\nimport VerificationStatusCallout from \"./VerificationStatusCallout\";\n\nconst SparkpostDomainVerify = ({\n ownerId,\n canManageIntegrations,\n emailDeliveryIndexRoute,\n}) => {\n const [verificationStatus, setVerificationStatus] = useState(\"\");\n const { t } = useTranslation();\n\n const history = useHistory();\n\n const { integration, isLoading: isIntegrationLoading } =\n useFetchConnectedIntegration(ownerId);\n\n const hasConnectedIntegration = integration && !integration.isPending;\n\n const { domain: queryDomain } = useQueryParams();\n\n const { data: sparkpostData, isLoading } = useFetchSparkpostDomain(ownerId);\n const { onVerifyDomain, isVerifying } = useSparkpostDomain({\n ownerId,\n canManageIntegrations,\n });\n\n const domain = pathOr(queryDomain, [\"domain\"], sparkpostData);\n const dnsRecords = pathOr([], [\"verificationRecords\"], sparkpostData);\n\n useEffect(() => {\n // Check if domain is already verified\n if (!sparkpostData?.connected) return;\n setVerificationStatus(VERIFICATION_STATUSES.SUCCESS);\n setTimeout(() => {\n history.push(emailDeliveryIndexRoute);\n }, 5000);\n }, [sparkpostData, emailDeliveryIndexRoute, history]);\n\n const handleVerify = () => {\n onVerifyDomain(\n response => {\n if (response?.status === \"active\") {\n setVerificationStatus(VERIFICATION_STATUSES.SUCCESS);\n setTimeout(() => {\n history.push(emailDeliveryIndexRoute);\n }, 3000);\n } else {\n setVerificationStatus(VERIFICATION_STATUSES.PENDING);\n }\n },\n _error => {\n setVerificationStatus(VERIFICATION_STATUSES.ERROR);\n }\n );\n };\n\n const isVerificationSuccessful =\n verificationStatus === VERIFICATION_STATUSES.SUCCESS;\n\n const handleCancel = () => {\n history.push(emailDeliveryIndexRoute);\n };\n\n if (isLoading || isIntegrationLoading) {\n return (\n <div className=\"flex justify-center p-6\">\n <Spinner />\n </div>\n );\n }\n\n if (hasConnectedIntegration) {\n history.replace(emailDeliveryIndexRoute);\n\n return null;\n }\n\n return (\n <PageWrapper>\n <PageContent>\n <CardLayout\n title={t(\"neetoEmailDelivery.sparkpost.verify.title\")}\n actionBlock={\n <VerificationActions\n {...{ isVerifying, verificationStatus }}\n onCancel={handleCancel}\n onVerify={handleVerify}\n />\n }\n description={t(\"neetoEmailDelivery.sparkpost.verify.description\", {\n domain,\n }).replace(/<strong>|<\\/strong>/g, \"\")}\n >\n <div className=\"flex flex-col gap-4\">\n <VerificationStatusCallout {...{ verificationStatus }} />\n {!isVerificationSuccessful && (\n <>\n <DnsRecordsSection {...{ dnsRecords, domain, sparkpostData }} />\n <VerificationInstructions />\n </>\n )}\n </div>\n </CardLayout>\n </PageContent>\n </PageWrapper>\n );\n};\n\nexport default SparkpostDomainVerify;\n"],"names":["RecordField","_ref","label","value","dataTestid","_jsxs","className","children","_jsx","Typography","style","CopyToClipboardButton","DnsRecordsSection","dnsRecords","domain","sparkpostData","_useTranslation","useTranslation","t","formatPurpose","purpose","formatRecordName","hostname","endsWith","concat","status","txtVerificationValue","txtVerificationHostname","allRecords","isTxtUnverified","push","type","apply","_toConsumableArray","isEmpty","connected","weight","map","record","index","Tag","size","PURPOSE_COLORS","DEFAULT_COLOR","VerificationActions","withT","isVerifying","verificationStatus","onVerify","onCancel","Button","disabled","loading","onClick","VerificationInstructions","instructionText","lines","split","Callout","line","length","VerificationStatusCallout","config","VERIFICATION_STATUS_CONFIG","titleKey","descriptionKey","SparkpostDomainVerify","ownerId","canManageIntegrations","emailDeliveryIndexRoute","_useState","useState","_useState2","_slicedToArray","setVerificationStatus","history","useHistory","_useFetchConnectedInt","useFetchConnectedIntegration","integration","isIntegrationLoading","isLoading","hasConnectedIntegration","isPending","_useQueryParams","useQueryParams","queryDomain","_useFetchSparkpostDom","useFetchSparkpostDomain","data","_useSparkpostDomain","useSparkpostDomain","onVerifyDomain","pathOr","useEffect","VERIFICATION_STATUSES","SUCCESS","setTimeout","handleVerify","response","PENDING","_error","ERROR","isVerificationSuccessful","handleCancel","Spinner","replace","PageWrapper","PageContent","CardLayout","title","actionBlock","description","_Fragment"],"mappings":"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"}
package/dist/cjs/hooks.js CHANGED
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var neetoCist = require('@bigbinary/neeto-cist');
4
- var ramda = require('ramda');
5
- var useOutlookIntegrationApi = require('../useOutlookIntegrationApi-BC-RPHmJ.js');
6
- var useSparkpostApi = require('../useSparkpostApi-D9NOjTNA.js');
3
+ var useEmailDeliveryIntegrationApi = require('../useEmailDeliveryIntegrationApi-BD6h2h5w.js');
4
+ require('@bigbinary/neeto-cist');
5
+ require('ramda');
6
+ require('../useSparkpostApi-C7cHCa3T.js');
7
7
  require('@babel/runtime/helpers/defineProperty');
8
8
  require('@tanstack/react-query');
9
9
  require('@bigbinary/neeto-commons-frontend/react-utils');
@@ -11,47 +11,7 @@ require('axios');
11
11
  require('@bigbinary/neeto-commons-frontend/utils');
12
12
  require('@babel/runtime/helpers/slicedToArray');
13
13
 
14
- var useFetchConnectedIntegration = function useFetchConnectedIntegration(ownerId) {
15
- var _connectedIntegration;
16
- var gmail = useOutlookIntegrationApi.useFetchGmail(ownerId);
17
- var outlook = useOutlookIntegrationApi.useFetchOutlook(ownerId);
18
- var sparkpost = useSparkpostApi.useFetchSparkpostDomain(ownerId);
19
- var smtp = useOutlookIntegrationApi.useFetchSmtp(ownerId);
20
- var integrations = [{
21
- type: "gmail",
22
- hook: gmail
23
- }, {
24
- type: "outlook",
25
- hook: outlook
26
- }, {
27
- type: "sparkpost",
28
- hook: sparkpost
29
- }, {
30
- type: "smtp",
31
- hook: smtp
32
- }];
33
- var hooks = ramda.pluck("hook", integrations);
34
- var isLoading = neetoCist.existsBy({
35
- isLoading: true
36
- }, hooks);
37
- var isError = neetoCist.existsBy({
38
- isError: true
39
- }, hooks);
40
- var connectedIntegration = integrations.find(function (_ref) {
41
- var _hook$data;
42
- var hook = _ref.hook;
43
- return hook.isSuccess && (hook === null || hook === void 0 || (_hook$data = hook.data) === null || _hook$data === void 0 ? void 0 : _hook$data.connected);
44
- });
45
- var integration = connectedIntegration ? {
46
- type: connectedIntegration.type,
47
- data: (_connectedIntegration = connectedIntegration.hook) === null || _connectedIntegration === void 0 ? void 0 : _connectedIntegration.data
48
- } : null;
49
- return {
50
- integration: integration,
51
- isLoading: isLoading,
52
- isError: isError
53
- };
54
- };
55
14
 
56
- exports.useFetchConnectedIntegration = useFetchConnectedIntegration;
15
+
16
+ exports.useFetchConnectedIntegration = useEmailDeliveryIntegrationApi.useFetchConnectedIntegration;
57
17
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../app/javascript/src/hooks/reactQuery/integrations/useEmailDeliveryIntegrationApi.js"],"sourcesContent":["import { existsBy } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nimport { useFetchGmail } from \"./useGmailIntegrationApi\";\nimport { useFetchOutlook } from \"./useOutlookIntegrationApi\";\nimport { useFetchSmtp } from \"./useSmtpIntegrationApi\";\nimport { useFetchSparkpostDomain } from \"./useSparkpostApi\";\n\nexport const useFetchConnectedIntegration = ownerId => {\n const gmail = useFetchGmail(ownerId);\n const outlook = useFetchOutlook(ownerId);\n const sparkpost = useFetchSparkpostDomain(ownerId);\n const smtp = useFetchSmtp(ownerId);\n\n const integrations = [\n { type: \"gmail\", hook: gmail },\n { type: \"outlook\", hook: outlook },\n { type: \"sparkpost\", hook: sparkpost },\n { type: \"smtp\", hook: smtp },\n ];\n\n const hooks = pluck(\"hook\", integrations);\n\n const isLoading = existsBy({ isLoading: true }, hooks);\n const isError = existsBy({ isError: true }, hooks);\n\n const connectedIntegration = integrations.find(\n ({ hook }) => hook.isSuccess && hook?.data?.connected\n );\n\n const integration = connectedIntegration\n ? {\n type: connectedIntegration.type,\n data: connectedIntegration.hook?.data,\n }\n : null;\n\n return { integration, isLoading, isError };\n};\n"],"names":["useFetchConnectedIntegration","ownerId","_connectedIntegration","gmail","useFetchGmail","outlook","useFetchOutlook","sparkpost","useFetchSparkpostDomain","smtp","useFetchSmtp","integrations","type","hook","hooks","pluck","isLoading","existsBy","isError","connectedIntegration","find","_ref","_hook$data","isSuccess","data","connected","integration"],"mappings":";;;;;;;;;;;;;IAQaA,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAGC,OAAO,EAAI;AAAA,EAAA,IAAAC,qBAAA;AACrD,EAAA,IAAMC,KAAK,GAAGC,sCAAa,CAACH,OAAO,CAAC;AACpC,EAAA,IAAMI,OAAO,GAAGC,wCAAe,CAACL,OAAO,CAAC;AACxC,EAAA,IAAMM,SAAS,GAAGC,uCAAuB,CAACP,OAAO,CAAC;AAClD,EAAA,IAAMQ,IAAI,GAAGC,qCAAY,CAACT,OAAO,CAAC;EAElC,IAAMU,YAAY,GAAG,CACnB;AAAEC,IAAAA,IAAI,EAAE,OAAO;AAAEC,IAAAA,IAAI,EAAEV;AAAM,GAAC,EAC9B;AAAES,IAAAA,IAAI,EAAE,SAAS;AAAEC,IAAAA,IAAI,EAAER;AAAQ,GAAC,EAClC;AAAEO,IAAAA,IAAI,EAAE,WAAW;AAAEC,IAAAA,IAAI,EAAEN;AAAU,GAAC,EACtC;AAAEK,IAAAA,IAAI,EAAE,MAAM;AAAEC,IAAAA,IAAI,EAAEJ;AAAK,GAAC,CAC7B;AAED,EAAA,IAAMK,KAAK,GAAGC,WAAK,CAAC,MAAM,EAAEJ,YAAY,CAAC;EAEzC,IAAMK,SAAS,GAAGC,kBAAQ,CAAC;AAAED,IAAAA,SAAS,EAAE;GAAM,EAAEF,KAAK,CAAC;EACtD,IAAMI,OAAO,GAAGD,kBAAQ,CAAC;AAAEC,IAAAA,OAAO,EAAE;GAAM,EAAEJ,KAAK,CAAC;AAElD,EAAA,IAAMK,oBAAoB,GAAGR,YAAY,CAACS,IAAI,CAC5C,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAAC,UAAA;AAAA,IAAA,IAAGT,IAAI,GAAAQ,IAAA,CAAJR,IAAI;AAAA,IAAA,OAAOA,IAAI,CAACU,SAAS,KAAIV,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAAS,KAAAA,CAAAA,IAAAA,CAAAA,UAAA,GAAJT,IAAI,CAAEW,IAAI,MAAA,IAAA,IAAAF,UAAA,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAA,CAAYG,SAAS,CAAA;AAAA,GACvD,CAAC;EAED,IAAMC,WAAW,GAAGP,oBAAoB,GACpC;IACEP,IAAI,EAAEO,oBAAoB,CAACP,IAAI;IAC/BY,IAAI,EAAA,CAAAtB,qBAAA,GAAEiB,oBAAoB,CAACN,IAAI,MAAAX,IAAAA,IAAAA,qBAAA,KAAzBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA2BsB;AACnC,GAAC,GACD,IAAI;EAER,OAAO;AAAEE,IAAAA,WAAW,EAAXA,WAAW;AAAEV,IAAAA,SAAS,EAATA,SAAS;AAAEE,IAAAA,OAAO,EAAPA;GAAS;AAC5C;;;;"}
1
+ {"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}