@bigbinary/neeto-integrations-frontend 4.0.17 → 4.0.19

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
@@ -142,6 +142,7 @@ has_many :integrated_apps, as: :integrable, class_name: "NeetoIntegrationsEngine
142
142
  - [Endpoints](./docs/engine/endpoints.md)
143
143
  - [Errors](./docs/engine/errors.md)
144
144
  - [MS Teams credentials and integration information](./docs/engine/ms-teams.md)
145
+ - [Telnyx integration setup](./docs/engine/telnyx.md)
145
146
 
146
147
  #### neeto products currently using this engine
147
148
 
@@ -179,6 +180,7 @@ Available components:
179
180
  - [GoogleCalendar](./docs/frontend/components/GoogleCalendar/README.md)
180
181
  - [Modal](./docs/frontend/components/Modal/README.md)
181
182
  - [Twilio](./docs/frontend/components/twilio/README.md)
183
+ - [Telnyx](./docs/frontend/components/telnyx/README.md)
182
184
  - [WalkthroughModal](./docs/frontend/components/WalkthroughModal/README.md)
183
185
  - [Zoom](./docs/frontend/components/zoom/README.md)
184
186
  - [Exports and Types](./docs/frontend/exports-and-types.md)
package/dist/Telnyx.js CHANGED
@@ -6,9 +6,9 @@ import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
6
6
  import Form from '@bigbinary/neetoui/formik/Form';
7
7
  import Input from '@bigbinary/neetoui/formik/Input';
8
8
  import Select from '@bigbinary/neetoui/formik/Select';
9
- import { prop, isEmpty } from 'ramda';
10
9
  import { useTranslation } from 'react-i18next';
11
10
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
11
+ import { prop, isEmpty } from 'ramda';
12
12
  import { useQuery, useMutation } from '@tanstack/react-query';
13
13
  import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
14
14
  import axios from 'axios';
@@ -168,15 +168,15 @@ var Telnyx = function Telnyx(_ref) {
168
168
  phoneNumberOptions = _useTelnyxForm.phoneNumberOptions,
169
169
  isSubmitting = _useTelnyxForm.isSubmitting,
170
170
  isLoading = _useTelnyxForm.isLoading;
171
- var isPhoneNumberRequired = isNotEmpty(phoneNumberOptions);
172
- var submitButtonLabel = isNotEmpty(phoneNumberOptions) ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify");
171
+ var hasPhoneNumbers = isNotEmpty(phoneNumberOptions);
172
+ var submitButtonLabel = hasPhoneNumbers ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify");
173
173
  if (isLoading) return /*#__PURE__*/jsx(PageLoader, {});
174
174
  return /*#__PURE__*/jsx(Form, {
175
175
  className: "w-full",
176
176
  formikProps: {
177
177
  enableReinitialize: true,
178
178
  initialValues: initialValues,
179
- validationSchema: buildTelnyxConfigurationValidationSchema(isPhoneNumberRequired),
179
+ validationSchema: buildTelnyxConfigurationValidationSchema(hasPhoneNumbers),
180
180
  innerRef: formRef,
181
181
  onSubmit: handleSubmit
182
182
  },
@@ -192,18 +192,20 @@ var Telnyx = function Telnyx(_ref) {
192
192
  label: submitButtonLabel,
193
193
  // The button is disabled if phoneNumberOptions is empty and there is no apiKey in initialValues while the form is not dirty.
194
194
  // If phoneNumberOptions is not empty, the button is disabled when the form is unchanged.
195
- disabled: isEmpty(phoneNumberOptions) ? !initialValues.apiKey && !dirty : !dirty
195
+ disabled: !hasPhoneNumbers ? !initialValues.apiKey && !dirty : !dirty
196
196
  }
197
197
  }),
198
198
  children: /*#__PURE__*/jsxs("div", {
199
199
  className: "space-y-4",
200
200
  children: [/*#__PURE__*/jsx(Input, {
201
+ disabled: hasPhoneNumbers,
201
202
  label: t("neetoIntegrations.telnyx.apiKey"),
202
203
  name: "apiKey"
203
204
  }), /*#__PURE__*/jsx(Input, {
205
+ disabled: hasPhoneNumbers,
204
206
  label: t("neetoIntegrations.telnyx.messagingProfileId"),
205
207
  name: "messagingProfileId"
206
- }), isNotEmpty(phoneNumberOptions) && /*#__PURE__*/jsx(Select, {
208
+ }), hasPhoneNumbers && /*#__PURE__*/jsx(Select, {
207
209
  label: t("neetoIntegrations.telnyx.phoneNumber"),
208
210
  name: "phoneNumber",
209
211
  options: phoneNumberOptions
@@ -1 +1 @@
1
- {"version":3,"file":"Telnyx.js","sources":["../app/javascript/src/apis/telnyx.js","../app/javascript/src/hooks/reactQuery/useTelnyxApi.js","../app/javascript/src/components/Integrations/Telnyx/utils.js","../app/javascript/src/components/Integrations/Telnyx/hooks/useTelnyxForm.js","../app/javascript/src/components/Integrations/Telnyx/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport {\n TELNYX_PHONE_NUMBERS_URL,\n TELNYX_SMS_CONFIGURATION_URL,\n} from \"src/constants/urls\";\n\nconst fetchTelnyxSmsConfiguration = integrable =>\n axios.get(TELNYX_SMS_CONFIGURATION_URL, { params: integrable });\n\nconst fetchTelnyxPhoneNumbers = ({ apiKey, messagingProfileId }) =>\n axios.get(TELNYX_PHONE_NUMBERS_URL, {\n params: { telnyx: { apiKey, messagingProfileId } },\n });\n\nconst createTelnyxSmsConfiguration = payload =>\n axios.post(TELNYX_SMS_CONFIGURATION_URL, { telnyx: payload });\n\nconst telnyxApi = {\n fetchTelnyxPhoneNumbers,\n fetchTelnyxSmsConfiguration,\n createTelnyxSmsConfiguration,\n};\n\nexport default telnyxApi;\n","import { useQuery, useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport telnyxApi from \"apis/telnyx\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchTelnyxSmsConfiguration = ({ integrable }) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.TELNYX_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n queryFn: () => telnyxApi.fetchTelnyxSmsConfiguration(integrable),\n select: prop(\"smsConfiguration\"),\n });\n\nconst useFetchTelnyxPhoneNumbers = () =>\n useMutation({ mutationFn: telnyxApi.fetchTelnyxPhoneNumbers });\n\nconst useCreateTelnyxSmsConfiguration = ({ integrable }) =>\n useMutationWithInvalidation(telnyxApi.createTelnyxSmsConfiguration, {\n keysToInvalidate: [\n [\n QUERY_KEYS.TELNYX_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n ],\n });\n\nexport {\n useFetchTelnyxPhoneNumbers,\n useFetchTelnyxSmsConfiguration,\n useCreateTelnyxSmsConfiguration,\n};\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const buildPhoneNumberOptions = phoneNumbers =>\n phoneNumbers\n ? phoneNumbers.map(({ id, phoneNumber }) => ({\n value: id,\n label: phoneNumber,\n }))\n : [];\n\nexport const buildTelnyxConfigurationValidationSchema = isPhoneNumberRequired =>\n yup.object().shape({\n apiKey: yup\n .string()\n .required(t(\"neetoIntegrations.telnyx.validations.apiKeyRequired\")),\n messagingProfileId: yup\n .string()\n .required(\n t(\"neetoIntegrations.telnyx.validations.messagingProfileIdRequired\")\n ),\n phoneNumber: isPhoneNumberRequired\n ? yup\n .object()\n .shape({ label: yup.string(), value: yup.string() })\n .nullable()\n .required(\n t(\"neetoIntegrations.telnyx.validations.phoneNumberRequired\")\n )\n : yup.mixed().nullable(),\n });\n","import { useState } from \"react\";\n\nimport { findBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\n\nimport {\n useCreateTelnyxSmsConfiguration,\n useFetchTelnyxPhoneNumbers,\n useFetchTelnyxSmsConfiguration,\n} from \"hooks/reactQuery/useTelnyxApi\";\n\nimport { buildPhoneNumberOptions } from \"../utils\";\n\nconst useTelnyxForm = ({ integrable, onConnect }) => {\n const [phoneNumbers, setPhoneNumbers] = useState([]);\n\n const { data: configuration, isLoading } = useFetchTelnyxSmsConfiguration({\n integrable,\n });\n\n const {\n mutate: fetchTelnyxPhoneNumbers,\n isPending: isFetchPhoneNumbersLoading,\n } = useFetchTelnyxPhoneNumbers();\n\n const {\n mutate: createTelnyxSmsConfiguration,\n isPending: isCreateSmsConfigurationLoading,\n } = useCreateTelnyxSmsConfiguration({ integrable });\n\n const handleSubmit = values => {\n if (isEmpty(phoneNumbers)) {\n const params = {\n apiKey: values.apiKey,\n messagingProfileId: values.messagingProfileId,\n };\n\n fetchTelnyxPhoneNumbers(params, {\n onSuccess: ({ phoneNumbers }) => setPhoneNumbers(phoneNumbers),\n });\n\n return;\n }\n\n const payload = {\n apiKey: values.apiKey,\n messagingProfileId: values.messagingProfileId,\n phoneNumberId: values.phoneNumber.value,\n };\n\n createTelnyxSmsConfiguration(payload, { onSuccess: onConnect });\n };\n\n const isSubmitting =\n isFetchPhoneNumbersLoading || isCreateSmsConfigurationLoading;\n\n const phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);\n\n const initialValues = {\n apiKey: configuration?.apiKey || \"\",\n messagingProfileId: configuration?.messagingProfileId || \"\",\n phoneNumber:\n findBy({ label: configuration?.phoneNumber }, phoneNumberOptions) || null,\n };\n\n return {\n initialValues,\n phoneNumberOptions,\n isSubmitting,\n isLoading,\n handleSubmit,\n };\n};\n\nexport default useTelnyxForm;\n","import { useRef } from \"react\";\n\nimport { isNotEmpty, noop } from \"neetocist\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport { ActionBlock, Form, Input, Select } from \"neetoui/formik\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useTelnyxForm from \"./hooks/useTelnyxForm\";\nimport { buildTelnyxConfigurationValidationSchema } from \"./utils\";\n\nconst Telnyx = ({ integrable = null, onClose = noop, onConnect = noop }) => {\n const formRef = useRef(null);\n\n const { t } = useTranslation();\n\n const {\n initialValues,\n handleSubmit,\n phoneNumberOptions,\n isSubmitting,\n isLoading,\n } = useTelnyxForm({ integrable, onConnect });\n\n const isPhoneNumberRequired = isNotEmpty(phoneNumberOptions);\n\n const submitButtonLabel = isNotEmpty(phoneNumberOptions)\n ? t(\"neetoIntegrations.common.saveChanges\")\n : t(\"neetoIntegrations.common.verify\");\n\n if (isLoading) return <PageLoader />;\n\n return (\n <Form\n className=\"w-full\"\n formikProps={{\n enableReinitialize: true,\n initialValues,\n validationSchema: buildTelnyxConfigurationValidationSchema(\n isPhoneNumberRequired\n ),\n innerRef: formRef,\n onSubmit: handleSubmit,\n }}\n >\n {({ dirty }) => (\n <CardLayout\n actionBlock={\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{ onClick: onClose }}\n submitButtonProps={{\n label: submitButtonLabel,\n // The button is disabled if phoneNumberOptions is empty and there is no apiKey in initialValues while the form is not dirty.\n // If phoneNumberOptions is not empty, the button is disabled when the form is unchanged.\n disabled: isEmpty(phoneNumberOptions)\n ? !initialValues.apiKey && !dirty\n : !dirty,\n }}\n />\n }\n >\n <div className=\"space-y-4\">\n <Input label={t(\"neetoIntegrations.telnyx.apiKey\")} name=\"apiKey\" />\n <Input\n label={t(\"neetoIntegrations.telnyx.messagingProfileId\")}\n name=\"messagingProfileId\"\n />\n {isNotEmpty(phoneNumberOptions) && (\n <Select\n label={t(\"neetoIntegrations.telnyx.phoneNumber\")}\n name=\"phoneNumber\"\n options={phoneNumberOptions}\n />\n )}\n </div>\n </CardLayout>\n )}\n </Form>\n );\n};\n\nexport default Telnyx;\n"],"names":["fetchTelnyxSmsConfiguration","integrable","axios","get","TELNYX_SMS_CONFIGURATION_URL","params","fetchTelnyxPhoneNumbers","_ref","apiKey","messagingProfileId","TELNYX_PHONE_NUMBERS_URL","telnyx","createTelnyxSmsConfiguration","payload","post","telnyxApi","useFetchTelnyxSmsConfiguration","useQuery","queryKey","QUERY_KEYS","TELNYX_SMS_CONFIGURATION","integrableType","integrableId","queryFn","select","prop","useFetchTelnyxPhoneNumbers","useMutation","mutationFn","useCreateTelnyxSmsConfiguration","_ref2","useMutationWithInvalidation","keysToInvalidate","buildPhoneNumberOptions","phoneNumbers","map","id","phoneNumber","value","label","buildTelnyxConfigurationValidationSchema","isPhoneNumberRequired","yup","object","shape","string","required","t","nullable","mixed","useTelnyxForm","onConnect","_useState","useState","_useState2","_slicedToArray","setPhoneNumbers","_useFetchTelnyxSmsCon","configuration","data","isLoading","_useFetchTelnyxPhoneN","mutate","isFetchPhoneNumbersLoading","isPending","_useCreateTelnyxSmsCo","isCreateSmsConfigurationLoading","handleSubmit","values","isEmpty","onSuccess","phoneNumberId","isSubmitting","phoneNumberOptions","initialValues","findBy","Telnyx","_ref$integrable","_ref$onClose","onClose","noop","_ref$onConnect","formRef","useRef","_useTranslation","useTranslation","_useTelnyxForm","isNotEmpty","submitButtonLabel","_jsx","PageLoader","Form","className","formikProps","enableReinitialize","validationSchema","innerRef","onSubmit","children","dirty","CardLayout","actionBlock","ActionBlock","cancelButtonProps","onClick","submitButtonProps","disabled","_jsxs","Input","name","Select","options"],"mappings":"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"}
1
+ {"version":3,"file":"Telnyx.js","sources":["../app/javascript/src/apis/telnyx.js","../app/javascript/src/hooks/reactQuery/useTelnyxApi.js","../app/javascript/src/components/Integrations/Telnyx/utils.js","../app/javascript/src/components/Integrations/Telnyx/hooks/useTelnyxForm.js","../app/javascript/src/components/Integrations/Telnyx/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport {\n TELNYX_PHONE_NUMBERS_URL,\n TELNYX_SMS_CONFIGURATION_URL,\n} from \"src/constants/urls\";\n\nconst fetchTelnyxSmsConfiguration = integrable =>\n axios.get(TELNYX_SMS_CONFIGURATION_URL, { params: integrable });\n\nconst fetchTelnyxPhoneNumbers = ({ apiKey, messagingProfileId }) =>\n axios.get(TELNYX_PHONE_NUMBERS_URL, {\n params: { telnyx: { apiKey, messagingProfileId } },\n });\n\nconst createTelnyxSmsConfiguration = payload =>\n axios.post(TELNYX_SMS_CONFIGURATION_URL, { telnyx: payload });\n\nconst telnyxApi = {\n fetchTelnyxPhoneNumbers,\n fetchTelnyxSmsConfiguration,\n createTelnyxSmsConfiguration,\n};\n\nexport default telnyxApi;\n","import { useQuery, useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport telnyxApi from \"apis/telnyx\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchTelnyxSmsConfiguration = ({ integrable }) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.TELNYX_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n queryFn: () => telnyxApi.fetchTelnyxSmsConfiguration(integrable),\n select: prop(\"smsConfiguration\"),\n });\n\nconst useFetchTelnyxPhoneNumbers = () =>\n useMutation({ mutationFn: telnyxApi.fetchTelnyxPhoneNumbers });\n\nconst useCreateTelnyxSmsConfiguration = ({ integrable }) =>\n useMutationWithInvalidation(telnyxApi.createTelnyxSmsConfiguration, {\n keysToInvalidate: [\n [\n QUERY_KEYS.TELNYX_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n ],\n });\n\nexport {\n useFetchTelnyxPhoneNumbers,\n useFetchTelnyxSmsConfiguration,\n useCreateTelnyxSmsConfiguration,\n};\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const buildPhoneNumberOptions = phoneNumbers =>\n phoneNumbers\n ? phoneNumbers.map(({ id, phoneNumber }) => ({\n value: id,\n label: phoneNumber,\n }))\n : [];\n\nexport const buildTelnyxConfigurationValidationSchema = isPhoneNumberRequired =>\n yup.object().shape({\n apiKey: yup\n .string()\n .required(t(\"neetoIntegrations.telnyx.validations.apiKeyRequired\")),\n messagingProfileId: yup\n .string()\n .required(\n t(\"neetoIntegrations.telnyx.validations.messagingProfileIdRequired\")\n ),\n phoneNumber: isPhoneNumberRequired\n ? yup\n .object()\n .shape({ label: yup.string(), value: yup.string() })\n .nullable()\n .required(\n t(\"neetoIntegrations.telnyx.validations.phoneNumberRequired\")\n )\n : yup.mixed().nullable(),\n });\n","import { useState } from \"react\";\n\nimport { findBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\n\nimport {\n useCreateTelnyxSmsConfiguration,\n useFetchTelnyxPhoneNumbers,\n useFetchTelnyxSmsConfiguration,\n} from \"hooks/reactQuery/useTelnyxApi\";\n\nimport { buildPhoneNumberOptions } from \"../utils\";\n\nconst useTelnyxForm = ({ integrable, onConnect }) => {\n const [phoneNumbers, setPhoneNumbers] = useState([]);\n\n const { data: configuration, isLoading } = useFetchTelnyxSmsConfiguration({\n integrable,\n });\n\n const {\n mutate: fetchTelnyxPhoneNumbers,\n isPending: isFetchPhoneNumbersLoading,\n } = useFetchTelnyxPhoneNumbers();\n\n const {\n mutate: createTelnyxSmsConfiguration,\n isPending: isCreateSmsConfigurationLoading,\n } = useCreateTelnyxSmsConfiguration({ integrable });\n\n const handleSubmit = values => {\n if (isEmpty(phoneNumbers)) {\n const params = {\n apiKey: values.apiKey,\n messagingProfileId: values.messagingProfileId,\n };\n\n fetchTelnyxPhoneNumbers(params, {\n onSuccess: ({ phoneNumbers }) => setPhoneNumbers(phoneNumbers),\n });\n\n return;\n }\n\n const payload = {\n apiKey: values.apiKey,\n messagingProfileId: values.messagingProfileId,\n phoneNumberId: values.phoneNumber.value,\n };\n\n createTelnyxSmsConfiguration(payload, { onSuccess: onConnect });\n };\n\n const isSubmitting =\n isFetchPhoneNumbersLoading || isCreateSmsConfigurationLoading;\n\n const phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);\n\n const initialValues = {\n apiKey: configuration?.apiKey || \"\",\n messagingProfileId: configuration?.messagingProfileId || \"\",\n phoneNumber:\n findBy({ label: configuration?.phoneNumber }, phoneNumberOptions) || null,\n };\n\n return {\n initialValues,\n phoneNumberOptions,\n isSubmitting,\n isLoading,\n handleSubmit,\n };\n};\n\nexport default useTelnyxForm;\n","import { useRef } from \"react\";\n\nimport { isNotEmpty, noop } from \"neetocist\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport { ActionBlock, Form, Input, Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useTelnyxForm from \"./hooks/useTelnyxForm\";\nimport { buildTelnyxConfigurationValidationSchema } from \"./utils\";\n\nconst Telnyx = ({ integrable = null, onClose = noop, onConnect = noop }) => {\n const formRef = useRef(null);\n\n const { t } = useTranslation();\n\n const {\n initialValues,\n handleSubmit,\n phoneNumberOptions,\n isSubmitting,\n isLoading,\n } = useTelnyxForm({ integrable, onConnect });\n\n const hasPhoneNumbers = isNotEmpty(phoneNumberOptions);\n\n const submitButtonLabel = hasPhoneNumbers\n ? t(\"neetoIntegrations.common.saveChanges\")\n : t(\"neetoIntegrations.common.verify\");\n\n if (isLoading) return <PageLoader />;\n\n return (\n <Form\n className=\"w-full\"\n formikProps={{\n enableReinitialize: true,\n initialValues,\n validationSchema:\n buildTelnyxConfigurationValidationSchema(hasPhoneNumbers),\n innerRef: formRef,\n onSubmit: handleSubmit,\n }}\n >\n {({ dirty }) => (\n <CardLayout\n actionBlock={\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{ onClick: onClose }}\n submitButtonProps={{\n label: submitButtonLabel,\n // The button is disabled if phoneNumberOptions is empty and there is no apiKey in initialValues while the form is not dirty.\n // If phoneNumberOptions is not empty, the button is disabled when the form is unchanged.\n disabled: !hasPhoneNumbers\n ? !initialValues.apiKey && !dirty\n : !dirty,\n }}\n />\n }\n >\n <div className=\"space-y-4\">\n <Input\n disabled={hasPhoneNumbers}\n label={t(\"neetoIntegrations.telnyx.apiKey\")}\n name=\"apiKey\"\n />\n <Input\n disabled={hasPhoneNumbers}\n label={t(\"neetoIntegrations.telnyx.messagingProfileId\")}\n name=\"messagingProfileId\"\n />\n {hasPhoneNumbers && (\n <Select\n label={t(\"neetoIntegrations.telnyx.phoneNumber\")}\n name=\"phoneNumber\"\n options={phoneNumberOptions}\n />\n )}\n </div>\n </CardLayout>\n )}\n </Form>\n );\n};\n\nexport default Telnyx;\n"],"names":["fetchTelnyxSmsConfiguration","integrable","axios","get","TELNYX_SMS_CONFIGURATION_URL","params","fetchTelnyxPhoneNumbers","_ref","apiKey","messagingProfileId","TELNYX_PHONE_NUMBERS_URL","telnyx","createTelnyxSmsConfiguration","payload","post","telnyxApi","useFetchTelnyxSmsConfiguration","useQuery","queryKey","QUERY_KEYS","TELNYX_SMS_CONFIGURATION","integrableType","integrableId","queryFn","select","prop","useFetchTelnyxPhoneNumbers","useMutation","mutationFn","useCreateTelnyxSmsConfiguration","_ref2","useMutationWithInvalidation","keysToInvalidate","buildPhoneNumberOptions","phoneNumbers","map","id","phoneNumber","value","label","buildTelnyxConfigurationValidationSchema","isPhoneNumberRequired","yup","object","shape","string","required","t","nullable","mixed","useTelnyxForm","onConnect","_useState","useState","_useState2","_slicedToArray","setPhoneNumbers","_useFetchTelnyxSmsCon","configuration","data","isLoading","_useFetchTelnyxPhoneN","mutate","isFetchPhoneNumbersLoading","isPending","_useCreateTelnyxSmsCo","isCreateSmsConfigurationLoading","handleSubmit","values","isEmpty","onSuccess","phoneNumberId","isSubmitting","phoneNumberOptions","initialValues","findBy","Telnyx","_ref$integrable","_ref$onClose","onClose","noop","_ref$onConnect","formRef","useRef","_useTranslation","useTranslation","_useTelnyxForm","hasPhoneNumbers","isNotEmpty","submitButtonLabel","_jsx","PageLoader","Form","className","formikProps","enableReinitialize","validationSchema","innerRef","onSubmit","children","dirty","CardLayout","actionBlock","ActionBlock","cancelButtonProps","onClick","submitButtonProps","disabled","_jsxs","Input","name","Select","options"],"mappings":"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"}
@@ -8,9 +8,9 @@ var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
8
8
  var Form = require('@bigbinary/neetoui/formik/Form');
9
9
  var Input = require('@bigbinary/neetoui/formik/Input');
10
10
  var Select = require('@bigbinary/neetoui/formik/Select');
11
- var ramda = require('ramda');
12
11
  var reactI18next = require('react-i18next');
13
12
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
13
+ var ramda = require('ramda');
14
14
  var reactQuery = require('@tanstack/react-query');
15
15
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
16
16
  var axios = require('axios');
@@ -189,15 +189,15 @@ var Telnyx = function Telnyx(_ref) {
189
189
  phoneNumberOptions = _useTelnyxForm.phoneNumberOptions,
190
190
  isSubmitting = _useTelnyxForm.isSubmitting,
191
191
  isLoading = _useTelnyxForm.isLoading;
192
- var isPhoneNumberRequired = neetoCist.isNotEmpty(phoneNumberOptions);
193
- var submitButtonLabel = neetoCist.isNotEmpty(phoneNumberOptions) ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify");
192
+ var hasPhoneNumbers = neetoCist.isNotEmpty(phoneNumberOptions);
193
+ var submitButtonLabel = hasPhoneNumbers ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify");
194
194
  if (isLoading) return /*#__PURE__*/jsxRuntime.jsx(PageLoader, {});
195
195
  return /*#__PURE__*/jsxRuntime.jsx(Form, {
196
196
  className: "w-full",
197
197
  formikProps: {
198
198
  enableReinitialize: true,
199
199
  initialValues: initialValues,
200
- validationSchema: buildTelnyxConfigurationValidationSchema(isPhoneNumberRequired),
200
+ validationSchema: buildTelnyxConfigurationValidationSchema(hasPhoneNumbers),
201
201
  innerRef: formRef,
202
202
  onSubmit: handleSubmit
203
203
  },
@@ -213,18 +213,20 @@ var Telnyx = function Telnyx(_ref) {
213
213
  label: submitButtonLabel,
214
214
  // The button is disabled if phoneNumberOptions is empty and there is no apiKey in initialValues while the form is not dirty.
215
215
  // If phoneNumberOptions is not empty, the button is disabled when the form is unchanged.
216
- disabled: ramda.isEmpty(phoneNumberOptions) ? !initialValues.apiKey && !dirty : !dirty
216
+ disabled: !hasPhoneNumbers ? !initialValues.apiKey && !dirty : !dirty
217
217
  }
218
218
  }),
219
219
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
220
220
  className: "space-y-4",
221
221
  children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
222
+ disabled: hasPhoneNumbers,
222
223
  label: t("neetoIntegrations.telnyx.apiKey"),
223
224
  name: "apiKey"
224
225
  }), /*#__PURE__*/jsxRuntime.jsx(Input, {
226
+ disabled: hasPhoneNumbers,
225
227
  label: t("neetoIntegrations.telnyx.messagingProfileId"),
226
228
  name: "messagingProfileId"
227
- }), neetoCist.isNotEmpty(phoneNumberOptions) && /*#__PURE__*/jsxRuntime.jsx(Select, {
229
+ }), hasPhoneNumbers && /*#__PURE__*/jsxRuntime.jsx(Select, {
228
230
  label: t("neetoIntegrations.telnyx.phoneNumber"),
229
231
  name: "phoneNumber",
230
232
  options: phoneNumberOptions
@@ -1 +1 @@
1
- {"version":3,"file":"Telnyx.js","sources":["../../app/javascript/src/apis/telnyx.js","../../app/javascript/src/hooks/reactQuery/useTelnyxApi.js","../../app/javascript/src/components/Integrations/Telnyx/utils.js","../../app/javascript/src/components/Integrations/Telnyx/hooks/useTelnyxForm.js","../../app/javascript/src/components/Integrations/Telnyx/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport {\n TELNYX_PHONE_NUMBERS_URL,\n TELNYX_SMS_CONFIGURATION_URL,\n} from \"src/constants/urls\";\n\nconst fetchTelnyxSmsConfiguration = integrable =>\n axios.get(TELNYX_SMS_CONFIGURATION_URL, { params: integrable });\n\nconst fetchTelnyxPhoneNumbers = ({ apiKey, messagingProfileId }) =>\n axios.get(TELNYX_PHONE_NUMBERS_URL, {\n params: { telnyx: { apiKey, messagingProfileId } },\n });\n\nconst createTelnyxSmsConfiguration = payload =>\n axios.post(TELNYX_SMS_CONFIGURATION_URL, { telnyx: payload });\n\nconst telnyxApi = {\n fetchTelnyxPhoneNumbers,\n fetchTelnyxSmsConfiguration,\n createTelnyxSmsConfiguration,\n};\n\nexport default telnyxApi;\n","import { useQuery, useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport telnyxApi from \"apis/telnyx\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchTelnyxSmsConfiguration = ({ integrable }) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.TELNYX_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n queryFn: () => telnyxApi.fetchTelnyxSmsConfiguration(integrable),\n select: prop(\"smsConfiguration\"),\n });\n\nconst useFetchTelnyxPhoneNumbers = () =>\n useMutation({ mutationFn: telnyxApi.fetchTelnyxPhoneNumbers });\n\nconst useCreateTelnyxSmsConfiguration = ({ integrable }) =>\n useMutationWithInvalidation(telnyxApi.createTelnyxSmsConfiguration, {\n keysToInvalidate: [\n [\n QUERY_KEYS.TELNYX_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n ],\n });\n\nexport {\n useFetchTelnyxPhoneNumbers,\n useFetchTelnyxSmsConfiguration,\n useCreateTelnyxSmsConfiguration,\n};\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const buildPhoneNumberOptions = phoneNumbers =>\n phoneNumbers\n ? phoneNumbers.map(({ id, phoneNumber }) => ({\n value: id,\n label: phoneNumber,\n }))\n : [];\n\nexport const buildTelnyxConfigurationValidationSchema = isPhoneNumberRequired =>\n yup.object().shape({\n apiKey: yup\n .string()\n .required(t(\"neetoIntegrations.telnyx.validations.apiKeyRequired\")),\n messagingProfileId: yup\n .string()\n .required(\n t(\"neetoIntegrations.telnyx.validations.messagingProfileIdRequired\")\n ),\n phoneNumber: isPhoneNumberRequired\n ? yup\n .object()\n .shape({ label: yup.string(), value: yup.string() })\n .nullable()\n .required(\n t(\"neetoIntegrations.telnyx.validations.phoneNumberRequired\")\n )\n : yup.mixed().nullable(),\n });\n","import { useState } from \"react\";\n\nimport { findBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\n\nimport {\n useCreateTelnyxSmsConfiguration,\n useFetchTelnyxPhoneNumbers,\n useFetchTelnyxSmsConfiguration,\n} from \"hooks/reactQuery/useTelnyxApi\";\n\nimport { buildPhoneNumberOptions } from \"../utils\";\n\nconst useTelnyxForm = ({ integrable, onConnect }) => {\n const [phoneNumbers, setPhoneNumbers] = useState([]);\n\n const { data: configuration, isLoading } = useFetchTelnyxSmsConfiguration({\n integrable,\n });\n\n const {\n mutate: fetchTelnyxPhoneNumbers,\n isPending: isFetchPhoneNumbersLoading,\n } = useFetchTelnyxPhoneNumbers();\n\n const {\n mutate: createTelnyxSmsConfiguration,\n isPending: isCreateSmsConfigurationLoading,\n } = useCreateTelnyxSmsConfiguration({ integrable });\n\n const handleSubmit = values => {\n if (isEmpty(phoneNumbers)) {\n const params = {\n apiKey: values.apiKey,\n messagingProfileId: values.messagingProfileId,\n };\n\n fetchTelnyxPhoneNumbers(params, {\n onSuccess: ({ phoneNumbers }) => setPhoneNumbers(phoneNumbers),\n });\n\n return;\n }\n\n const payload = {\n apiKey: values.apiKey,\n messagingProfileId: values.messagingProfileId,\n phoneNumberId: values.phoneNumber.value,\n };\n\n createTelnyxSmsConfiguration(payload, { onSuccess: onConnect });\n };\n\n const isSubmitting =\n isFetchPhoneNumbersLoading || isCreateSmsConfigurationLoading;\n\n const phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);\n\n const initialValues = {\n apiKey: configuration?.apiKey || \"\",\n messagingProfileId: configuration?.messagingProfileId || \"\",\n phoneNumber:\n findBy({ label: configuration?.phoneNumber }, phoneNumberOptions) || null,\n };\n\n return {\n initialValues,\n phoneNumberOptions,\n isSubmitting,\n isLoading,\n handleSubmit,\n };\n};\n\nexport default useTelnyxForm;\n","import { useRef } from \"react\";\n\nimport { isNotEmpty, noop } from \"neetocist\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport { ActionBlock, Form, Input, Select } from \"neetoui/formik\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useTelnyxForm from \"./hooks/useTelnyxForm\";\nimport { buildTelnyxConfigurationValidationSchema } from \"./utils\";\n\nconst Telnyx = ({ integrable = null, onClose = noop, onConnect = noop }) => {\n const formRef = useRef(null);\n\n const { t } = useTranslation();\n\n const {\n initialValues,\n handleSubmit,\n phoneNumberOptions,\n isSubmitting,\n isLoading,\n } = useTelnyxForm({ integrable, onConnect });\n\n const isPhoneNumberRequired = isNotEmpty(phoneNumberOptions);\n\n const submitButtonLabel = isNotEmpty(phoneNumberOptions)\n ? t(\"neetoIntegrations.common.saveChanges\")\n : t(\"neetoIntegrations.common.verify\");\n\n if (isLoading) return <PageLoader />;\n\n return (\n <Form\n className=\"w-full\"\n formikProps={{\n enableReinitialize: true,\n initialValues,\n validationSchema: buildTelnyxConfigurationValidationSchema(\n isPhoneNumberRequired\n ),\n innerRef: formRef,\n onSubmit: handleSubmit,\n }}\n >\n {({ dirty }) => (\n <CardLayout\n actionBlock={\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{ onClick: onClose }}\n submitButtonProps={{\n label: submitButtonLabel,\n // The button is disabled if phoneNumberOptions is empty and there is no apiKey in initialValues while the form is not dirty.\n // If phoneNumberOptions is not empty, the button is disabled when the form is unchanged.\n disabled: isEmpty(phoneNumberOptions)\n ? !initialValues.apiKey && !dirty\n : !dirty,\n }}\n />\n }\n >\n <div className=\"space-y-4\">\n <Input label={t(\"neetoIntegrations.telnyx.apiKey\")} name=\"apiKey\" />\n <Input\n label={t(\"neetoIntegrations.telnyx.messagingProfileId\")}\n name=\"messagingProfileId\"\n />\n {isNotEmpty(phoneNumberOptions) && (\n <Select\n label={t(\"neetoIntegrations.telnyx.phoneNumber\")}\n name=\"phoneNumber\"\n options={phoneNumberOptions}\n />\n )}\n </div>\n </CardLayout>\n )}\n </Form>\n );\n};\n\nexport default Telnyx;\n"],"names":["fetchTelnyxSmsConfiguration","integrable","axios","get","TELNYX_SMS_CONFIGURATION_URL","params","fetchTelnyxPhoneNumbers","_ref","apiKey","messagingProfileId","TELNYX_PHONE_NUMBERS_URL","telnyx","createTelnyxSmsConfiguration","payload","post","telnyxApi","useFetchTelnyxSmsConfiguration","useQuery","queryKey","QUERY_KEYS","TELNYX_SMS_CONFIGURATION","integrableType","integrableId","queryFn","select","prop","useFetchTelnyxPhoneNumbers","useMutation","mutationFn","useCreateTelnyxSmsConfiguration","_ref2","useMutationWithInvalidation","keysToInvalidate","buildPhoneNumberOptions","phoneNumbers","map","id","phoneNumber","value","label","buildTelnyxConfigurationValidationSchema","isPhoneNumberRequired","yup","object","shape","string","required","t","nullable","mixed","useTelnyxForm","onConnect","_useState","useState","_useState2","_slicedToArray","setPhoneNumbers","_useFetchTelnyxSmsCon","configuration","data","isLoading","_useFetchTelnyxPhoneN","mutate","isFetchPhoneNumbersLoading","isPending","_useCreateTelnyxSmsCo","isCreateSmsConfigurationLoading","handleSubmit","values","isEmpty","onSuccess","phoneNumberId","isSubmitting","phoneNumberOptions","initialValues","findBy","Telnyx","_ref$integrable","_ref$onClose","onClose","noop","_ref$onConnect","formRef","useRef","_useTranslation","useTranslation","_useTelnyxForm","isNotEmpty","submitButtonLabel","_jsx","PageLoader","Form","className","formikProps","enableReinitialize","validationSchema","innerRef","onSubmit","children","dirty","CardLayout","actionBlock","ActionBlock","cancelButtonProps","onClick","submitButtonProps","disabled","_jsxs","Input","name","Select","options"],"mappings":"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"}
1
+ {"version":3,"file":"Telnyx.js","sources":["../../app/javascript/src/apis/telnyx.js","../../app/javascript/src/hooks/reactQuery/useTelnyxApi.js","../../app/javascript/src/components/Integrations/Telnyx/utils.js","../../app/javascript/src/components/Integrations/Telnyx/hooks/useTelnyxForm.js","../../app/javascript/src/components/Integrations/Telnyx/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport {\n TELNYX_PHONE_NUMBERS_URL,\n TELNYX_SMS_CONFIGURATION_URL,\n} from \"src/constants/urls\";\n\nconst fetchTelnyxSmsConfiguration = integrable =>\n axios.get(TELNYX_SMS_CONFIGURATION_URL, { params: integrable });\n\nconst fetchTelnyxPhoneNumbers = ({ apiKey, messagingProfileId }) =>\n axios.get(TELNYX_PHONE_NUMBERS_URL, {\n params: { telnyx: { apiKey, messagingProfileId } },\n });\n\nconst createTelnyxSmsConfiguration = payload =>\n axios.post(TELNYX_SMS_CONFIGURATION_URL, { telnyx: payload });\n\nconst telnyxApi = {\n fetchTelnyxPhoneNumbers,\n fetchTelnyxSmsConfiguration,\n createTelnyxSmsConfiguration,\n};\n\nexport default telnyxApi;\n","import { useQuery, useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport telnyxApi from \"apis/telnyx\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchTelnyxSmsConfiguration = ({ integrable }) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.TELNYX_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n queryFn: () => telnyxApi.fetchTelnyxSmsConfiguration(integrable),\n select: prop(\"smsConfiguration\"),\n });\n\nconst useFetchTelnyxPhoneNumbers = () =>\n useMutation({ mutationFn: telnyxApi.fetchTelnyxPhoneNumbers });\n\nconst useCreateTelnyxSmsConfiguration = ({ integrable }) =>\n useMutationWithInvalidation(telnyxApi.createTelnyxSmsConfiguration, {\n keysToInvalidate: [\n [\n QUERY_KEYS.TELNYX_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n ],\n });\n\nexport {\n useFetchTelnyxPhoneNumbers,\n useFetchTelnyxSmsConfiguration,\n useCreateTelnyxSmsConfiguration,\n};\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const buildPhoneNumberOptions = phoneNumbers =>\n phoneNumbers\n ? phoneNumbers.map(({ id, phoneNumber }) => ({\n value: id,\n label: phoneNumber,\n }))\n : [];\n\nexport const buildTelnyxConfigurationValidationSchema = isPhoneNumberRequired =>\n yup.object().shape({\n apiKey: yup\n .string()\n .required(t(\"neetoIntegrations.telnyx.validations.apiKeyRequired\")),\n messagingProfileId: yup\n .string()\n .required(\n t(\"neetoIntegrations.telnyx.validations.messagingProfileIdRequired\")\n ),\n phoneNumber: isPhoneNumberRequired\n ? yup\n .object()\n .shape({ label: yup.string(), value: yup.string() })\n .nullable()\n .required(\n t(\"neetoIntegrations.telnyx.validations.phoneNumberRequired\")\n )\n : yup.mixed().nullable(),\n });\n","import { useState } from \"react\";\n\nimport { findBy } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\n\nimport {\n useCreateTelnyxSmsConfiguration,\n useFetchTelnyxPhoneNumbers,\n useFetchTelnyxSmsConfiguration,\n} from \"hooks/reactQuery/useTelnyxApi\";\n\nimport { buildPhoneNumberOptions } from \"../utils\";\n\nconst useTelnyxForm = ({ integrable, onConnect }) => {\n const [phoneNumbers, setPhoneNumbers] = useState([]);\n\n const { data: configuration, isLoading } = useFetchTelnyxSmsConfiguration({\n integrable,\n });\n\n const {\n mutate: fetchTelnyxPhoneNumbers,\n isPending: isFetchPhoneNumbersLoading,\n } = useFetchTelnyxPhoneNumbers();\n\n const {\n mutate: createTelnyxSmsConfiguration,\n isPending: isCreateSmsConfigurationLoading,\n } = useCreateTelnyxSmsConfiguration({ integrable });\n\n const handleSubmit = values => {\n if (isEmpty(phoneNumbers)) {\n const params = {\n apiKey: values.apiKey,\n messagingProfileId: values.messagingProfileId,\n };\n\n fetchTelnyxPhoneNumbers(params, {\n onSuccess: ({ phoneNumbers }) => setPhoneNumbers(phoneNumbers),\n });\n\n return;\n }\n\n const payload = {\n apiKey: values.apiKey,\n messagingProfileId: values.messagingProfileId,\n phoneNumberId: values.phoneNumber.value,\n };\n\n createTelnyxSmsConfiguration(payload, { onSuccess: onConnect });\n };\n\n const isSubmitting =\n isFetchPhoneNumbersLoading || isCreateSmsConfigurationLoading;\n\n const phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);\n\n const initialValues = {\n apiKey: configuration?.apiKey || \"\",\n messagingProfileId: configuration?.messagingProfileId || \"\",\n phoneNumber:\n findBy({ label: configuration?.phoneNumber }, phoneNumberOptions) || null,\n };\n\n return {\n initialValues,\n phoneNumberOptions,\n isSubmitting,\n isLoading,\n handleSubmit,\n };\n};\n\nexport default useTelnyxForm;\n","import { useRef } from \"react\";\n\nimport { isNotEmpty, noop } from \"neetocist\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport { ActionBlock, Form, Input, Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useTelnyxForm from \"./hooks/useTelnyxForm\";\nimport { buildTelnyxConfigurationValidationSchema } from \"./utils\";\n\nconst Telnyx = ({ integrable = null, onClose = noop, onConnect = noop }) => {\n const formRef = useRef(null);\n\n const { t } = useTranslation();\n\n const {\n initialValues,\n handleSubmit,\n phoneNumberOptions,\n isSubmitting,\n isLoading,\n } = useTelnyxForm({ integrable, onConnect });\n\n const hasPhoneNumbers = isNotEmpty(phoneNumberOptions);\n\n const submitButtonLabel = hasPhoneNumbers\n ? t(\"neetoIntegrations.common.saveChanges\")\n : t(\"neetoIntegrations.common.verify\");\n\n if (isLoading) return <PageLoader />;\n\n return (\n <Form\n className=\"w-full\"\n formikProps={{\n enableReinitialize: true,\n initialValues,\n validationSchema:\n buildTelnyxConfigurationValidationSchema(hasPhoneNumbers),\n innerRef: formRef,\n onSubmit: handleSubmit,\n }}\n >\n {({ dirty }) => (\n <CardLayout\n actionBlock={\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{ onClick: onClose }}\n submitButtonProps={{\n label: submitButtonLabel,\n // The button is disabled if phoneNumberOptions is empty and there is no apiKey in initialValues while the form is not dirty.\n // If phoneNumberOptions is not empty, the button is disabled when the form is unchanged.\n disabled: !hasPhoneNumbers\n ? !initialValues.apiKey && !dirty\n : !dirty,\n }}\n />\n }\n >\n <div className=\"space-y-4\">\n <Input\n disabled={hasPhoneNumbers}\n label={t(\"neetoIntegrations.telnyx.apiKey\")}\n name=\"apiKey\"\n />\n <Input\n disabled={hasPhoneNumbers}\n label={t(\"neetoIntegrations.telnyx.messagingProfileId\")}\n name=\"messagingProfileId\"\n />\n {hasPhoneNumbers && (\n <Select\n label={t(\"neetoIntegrations.telnyx.phoneNumber\")}\n name=\"phoneNumber\"\n options={phoneNumberOptions}\n />\n )}\n </div>\n </CardLayout>\n )}\n </Form>\n );\n};\n\nexport default Telnyx;\n"],"names":["fetchTelnyxSmsConfiguration","integrable","axios","get","TELNYX_SMS_CONFIGURATION_URL","params","fetchTelnyxPhoneNumbers","_ref","apiKey","messagingProfileId","TELNYX_PHONE_NUMBERS_URL","telnyx","createTelnyxSmsConfiguration","payload","post","telnyxApi","useFetchTelnyxSmsConfiguration","useQuery","queryKey","QUERY_KEYS","TELNYX_SMS_CONFIGURATION","integrableType","integrableId","queryFn","select","prop","useFetchTelnyxPhoneNumbers","useMutation","mutationFn","useCreateTelnyxSmsConfiguration","_ref2","useMutationWithInvalidation","keysToInvalidate","buildPhoneNumberOptions","phoneNumbers","map","id","phoneNumber","value","label","buildTelnyxConfigurationValidationSchema","isPhoneNumberRequired","yup","object","shape","string","required","t","nullable","mixed","useTelnyxForm","onConnect","_useState","useState","_useState2","_slicedToArray","setPhoneNumbers","_useFetchTelnyxSmsCon","configuration","data","isLoading","_useFetchTelnyxPhoneN","mutate","isFetchPhoneNumbersLoading","isPending","_useCreateTelnyxSmsCo","isCreateSmsConfigurationLoading","handleSubmit","values","isEmpty","onSuccess","phoneNumberId","isSubmitting","phoneNumberOptions","initialValues","findBy","Telnyx","_ref$integrable","_ref$onClose","onClose","noop","_ref$onConnect","formRef","useRef","_useTranslation","useTranslation","_useTelnyxForm","hasPhoneNumbers","isNotEmpty","submitButtonLabel","_jsx","PageLoader","Form","className","formikProps","enableReinitialize","validationSchema","innerRef","onSubmit","children","dirty","CardLayout","actionBlock","ActionBlock","cancelButtonProps","onClick","submitButtonProps","disabled","_jsxs","Input","name","Select","options"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAGC,UAAU,EAAA;AAAA,EAAA,OAC5CC,KAAK,CAACC,GAAG,CAACC,kCAA4B,EAAE;AAAEC,IAAAA,MAAM,EAAEJ;AAAW,GAAC,CAAC;AAAA,CAAA;AAEjE,IAAMK,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,kBAAkB,GAAAF,IAAA,CAAlBE,kBAAkB;AAAA,EAAA,OAC3DP,KAAK,CAACC,GAAG,CAACO,8BAAwB,EAAE;AAClCL,IAAAA,MAAM,EAAE;AAAEM,MAAAA,MAAM,EAAE;AAAEH,QAAAA,MAAM,EAANA,MAAM;AAAEC,QAAAA,kBAAkB,EAAlBA;AAAmB;AAAE;AACnD,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAMG,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAGC,OAAO,EAAA;AAAA,EAAA,OAC1CX,KAAK,CAACY,IAAI,CAACV,kCAA4B,EAAE;AAAEO,IAAAA,MAAM,EAAEE;AAAQ,GAAC,CAAC;AAAA,CAAA;AAE/D,IAAME,SAAS,GAAG;AAChBT,EAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBN,EAAAA,2BAA2B,EAA3BA,2BAA2B;AAC3BY,EAAAA,4BAA4B,EAA5BA;AACF,CAAC;;ACfD,IAAMI,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAAT,IAAA,EAAA;AAAA,EAAA,IAAMN,UAAU,GAAAM,IAAA,CAAVN,UAAU;AAAA,EAAA,OAClDgB,mBAAQ,CAAC;IACPC,QAAQ,EAAE,CACRC,gBAAU,CAACC,wBAAwB,EACnCnB,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEoB,cAAc,EAC1BpB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEqB,YAAY,CACzB;IACDC,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQR,SAAS,CAACf,2BAA2B,CAACC,UAAU,CAAC;AAAA,KAAA;IAChEuB,MAAM,EAAEC,UAAI,CAAC,kBAAkB;AACjC,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA0BA,GAAA;AAAA,EAAA,OAC9BC,sBAAW,CAAC;IAAEC,UAAU,EAAEb,SAAS,CAACT;AAAwB,GAAC,CAAC;AAAA,CAAA;AAEhE,IAAMuB,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAM7B,UAAU,GAAA6B,KAAA,CAAV7B,UAAU;AAAA,EAAA,OACnD8B,sCAA2B,CAAChB,SAAS,CAACH,4BAA4B,EAAE;IAClEoB,gBAAgB,EAAE,CAChB,CACEb,gBAAU,CAACC,wBAAwB,EACnCnB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEoB,cAAc,EAC1BpB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEqB,YAAY,CACzB;AAEL,GAAC,CAAC;AAAA,CAAA;;AC3BG,IAAMW,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGC,YAAY,EAAA;AAAA,EAAA,OACjDA,YAAY,GACRA,YAAY,CAACC,GAAG,CAAC,UAAA5B,IAAA,EAAA;AAAA,IAAA,IAAG6B,EAAE,GAAA7B,IAAA,CAAF6B,EAAE;MAAEC,WAAW,GAAA9B,IAAA,CAAX8B,WAAW;IAAA,OAAQ;AACzCC,MAAAA,KAAK,EAAEF,EAAE;AACTG,MAAAA,KAAK,EAAEF;KACR;GAAC,CAAC,GACH,EAAE;AAAA,CAAA;AAED,IAAMG,wCAAwC,GAAG,SAA3CA,wCAAwCA,CAAGC,qBAAqB,EAAA;AAAA,EAAA,OAC3EC,cAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;AACjBpC,IAAAA,MAAM,EAAEkC,cAAG,CACRG,MAAM,EAAE,CACRC,QAAQ,CAACC,SAAC,CAAC,qDAAqD,CAAC,CAAC;AACrEtC,IAAAA,kBAAkB,EAAEiC,cAAG,CACpBG,MAAM,EAAE,CACRC,QAAQ,CACPC,SAAC,CAAC,iEAAiE,CACrE,CAAC;IACHV,WAAW,EAAEI,qBAAqB,GAC9BC,cAAG,CACAC,MAAM,EAAE,CACRC,KAAK,CAAC;AAAEL,MAAAA,KAAK,EAAEG,cAAG,CAACG,MAAM,EAAE;AAAEP,MAAAA,KAAK,EAAEI,cAAG,CAACG,MAAM;KAAI,CAAC,CACnDG,QAAQ,EAAE,CACVF,QAAQ,CACPC,SAAC,CAAC,0DAA0D,CAC9D,CAAC,GACHL,cAAG,CAACO,KAAK,EAAE,CAACD,QAAQ;AAC1B,GAAC,CAAC;AAAA,CAAA;;ACjBJ,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAA3C,IAAA,EAAkC;AAAA,EAAA,IAA5BN,UAAU,GAAAM,IAAA,CAAVN,UAAU;IAAEkD,SAAS,GAAA5C,IAAA,CAAT4C,SAAS;AAC5C,EAAA,IAAAC,SAAA,GAAwCC,cAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA7ClB,IAAAA,YAAY,GAAAoB,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,eAAe,GAAAF,UAAA,CAAA,CAAA,CAAA;EAEpC,IAAAG,qBAAA,GAA2CzC,8BAA8B,CAAC;AACxEf,MAAAA,UAAU,EAAVA;AACF,KAAC,CAAC;IAFYyD,aAAa,GAAAD,qBAAA,CAAnBE,IAAI;IAAiBC,SAAS,GAAAH,qBAAA,CAATG,SAAS;AAItC,EAAA,IAAAC,qBAAA,GAGInC,0BAA0B,EAAE;IAFtBpB,uBAAuB,GAAAuD,qBAAA,CAA/BC,MAAM;IACKC,0BAA0B,GAAAF,qBAAA,CAArCG,SAAS;EAGX,IAAAC,qBAAA,GAGIpC,+BAA+B,CAAC;AAAE5B,MAAAA,UAAU,EAAVA;AAAW,KAAC,CAAC;IAFzCW,4BAA4B,GAAAqD,qBAAA,CAApCH,MAAM;IACKI,+BAA+B,GAAAD,qBAAA,CAA1CD,SAAS;AAGX,EAAA,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAGC,MAAM,EAAI;AAC7B,IAAA,IAAIC,aAAO,CAACnC,YAAY,CAAC,EAAE;AACzB,MAAA,IAAM7B,MAAM,GAAG;QACbG,MAAM,EAAE4D,MAAM,CAAC5D,MAAM;QACrBC,kBAAkB,EAAE2D,MAAM,CAAC3D;OAC5B;MAEDH,uBAAuB,CAACD,MAAM,EAAE;AAC9BiE,QAAAA,SAAS,EAAE,SAAXA,SAASA,CAAAxC,KAAA,EAAA;AAAA,UAAA,IAAKI,YAAY,GAAAJ,KAAA,CAAZI,YAAY;UAAA,OAAOsB,eAAe,CAACtB,YAAY,CAAC;AAAA;AAChE,OAAC,CAAC;AAEF,MAAA;AACF;AAEA,IAAA,IAAMrB,OAAO,GAAG;MACdL,MAAM,EAAE4D,MAAM,CAAC5D,MAAM;MACrBC,kBAAkB,EAAE2D,MAAM,CAAC3D,kBAAkB;AAC7C8D,MAAAA,aAAa,EAAEH,MAAM,CAAC/B,WAAW,CAACC;KACnC;IAED1B,4BAA4B,CAACC,OAAO,EAAE;AAAEyD,MAAAA,SAAS,EAAEnB;AAAU,KAAC,CAAC;GAChE;AAED,EAAA,IAAMqB,YAAY,GAChBT,0BAA0B,IAAIG,+BAA+B;AAE/D,EAAA,IAAMO,kBAAkB,GAAGxC,uBAAuB,CAACC,YAAY,CAAC;AAEhE,EAAA,IAAMwC,aAAa,GAAG;IACpBlE,MAAM,EAAE,CAAAkD,aAAa,KAAbA,IAAAA,IAAAA,aAAa,uBAAbA,aAAa,CAAElD,MAAM,KAAI,EAAE;IACnCC,kBAAkB,EAAE,CAAAiD,aAAa,KAAbA,IAAAA,IAAAA,aAAa,uBAAbA,aAAa,CAAEjD,kBAAkB,KAAI,EAAE;IAC3D4B,WAAW,EACTsC,gBAAM,CAAC;AAAEpC,MAAAA,KAAK,EAAEmB,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAErB;KAAa,EAAEoC,kBAAkB,CAAC,IAAI;GACxE;EAED,OAAO;AACLC,IAAAA,aAAa,EAAbA,aAAa;AACbD,IAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBD,IAAAA,YAAY,EAAZA,YAAY;AACZZ,IAAAA,SAAS,EAATA,SAAS;AACTO,IAAAA,YAAY,EAAZA;GACD;AACH,CAAC;;AC7DD,IAAMS,MAAM,GAAG,SAATA,MAAMA,CAAArE,IAAA,EAAgE;AAAA,EAAA,IAAAsE,eAAA,GAAAtE,IAAA,CAA1DN,UAAU;AAAVA,IAAAA,UAAU,GAAA4E,eAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,eAAA;IAAAC,YAAA,GAAAvE,IAAA,CAAEwE,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAGE,KAAAA,CAAAA,GAAAA,cAAI,GAAAF,YAAA;IAAAG,cAAA,GAAA1E,IAAA,CAAE4C,SAAS;AAATA,IAAAA,SAAS,GAAA8B,cAAA,KAAGD,KAAAA,CAAAA,GAAAA,cAAI,GAAAC,cAAA;AACnE,EAAA,IAAMC,OAAO,GAAGC,YAAM,CAAC,IAAI,CAAC;AAE5B,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBtC,CAAC,GAAAqC,eAAA,CAADrC,CAAC;EAET,IAAAuC,cAAA,GAMIpC,aAAa,CAAC;AAAEjD,MAAAA,UAAU,EAAVA,UAAU;AAAEkD,MAAAA,SAAS,EAATA;AAAU,KAAC,CAAC;IAL1CuB,aAAa,GAAAY,cAAA,CAAbZ,aAAa;IACbP,YAAY,GAAAmB,cAAA,CAAZnB,YAAY;IACZM,kBAAkB,GAAAa,cAAA,CAAlBb,kBAAkB;IAClBD,YAAY,GAAAc,cAAA,CAAZd,YAAY;IACZZ,SAAS,GAAA0B,cAAA,CAAT1B,SAAS;AAGX,EAAA,IAAM2B,eAAe,GAAGC,oBAAU,CAACf,kBAAkB,CAAC;AAEtD,EAAA,IAAMgB,iBAAiB,GAAGF,eAAe,GACrCxC,CAAC,CAAC,sCAAsC,CAAC,GACzCA,CAAC,CAAC,iCAAiC,CAAC;AAExC,EAAA,IAAIa,SAAS,EAAE,oBAAO8B,cAAA,CAACC,UAAU,IAAE,CAAC;EAEpC,oBACED,cAAA,CAACE,IAAI,EAAA;AACHC,IAAAA,SAAS,EAAC,QAAQ;AAClBC,IAAAA,WAAW,EAAE;AACXC,MAAAA,kBAAkB,EAAE,IAAI;AACxBrB,MAAAA,aAAa,EAAbA,aAAa;AACbsB,MAAAA,gBAAgB,EACdxD,wCAAwC,CAAC+C,eAAe,CAAC;AAC3DU,MAAAA,QAAQ,EAAEf,OAAO;AACjBgB,MAAAA,QAAQ,EAAE/B;KACV;IAAAgC,QAAA,EAED,SAAAA,QAAAA,CAAArE,KAAA,EAAA;AAAA,MAAA,IAAGsE,KAAK,GAAAtE,KAAA,CAALsE,KAAK;MAAA,oBACPV,cAAA,CAACW,UAAU,EAAA;QACTC,WAAW,eACTZ,cAAA,CAACa,WAAW,EAAA;AACJ/B,UAAAA,YAAY,EAAZA,YAAY;AAClBgC,UAAAA,iBAAiB,EAAE;AAAEC,YAAAA,OAAO,EAAE1B;WAAU;AACxC2B,UAAAA,iBAAiB,EAAE;AACjBnE,YAAAA,KAAK,EAAEkD,iBAAiB;AACxB;AACA;AACAkB,YAAAA,QAAQ,EAAE,CAACpB,eAAe,GACtB,CAACb,aAAa,CAAClE,MAAM,IAAI,CAAC4F,KAAK,GAC/B,CAACA;AACP;AAAE,SACH,CACF;AAAAD,QAAAA,QAAA,eAEDS,eAAA,CAAA,KAAA,EAAA;AAAKf,UAAAA,SAAS,EAAC,WAAW;UAAAM,QAAA,EAAA,cACxBT,cAAA,CAACmB,KAAK,EAAA;AACJF,YAAAA,QAAQ,EAAEpB,eAAgB;AAC1BhD,YAAAA,KAAK,EAAEQ,CAAC,CAAC,iCAAiC,CAAE;AAC5C+D,YAAAA,IAAI,EAAC;AAAQ,WACd,CAAC,eACFpB,cAAA,CAACmB,KAAK,EAAA;AACJF,YAAAA,QAAQ,EAAEpB,eAAgB;AAC1BhD,YAAAA,KAAK,EAAEQ,CAAC,CAAC,6CAA6C,CAAE;AACxD+D,YAAAA,IAAI,EAAC;AAAoB,WAC1B,CAAC,EACDvB,eAAe,iBACdG,cAAA,CAACqB,MAAM,EAAA;AACLxE,YAAAA,KAAK,EAAEQ,CAAC,CAAC,sCAAsC,CAAE;AACjD+D,YAAAA,IAAI,EAAC,aAAa;AAClBE,YAAAA,OAAO,EAAEvC;AAAmB,WAC7B,CACF;SACE;AAAC,OACI,CAAC;AAAA;AACd,GACG,CAAC;AAEX;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-integrations-frontend",
3
- "version": "4.0.17",
3
+ "version": "4.0.19",
4
4
  "description": "UI for integrations in neeto products",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://github.com/bigbinary/neeto-integrations-nano",
@@ -61,13 +61,13 @@
61
61
  "@babel/preset-typescript": "7.26.0",
62
62
  "@babel/runtime": "7.26.10",
63
63
  "@bigbinary/babel-preset-neeto": "^1.0.3",
64
- "@bigbinary/eslint-plugin-neeto": "1.8.0",
64
+ "@bigbinary/eslint-plugin-neeto": "1.8.1",
65
65
  "@bigbinary/neeto-cist": "1.0.17",
66
- "@bigbinary/neeto-commons-frontend": "4.13.91",
67
- "@bigbinary/neeto-filters-frontend": "4.3.28",
68
- "@bigbinary/neeto-icons": "1.20.71",
69
- "@bigbinary/neeto-molecules": "4.0.127",
70
- "@bigbinary/neetoui": "8.3.53",
66
+ "@bigbinary/neeto-commons-frontend": "4.13.103",
67
+ "@bigbinary/neeto-filters-frontend": "4.3.31",
68
+ "@bigbinary/neeto-icons": "1.20.80",
69
+ "@bigbinary/neeto-molecules": "4.1.10",
70
+ "@bigbinary/neetoui": "8.3.75",
71
71
  "@emotion/is-prop-valid": "1.2.0",
72
72
  "@faker-js/faker": "8.2.0",
73
73
  "@honeybadger-io/js": "6.10.1",
@@ -83,9 +83,9 @@
83
83
  "@tailwindcss/postcss": "^4.1.17",
84
84
  "@tanstack/react-query": "5.59.20",
85
85
  "@tanstack/react-query-devtools": "5.59.20",
86
- "antd": "5.22.0",
86
+ "antd": "5.22.1",
87
87
  "autoprefixer": "^10.4.5",
88
- "axios": "1.12.0",
88
+ "axios": "1.13.5",
89
89
  "babel-loader": "^8.2.5",
90
90
  "babel-plugin-istanbul": "^6.1.1",
91
91
  "babel-plugin-js-logger": "1.0.17",
@@ -137,7 +137,7 @@
137
137
  "prettier": "3",
138
138
  "prettier-plugin-tailwindcss": "^0.7.1",
139
139
  "process": "0.11.10",
140
- "qs": "^6.11.2",
140
+ "qs": "6.14.2",
141
141
  "ramda": "0.29.0",
142
142
  "react": "18.3.1",
143
143
  "react-dom": "18.3.1",
@@ -176,18 +176,18 @@
176
176
  "peerDependencies": {
177
177
  "@babel/runtime": "7.26.10",
178
178
  "@bigbinary/neeto-cist": "1.0.17",
179
- "@bigbinary/neeto-commons-frontend": "4.13.91",
180
- "@bigbinary/neeto-filters-frontend": "4.3.28",
181
- "@bigbinary/neeto-icons": "1.20.71",
182
- "@bigbinary/neeto-molecules": "4.0.127",
183
- "@bigbinary/neetoui": "8.3.53",
179
+ "@bigbinary/neeto-commons-frontend": "4.13.103",
180
+ "@bigbinary/neeto-filters-frontend": "4.3.31",
181
+ "@bigbinary/neeto-icons": "1.20.80",
182
+ "@bigbinary/neeto-molecules": "4.1.10",
183
+ "@bigbinary/neetoui": "8.3.75",
184
184
  "@honeybadger-io/js": "6.10.1",
185
185
  "@honeybadger-io/react": "6.1.25",
186
186
  "@tailwindcss/container-queries": "^0.1.1",
187
187
  "@tanstack/react-query": "5.59.20",
188
188
  "@tanstack/react-query-devtools": "5.59.20",
189
- "antd": "5.22.0",
190
- "axios": "1.12.0",
189
+ "antd": "5.22.1",
190
+ "axios": "1.13.5",
191
191
  "buffer": "^6.0.3",
192
192
  "classnames": "2.5.1",
193
193
  "crypto-browserify": "3.12.1",
@@ -199,7 +199,7 @@
199
199
  "mixpanel-browser": "^2.45.0",
200
200
  "os-browserify": "0.3.0",
201
201
  "path-browserify": "^1.0.1",
202
- "qs": "^6.11.2",
202
+ "qs": "6.14.2",
203
203
  "ramda": "0.29.0",
204
204
  "react": "18.3.1",
205
205
  "react-dom": "18.3.1",