@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 +2 -0
- package/dist/Telnyx.js +8 -6
- package/dist/Telnyx.js.map +1 -1
- package/dist/cjs/Telnyx.js +8 -6
- package/dist/cjs/Telnyx.js.map +1 -1
- package/package.json +18 -18
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
|
|
172
|
-
var submitButtonLabel =
|
|
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(
|
|
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:
|
|
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
|
-
}),
|
|
208
|
+
}), hasPhoneNumbers && /*#__PURE__*/jsx(Select, {
|
|
207
209
|
label: t("neetoIntegrations.telnyx.phoneNumber"),
|
|
208
210
|
name: "phoneNumber",
|
|
209
211
|
options: phoneNumberOptions
|
package/dist/Telnyx.js.map
CHANGED
|
@@ -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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"}
|
package/dist/cjs/Telnyx.js
CHANGED
|
@@ -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
|
|
193
|
-
var submitButtonLabel =
|
|
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(
|
|
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:
|
|
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
|
-
}),
|
|
229
|
+
}), hasPhoneNumbers && /*#__PURE__*/jsxRuntime.jsx(Select, {
|
|
228
230
|
label: t("neetoIntegrations.telnyx.phoneNumber"),
|
|
229
231
|
name: "phoneNumber",
|
|
230
232
|
options: phoneNumberOptions
|
package/dist/cjs/Telnyx.js.map
CHANGED
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-integrations-frontend",
|
|
3
|
-
"version": "4.0.
|
|
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.
|
|
64
|
+
"@bigbinary/eslint-plugin-neeto": "1.8.1",
|
|
65
65
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
66
|
-
"@bigbinary/neeto-commons-frontend": "4.13.
|
|
67
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
68
|
-
"@bigbinary/neeto-icons": "1.20.
|
|
69
|
-
"@bigbinary/neeto-molecules": "4.
|
|
70
|
-
"@bigbinary/neetoui": "8.3.
|
|
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.
|
|
86
|
+
"antd": "5.22.1",
|
|
87
87
|
"autoprefixer": "^10.4.5",
|
|
88
|
-
"axios": "1.
|
|
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": "
|
|
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.
|
|
180
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
181
|
-
"@bigbinary/neeto-icons": "1.20.
|
|
182
|
-
"@bigbinary/neeto-molecules": "4.
|
|
183
|
-
"@bigbinary/neetoui": "8.3.
|
|
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.
|
|
190
|
-
"axios": "1.
|
|
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": "
|
|
202
|
+
"qs": "6.14.2",
|
|
203
203
|
"ramda": "0.29.0",
|
|
204
204
|
"react": "18.3.1",
|
|
205
205
|
"react-dom": "18.3.1",
|