@bigbinary/neeto-integrations-frontend 4.0.31 → 4.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/app/javascript/src/translations/en.json +23 -2
  2. package/dist/.ready +1 -1
  3. package/dist/Daily.js +2 -2
  4. package/dist/DailyForm.js +2 -2
  5. package/dist/Manage.js +4 -1
  6. package/dist/Manage.js.map +1 -1
  7. package/dist/Telnyx.js +2 -2
  8. package/dist/Twilio.js +200 -68
  9. package/dist/Twilio.js.map +1 -1
  10. package/dist/Zoom.js +2 -2
  11. package/dist/cjs/Daily.js +2 -2
  12. package/dist/cjs/DailyForm.js +2 -2
  13. package/dist/cjs/Manage.js +4 -1
  14. package/dist/cjs/Manage.js.map +1 -1
  15. package/dist/cjs/Telnyx.js +2 -2
  16. package/dist/cjs/Twilio.js +199 -67
  17. package/dist/cjs/Twilio.js.map +1 -1
  18. package/dist/cjs/Zoom.js +2 -2
  19. package/dist/cjs/index.js +15 -15
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/v2/Daily.js +2 -2
  22. package/dist/cjs/v2/DailyForm.js +2 -2
  23. package/dist/cjs/v2/DisconnectedIntegrationsRibbon.js +2 -2
  24. package/dist/cjs/v2/Telnyx.js +2 -2
  25. package/dist/cjs/v2/Twilio.js +199 -67
  26. package/dist/cjs/v2/Twilio.js.map +1 -1
  27. package/dist/cjs/v2/Zoom.js +2 -2
  28. package/dist/cjs/v2/index.js +6 -6
  29. package/dist/index.js +14 -14
  30. package/dist/index.js.map +1 -1
  31. package/dist/{query-CySi2Ki7.js → query-BF3HFRA7.js} +2 -2
  32. package/dist/query-BF3HFRA7.js.map +1 -0
  33. package/dist/{query-B3RhGrNb.js → query-gurbhBqu.js} +2 -2
  34. package/dist/query-gurbhBqu.js.map +1 -0
  35. package/dist/{useDailiesApi-BjcmweuZ.js → useDailiesApi-CEJPknLb.js} +2 -2
  36. package/dist/{useDailiesApi-BjcmweuZ.js.map → useDailiesApi-CEJPknLb.js.map} +1 -1
  37. package/dist/{useDailiesApi-C78LSYFo.js → useDailiesApi-aQmuxf-5.js} +2 -2
  38. package/dist/{useDailiesApi-C78LSYFo.js.map → useDailiesApi-aQmuxf-5.js.map} +1 -1
  39. package/dist/{useDisconnectionAlertsApi-BnfMKA7s.js → useDisconnectionAlertsApi-BOc2pEP_.js} +2 -2
  40. package/dist/{useDisconnectionAlertsApi-BnfMKA7s.js.map → useDisconnectionAlertsApi-BOc2pEP_.js.map} +1 -1
  41. package/dist/{useDisconnectionAlertsApi-C8Q2wbVl.js → useDisconnectionAlertsApi-CWMlpOJD.js} +2 -2
  42. package/dist/{useDisconnectionAlertsApi-C8Q2wbVl.js.map → useDisconnectionAlertsApi-CWMlpOJD.js.map} +1 -1
  43. package/dist/{useTelnyxApi-DnNSPd-d.js → useTelnyxApi-Cv5cIiuo.js} +2 -2
  44. package/dist/{useTelnyxApi-DnNSPd-d.js.map → useTelnyxApi-Cv5cIiuo.js.map} +1 -1
  45. package/dist/{useTelnyxApi-DDTzGMgk.js → useTelnyxApi-DS3IVijP.js} +2 -2
  46. package/dist/{useTelnyxApi-DDTzGMgk.js.map → useTelnyxApi-DS3IVijP.js.map} +1 -1
  47. package/dist/{useTwilioApi-D5HpIaB2.js → useTwilioApi-C57UuOda.js} +20 -12
  48. package/dist/useTwilioApi-C57UuOda.js.map +1 -0
  49. package/dist/{useTwilioApi-DPyyUWOs.js → useTwilioApi-CUL0-Xgf.js} +20 -12
  50. package/dist/useTwilioApi-CUL0-Xgf.js.map +1 -0
  51. package/dist/{useZoomApi-B127NAGl.js → useZoomApi-C8AUYMlp.js} +2 -2
  52. package/dist/{useZoomApi-B127NAGl.js.map → useZoomApi-C8AUYMlp.js.map} +1 -1
  53. package/dist/{useZoomApi-CazQYmYH.js → useZoomApi-CkhVE1e8.js} +2 -2
  54. package/dist/{useZoomApi-CazQYmYH.js.map → useZoomApi-CkhVE1e8.js.map} +1 -1
  55. package/dist/v2/Daily.js +2 -2
  56. package/dist/v2/DailyForm.js +2 -2
  57. package/dist/v2/DisconnectedIntegrationsRibbon.js +2 -2
  58. package/dist/v2/Telnyx.js +2 -2
  59. package/dist/v2/Twilio.js +200 -68
  60. package/dist/v2/Twilio.js.map +1 -1
  61. package/dist/v2/Zoom.js +2 -2
  62. package/dist/v2/index.js +6 -6
  63. package/package.json +14 -14
  64. package/dist/query-B3RhGrNb.js.map +0 -1
  65. package/dist/query-CySi2Ki7.js.map +0 -1
  66. package/dist/useTwilioApi-D5HpIaB2.js.map +0 -1
  67. package/dist/useTwilioApi-DPyyUWOs.js.map +0 -1
package/dist/v2/Twilio.js CHANGED
@@ -1,28 +1,76 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import { useEffect, useRef } from 'react';
1
+ import { useRef } from 'react';
3
2
  import { Input, Select, Form, ActionBlock } from '@bigbinary/neeto-atoms/formik';
4
3
  import { noop, _findBy } from '@bigbinary/neeto-cist';
5
4
  import CardLayout from '@bigbinary/neeto-molecules/v2/CardLayout';
6
5
  import { equals } from 'ramda';
7
6
  import { useTranslation } from 'react-i18next';
7
+ import { Badge } from '@bigbinary/neeto-atoms';
8
8
  import { jsxs, jsx } from 'react/jsx-runtime';
9
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
9
10
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
11
  import { useStateWithDependency } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
11
- import { u as useFetchTwilioSmsConfiguration, a as useFetchTwilioPhoneNumbers, b as useCreateTwilioConfiguration } from '../useTwilioApi-D5HpIaB2.js';
12
+ import { u as useFetchTwilioSmsConfiguration, a as useFetchTwilioSenderOptions, b as useCreateTwilioConfiguration } from '../useTwilioApi-C57UuOda.js';
12
13
  import i18next from 'i18next';
13
14
  import * as yup from 'yup';
14
15
  import '@tanstack/react-query';
15
16
  import '@bigbinary/neeto-commons-frontend/react-utils';
16
17
  import 'axios';
17
- import '../query-B3RhGrNb.js';
18
+ import '../query-gurbhBqu.js';
19
+
20
+ var CONNECTION_TYPES = {
21
+ PHONE_NUMBER: "phone_number",
22
+ MESSAGING_SERVICE: "messaging_service"
23
+ };
24
+
25
+ var ConnectionTypeCard = function ConnectionTypeCard(_ref) {
26
+ var value = _ref.value,
27
+ selected = _ref.selected,
28
+ title = _ref.title,
29
+ description = _ref.description,
30
+ _ref$recommended = _ref.recommended,
31
+ recommended = _ref$recommended === void 0 ? false : _ref$recommended,
32
+ onSelect = _ref.onSelect,
33
+ children = _ref.children;
34
+ var _useTranslation = useTranslation(),
35
+ t = _useTranslation.t;
36
+ var isSelected = selected === value;
37
+ var cardClass = "flex w-full cursor-pointer flex-col gap-y-2 neeto-ui-rounded border p-4 ".concat(isSelected ? "border-green-700 bg-green-50" : "neeto-ui-border-gray-200");
38
+ return /*#__PURE__*/jsxs("div", {
39
+ className: cardClass,
40
+ onClick: function onClick() {
41
+ return onSelect(value);
42
+ },
43
+ children: [/*#__PURE__*/jsxs("div", {
44
+ className: "flex items-center gap-x-2",
45
+ children: [/*#__PURE__*/jsx("input", {
46
+ value: value,
47
+ checked: isSelected,
48
+ name: "connectionType",
49
+ type: "radio",
50
+ onChange: function onChange() {
51
+ return onSelect(value);
52
+ },
53
+ onClick: function onClick(e) {
54
+ return e.stopPropagation();
55
+ }
56
+ }), /*#__PURE__*/jsx("div", {
57
+ className: "font-semibold",
58
+ children: title
59
+ }), recommended && /*#__PURE__*/jsx(Badge, {
60
+ variant: "green-subtle",
61
+ label: t("neetoIntegrations.twilio.connectionType.messagingService.recommendedBadge")
62
+ })]
63
+ }), /*#__PURE__*/jsx("div", {
64
+ className: "text-sm neeto-ui-text-gray-600",
65
+ children: description
66
+ }), isSelected && children]
67
+ });
68
+ };
18
69
 
19
- function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
70
  var ConfigurationForm = function ConfigurationForm(_ref) {
22
- var _errors$twilioPhoneNu;
71
+ var _errors$twilioPhoneNu, _errors$twilioMessagi;
23
72
  var phoneNumberOptions = _ref.phoneNumberOptions,
24
- _ref$selectedPhoneNum = _ref.selectedPhoneNumber,
25
- selectedPhoneNumber = _ref$selectedPhoneNum === void 0 ? null : _ref$selectedPhoneNum,
73
+ messagingServiceOptions = _ref.messagingServiceOptions,
26
74
  _ref$initialFocusRef = _ref.initialFocusRef,
27
75
  initialFocusRef = _ref$initialFocusRef === void 0 ? null : _ref$initialFocusRef,
28
76
  _ref$isUsingOverlay = _ref.isUsingOverlay,
@@ -32,51 +80,88 @@ var ConfigurationForm = function ConfigurationForm(_ref) {
32
80
  var _useTranslation = useTranslation(),
33
81
  t = _useTranslation.t;
34
82
  var setFieldValue = formikProps.setFieldValue,
35
- setValues = formikProps.setValues,
36
- errors = formikProps.errors,
37
83
  values = formikProps.values,
38
- initialValues = formikProps.initialValues;
39
- useEffect(function () {
40
- selectedPhoneNumber && setFieldValue("twilioPhoneNumber", selectedPhoneNumber);
41
- }, [selectedPhoneNumber, initialValues]);
84
+ errors = formikProps.errors;
85
+ var handleConnectionTypeChange = function handleConnectionTypeChange(nextType) {
86
+ setFieldValue("connectionType", nextType);
87
+ if (nextType === CONNECTION_TYPES.PHONE_NUMBER) {
88
+ setFieldValue("twilioMessagingService", null);
89
+ } else {
90
+ setFieldValue("twilioPhoneNumber", null);
91
+ }
92
+ };
93
+ var senderOptionsAvailable = phoneNumberOptions !== null || messagingServiceOptions !== null;
42
94
  return /*#__PURE__*/jsxs("div", {
43
- className: "flex w-full flex-col gap-y-4",
44
- children: [/*#__PURE__*/jsx("div", {
45
- className: "flex w-full",
46
- children: /*#__PURE__*/jsx(Input, {
95
+ className: "flex w-full flex-col gap-y-6",
96
+ children: [/*#__PURE__*/jsxs("div", {
97
+ className: "flex w-full flex-col gap-y-4",
98
+ children: [/*#__PURE__*/jsx(Input, {
47
99
  required: true,
48
100
  autoFocus: !isUsingOverlay,
49
101
  "data-testid": "integrations-twilio-sid",
50
102
  label: t("neetoIntegrations.twilio.sid"),
51
103
  name: "twilioSid",
52
104
  ref: initialFocusRef
53
- })
54
- }), /*#__PURE__*/jsx("div", {
55
- className: "flex w-full",
56
- children: /*#__PURE__*/jsx(Input, {
105
+ }), /*#__PURE__*/jsx(Input, {
57
106
  required: true,
58
107
  "data-testid": "integrations-twilio-auth-token",
59
108
  label: t("neetoIntegrations.twilio.authToken"),
60
109
  name: "twilioAuthToken"
61
- })
62
- }), phoneNumberOptions && /*#__PURE__*/jsx("div", {
63
- className: "flex w-full",
64
- children: /*#__PURE__*/jsx(Select, {
65
- error: (_errors$twilioPhoneNu = errors.twilioPhoneNumber) === null || _errors$twilioPhoneNu === void 0 ? void 0 : _errors$twilioPhoneNu.value,
66
- label: t("neetoIntegrations.common.phNo"),
67
- name: "twilioPhoneNumber",
68
- options: phoneNumberOptions,
69
- size: "large",
70
- onChange: function onChange(selected) {
71
- return setValues(_objectSpread$1(_objectSpread$1({}, values), {}, {
72
- twilioPhoneNumber: selected
73
- }));
74
- }
75
- })
110
+ })]
111
+ }), senderOptionsAvailable && /*#__PURE__*/jsxs("div", {
112
+ className: "flex w-full flex-col gap-y-4",
113
+ children: [/*#__PURE__*/jsxs("div", {
114
+ children: [/*#__PURE__*/jsx("div", {
115
+ className: "font-semibold",
116
+ children: t("neetoIntegrations.twilio.smsSendingMethod.title")
117
+ }), /*#__PURE__*/jsx("div", {
118
+ className: "text-sm neeto-ui-text-gray-600",
119
+ children: t("neetoIntegrations.twilio.smsSendingMethod.subtitle")
120
+ })]
121
+ }), /*#__PURE__*/jsxs("div", {
122
+ className: "flex w-full flex-col gap-y-3",
123
+ children: [/*#__PURE__*/jsx(ConnectionTypeCard, {
124
+ selected: values.connectionType,
125
+ value: CONNECTION_TYPES.PHONE_NUMBER,
126
+ description: t("neetoIntegrations.twilio.connectionType.phoneNumber.description"),
127
+ title: t("neetoIntegrations.twilio.connectionType.phoneNumber.label"),
128
+ onSelect: handleConnectionTypeChange,
129
+ children: /*#__PURE__*/jsx(Select, {
130
+ error: (_errors$twilioPhoneNu = errors.twilioPhoneNumber) === null || _errors$twilioPhoneNu === void 0 ? void 0 : _errors$twilioPhoneNu.value,
131
+ label: t("neetoIntegrations.common.phNo"),
132
+ name: "twilioPhoneNumber",
133
+ options: phoneNumberOptions !== null && phoneNumberOptions !== void 0 ? phoneNumberOptions : [],
134
+ size: "large",
135
+ onChange: function onChange(selected) {
136
+ return setFieldValue("twilioPhoneNumber", selected);
137
+ }
138
+ })
139
+ }), /*#__PURE__*/jsx(ConnectionTypeCard, {
140
+ recommended: true,
141
+ selected: values.connectionType,
142
+ value: CONNECTION_TYPES.MESSAGING_SERVICE,
143
+ description: t("neetoIntegrations.twilio.connectionType.messagingService.description"),
144
+ title: t("neetoIntegrations.twilio.connectionType.messagingService.label"),
145
+ onSelect: handleConnectionTypeChange,
146
+ children: /*#__PURE__*/jsx(Select, {
147
+ error: (_errors$twilioMessagi = errors.twilioMessagingService) === null || _errors$twilioMessagi === void 0 ? void 0 : _errors$twilioMessagi.value,
148
+ label: t("neetoIntegrations.twilio.messagingService.label"),
149
+ name: "twilioMessagingService",
150
+ options: messagingServiceOptions !== null && messagingServiceOptions !== void 0 ? messagingServiceOptions : [],
151
+ size: "large",
152
+ placeholder: t("neetoIntegrations.twilio.messagingService.placeholder"),
153
+ onChange: function onChange(selected) {
154
+ return setFieldValue("twilioMessagingService", selected);
155
+ }
156
+ })
157
+ })]
158
+ })]
76
159
  })]
77
160
  });
78
161
  };
79
162
 
163
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
164
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
80
165
  var useTwilio = function useTwilio(_ref) {
81
166
  var _ref$onConnect = _ref.onConnect,
82
167
  onConnect = _ref$onConnect === void 0 ? noop : _ref$onConnect,
@@ -94,28 +179,37 @@ var useTwilio = function useTwilio(_ref) {
94
179
  _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
95
180
  credentials = _useStateWithDependen2[0],
96
181
  setCredentials = _useStateWithDependen2[1];
97
- var _useFetchTwilioPhoneN = useFetchTwilioPhoneNumbers({
182
+ var _useFetchTwilioSender = useFetchTwilioSenderOptions({
98
183
  credentials: credentials,
99
184
  formRef: formRef
100
185
  }),
101
- phoneNumbers = _useFetchTwilioPhoneN.data,
102
- isPhoneNumbersLoading = _useFetchTwilioPhoneN.isLoading;
186
+ senderOptions = _useFetchTwilioSender.data,
187
+ isSenderOptionsLoading = _useFetchTwilioSender.isLoading;
188
+ var phoneNumbers = senderOptions === null || senderOptions === void 0 ? void 0 : senderOptions.phoneNumbers;
189
+ var messagingServices = senderOptions === null || senderOptions === void 0 ? void 0 : senderOptions.messagingServices;
103
190
  var _useCreateTwilioConfi = useCreateTwilioConfiguration({
104
191
  integrable: integrable
105
192
  }),
106
193
  saveConfiguration = _useCreateTwilioConfi.mutate,
107
194
  isSubmitting = _useCreateTwilioConfi.isPending;
108
195
  var handleSubmit = function handleSubmit(values) {
109
- var _values$twilioPhoneNu;
110
- var payload = {
196
+ var _values$twilioMessagi, _values$twilioMessagi2, _values$twilioPhoneNu;
197
+ var credentialsPayload = {
111
198
  twilio_sid: values.twilioSid,
112
- twilio_auth_token: values.twilioAuthToken,
113
- twilio_phone_number_sid: (_values$twilioPhoneNu = values.twilioPhoneNumber) === null || _values$twilioPhoneNu === void 0 ? void 0 : _values$twilioPhoneNu.value
199
+ twilio_auth_token: values.twilioAuthToken
114
200
  };
115
- if (!phoneNumbers && !(configuration !== null && configuration !== void 0 && configuration.twilioPhoneNumber)) {
116
- setCredentials(payload);
201
+ if (!senderOptions && !(configuration !== null && configuration !== void 0 && configuration.connectionType)) {
202
+ setCredentials(credentialsPayload);
117
203
  return;
118
204
  }
205
+ var payload = values.connectionType === CONNECTION_TYPES.MESSAGING_SERVICE ? _objectSpread(_objectSpread({}, credentialsPayload), {}, {
206
+ connection_type: CONNECTION_TYPES.MESSAGING_SERVICE,
207
+ twilio_messaging_service_sid: (_values$twilioMessagi = values.twilioMessagingService) === null || _values$twilioMessagi === void 0 ? void 0 : _values$twilioMessagi.value,
208
+ twilio_messaging_service_friendly_name: (_values$twilioMessagi2 = values.twilioMessagingService) === null || _values$twilioMessagi2 === void 0 ? void 0 : _values$twilioMessagi2.label
209
+ }) : _objectSpread(_objectSpread({}, credentialsPayload), {}, {
210
+ connection_type: CONNECTION_TYPES.PHONE_NUMBER,
211
+ twilio_phone_number_sid: (_values$twilioPhoneNu = values.twilioPhoneNumber) === null || _values$twilioPhoneNu === void 0 ? void 0 : _values$twilioPhoneNu.value
212
+ });
119
213
  saveConfiguration(payload, {
120
214
  onSuccess: onConnect
121
215
  });
@@ -123,37 +217,64 @@ var useTwilio = function useTwilio(_ref) {
123
217
  return {
124
218
  handleSubmit: handleSubmit,
125
219
  phoneNumbers: phoneNumbers,
220
+ messagingServices: messagingServices,
126
221
  isConfigurationLoading: isConfigurationLoading,
127
- isPhoneNumbersLoading: isPhoneNumbersLoading,
222
+ isSenderOptionsLoading: isSenderOptionsLoading,
128
223
  isSubmitting: isSubmitting,
129
224
  configuration: configuration
130
225
  };
131
226
  };
132
227
 
133
- var buildTwilioConfigurationValidationSchema = function buildTwilioConfigurationValidationSchema(isTwilioPhoneRequired) {
228
+ var buildTwilioConfigurationValidationSchema = function buildTwilioConfigurationValidationSchema() {
134
229
  return yup.object().shape({
135
230
  twilioSid: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.sidReq")),
136
231
  twilioAuthToken: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.authTokenReq")),
137
- twilioPhoneNumber: isTwilioPhoneRequired ? yup.object().shape({
138
- label: yup.string(),
139
- value: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.phNumReq"))
140
- }) : null
232
+ connectionType: yup.string().oneOf([CONNECTION_TYPES.PHONE_NUMBER, CONNECTION_TYPES.MESSAGING_SERVICE]).required(),
233
+ twilioPhoneNumber: yup.object().nullable().when("connectionType", {
234
+ is: CONNECTION_TYPES.PHONE_NUMBER,
235
+ then: function then(schema) {
236
+ return schema.shape({
237
+ label: yup.string(),
238
+ value: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.phNumReq"))
239
+ });
240
+ }
241
+ }),
242
+ twilioMessagingService: yup.object().nullable().when("connectionType", {
243
+ is: CONNECTION_TYPES.MESSAGING_SERVICE,
244
+ then: function then(schema) {
245
+ return schema.shape({
246
+ label: yup.string(),
247
+ value: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.messagingServiceReq"))
248
+ });
249
+ }
250
+ })
141
251
  });
142
252
  };
143
253
  var buildPhoneNumberOptions = function buildPhoneNumberOptions(phoneNumbers) {
144
- return phoneNumbers === null || phoneNumbers === void 0 ? void 0 : phoneNumbers.map(function (_ref) {
254
+ var _phoneNumbers$map;
255
+ return (_phoneNumbers$map = phoneNumbers === null || phoneNumbers === void 0 ? void 0 : phoneNumbers.map(function (_ref) {
145
256
  var phoneNumber = _ref.phoneNumber,
146
257
  sid = _ref.sid;
147
258
  return {
148
259
  label: phoneNumber,
149
260
  value: sid
150
261
  };
151
- });
262
+ })) !== null && _phoneNumbers$map !== void 0 ? _phoneNumbers$map : [];
263
+ };
264
+ var buildMessagingServiceOptions = function buildMessagingServiceOptions(messagingServices) {
265
+ var _messagingServices$ma;
266
+ return (_messagingServices$ma = messagingServices === null || messagingServices === void 0 ? void 0 : messagingServices.map(function (_ref2) {
267
+ var sid = _ref2.sid,
268
+ friendlyName = _ref2.friendlyName;
269
+ return {
270
+ label: friendlyName,
271
+ value: sid
272
+ };
273
+ })) !== null && _messagingServices$ma !== void 0 ? _messagingServices$ma : [];
152
274
  };
153
275
 
154
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
155
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
156
276
  var Twilio = function Twilio(_ref) {
277
+ var _configuration$twilio, _configuration$twilio2;
157
278
  var _ref$integrable = _ref.integrable,
158
279
  integrable = _ref$integrable === void 0 ? null : _ref$integrable,
159
280
  _ref$onClose = _ref.onClose,
@@ -171,26 +292,37 @@ var Twilio = function Twilio(_ref) {
171
292
  }),
172
293
  handleSubmit = _useTwilio.handleSubmit,
173
294
  phoneNumbers = _useTwilio.phoneNumbers,
295
+ messagingServices = _useTwilio.messagingServices,
174
296
  isConfigurationLoading = _useTwilio.isConfigurationLoading,
175
- isPhoneNumbersLoading = _useTwilio.isPhoneNumbersLoading,
297
+ isSenderOptionsLoading = _useTwilio.isSenderOptionsLoading,
176
298
  isSubmitting = _useTwilio.isSubmitting,
177
299
  configuration = _useTwilio.configuration;
178
300
  var phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);
301
+ var messagingServiceOptions = buildMessagingServiceOptions(messagingServices);
179
302
  var selectedPhoneNumber = _findBy({
180
303
  label: configuration === null || configuration === void 0 ? void 0 : configuration.twilioPhoneNumber
181
304
  }, phoneNumberOptions);
182
- var isLoading = isPhoneNumbersLoading || isConfigurationLoading;
305
+ var selectedMessagingService = _findBy({
306
+ value: configuration === null || configuration === void 0 ? void 0 : configuration.twilioMessagingServiceSid
307
+ }, messagingServiceOptions);
308
+ var initialValues = {
309
+ twilioSid: (_configuration$twilio = configuration === null || configuration === void 0 ? void 0 : configuration.twilioSid) !== null && _configuration$twilio !== void 0 ? _configuration$twilio : "",
310
+ twilioAuthToken: (_configuration$twilio2 = configuration === null || configuration === void 0 ? void 0 : configuration.twilioAuthToken) !== null && _configuration$twilio2 !== void 0 ? _configuration$twilio2 : "",
311
+ connectionType: (configuration === null || configuration === void 0 ? void 0 : configuration.connectionType) || CONNECTION_TYPES.PHONE_NUMBER,
312
+ twilioPhoneNumber: selectedPhoneNumber !== null && selectedPhoneNumber !== void 0 ? selectedPhoneNumber : null,
313
+ twilioMessagingService: selectedMessagingService !== null && selectedMessagingService !== void 0 ? selectedMessagingService : null
314
+ };
315
+ var senderOptionsAvailable = !!phoneNumbers || !!messagingServices;
316
+ var isLoading = isSenderOptionsLoading || isConfigurationLoading;
183
317
  var isSubmitDisabled = function isSubmitDisabled(values) {
184
- return equals(_objectSpread(_objectSpread({}, configuration), {}, {
185
- twilioPhoneNumber: selectedPhoneNumber
186
- }), values) || isLoading;
318
+ return equals(initialValues, values) || isLoading;
187
319
  };
188
320
  return /*#__PURE__*/jsx(Form, {
189
321
  className: "w-full",
190
322
  formikProps: {
191
323
  enableReinitialize: true,
192
- validationSchema: buildTwilioConfigurationValidationSchema(!!phoneNumbers),
193
- initialValues: configuration,
324
+ validationSchema: buildTwilioConfigurationValidationSchema(),
325
+ initialValues: initialValues,
194
326
  innerRef: formRef,
195
327
  onSubmit: handleSubmit
196
328
  },
@@ -202,16 +334,16 @@ var Twilio = function Twilio(_ref) {
202
334
  onClick: onClose
203
335
  },
204
336
  submitButtonProps: {
205
- label: phoneNumberOptions ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify"),
337
+ label: senderOptionsAvailable ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify"),
206
338
  disabled: isSubmitDisabled(formikProps.values) || isSubmitting,
207
- loading: isSubmitting || isPhoneNumbersLoading && !(configuration !== null && configuration !== void 0 && configuration.twilioAuthToken)
339
+ loading: isSubmitting || isSenderOptionsLoading && !(configuration !== null && configuration !== void 0 && configuration.twilioAuthToken)
208
340
  }
209
341
  }),
210
342
  children: /*#__PURE__*/jsx(ConfigurationForm, {
211
343
  formikProps: formikProps,
212
344
  initialFocusRef: initialFocusRef,
213
- phoneNumberOptions: phoneNumberOptions,
214
- selectedPhoneNumber: selectedPhoneNumber
345
+ messagingServiceOptions: senderOptionsAvailable ? messagingServiceOptions : null,
346
+ phoneNumberOptions: senderOptionsAvailable ? phoneNumberOptions : null
215
347
  })
216
348
  });
217
349
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Twilio.js","sources":["../../app/javascript/src/v2/components/Integrations/Twilio/Form.jsx","../../app/javascript/src/v2/components/Integrations/Twilio/hooks/useTwilio.js","../../app/javascript/src/v2/components/Integrations/Twilio/utils.js","../../app/javascript/src/v2/components/Integrations/Twilio/index.jsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { Input, Select } from \"@bigbinary/neeto-atoms/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ConfigurationForm = ({\n phoneNumberOptions,\n selectedPhoneNumber = null,\n initialFocusRef = null,\n isUsingOverlay = false,\n formikProps = {},\n}) => {\n const { t } = useTranslation();\n const { setFieldValue, setValues, errors, values, initialValues } =\n formikProps;\n\n useEffect(() => {\n selectedPhoneNumber &&\n setFieldValue(\"twilioPhoneNumber\", selectedPhoneNumber);\n }, [selectedPhoneNumber, initialValues]);\n\n return (\n <div className=\"flex w-full flex-col gap-y-4\">\n <div className=\"flex w-full\">\n <Input\n required\n autoFocus={!isUsingOverlay}\n data-testid=\"integrations-twilio-sid\"\n label={t(\"neetoIntegrations.twilio.sid\")}\n name=\"twilioSid\"\n ref={initialFocusRef}\n />\n </div>\n <div className=\"flex w-full\">\n <Input\n required\n data-testid=\"integrations-twilio-auth-token\"\n label={t(\"neetoIntegrations.twilio.authToken\")}\n name=\"twilioAuthToken\"\n />\n </div>\n {phoneNumberOptions && (\n <div className=\"flex w-full\">\n <Select\n error={errors.twilioPhoneNumber?.value}\n label={t(\"neetoIntegrations.common.phNo\")}\n name=\"twilioPhoneNumber\"\n options={phoneNumberOptions}\n size=\"large\"\n onChange={selected =>\n setValues({ ...values, twilioPhoneNumber: selected })\n }\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default ConfigurationForm;\n","import { noop } from \"neetocist\";\nimport { useStateWithDependency } from \"neetocommons/v2/react-utils\";\n\nimport {\n useFetchTwilioPhoneNumbers,\n useCreateTwilioConfiguration,\n useFetchTwilioSmsConfiguration,\n} from \"hooks/reactQuery/useTwilioApi\";\n\nconst useTwilio = ({ onConnect = noop, formRef = null, integrable = null }) => {\n const { data: configuration = {}, isLoading: isConfigurationLoading } =\n useFetchTwilioSmsConfiguration({ integrable });\n const [credentials, setCredentials] = useStateWithDependency(configuration);\n const { data: phoneNumbers, isLoading: isPhoneNumbersLoading } =\n useFetchTwilioPhoneNumbers({ credentials, formRef });\n\n const { mutate: saveConfiguration, isPending: isSubmitting } =\n useCreateTwilioConfiguration({ integrable });\n\n const handleSubmit = values => {\n const payload = {\n twilio_sid: values.twilioSid,\n twilio_auth_token: values.twilioAuthToken,\n twilio_phone_number_sid: values.twilioPhoneNumber?.value,\n };\n\n if (!phoneNumbers && !configuration?.twilioPhoneNumber) {\n setCredentials(payload);\n\n return;\n }\n\n saveConfiguration(payload, { onSuccess: onConnect });\n };\n\n return {\n handleSubmit,\n phoneNumbers,\n isConfigurationLoading,\n isPhoneNumbersLoading,\n isSubmitting,\n configuration,\n };\n};\n\nexport default useTwilio;\n","import i18next from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const buildTwilioConfigurationValidationSchema = isTwilioPhoneRequired =>\n yup.object().shape({\n twilioSid: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.sidReq\")),\n twilioAuthToken: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.authTokenReq\")),\n twilioPhoneNumber: isTwilioPhoneRequired\n ? yup.object().shape({\n label: yup.string(),\n value: yup\n .string()\n .required(\n i18next.t(\"neetoIntegrations.twilio.validations.phNumReq\")\n ),\n })\n : null,\n });\n\nexport const buildPhoneNumberOptions = phoneNumbers =>\n phoneNumbers?.map(({ phoneNumber, sid }) => ({\n label: phoneNumber,\n value: sid,\n }));\n","import { useRef } from \"react\";\n\nimport {\n ActionBlock,\n Form as FormikFormWrapper,\n} from \"@bigbinary/neeto-atoms/formik\";\nimport { noop, _findBy } from \"neetocist\";\nimport CardLayout from \"neetomolecules/v2/CardLayout\";\nimport { equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Form from \"./Form\";\nimport useTwilio from \"./hooks/useTwilio\";\nimport {\n buildPhoneNumberOptions,\n buildTwilioConfigurationValidationSchema,\n} from \"./utils\";\n\nconst Twilio = ({ integrable = null, onClose = noop, onConnect = noop }) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef();\n const formRef = useRef();\n\n const {\n handleSubmit,\n phoneNumbers,\n isConfigurationLoading,\n isPhoneNumbersLoading,\n isSubmitting,\n configuration,\n } = useTwilio({ onConnect, formRef, integrable });\n\n const phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);\n\n const selectedPhoneNumber = _findBy(\n { label: configuration?.twilioPhoneNumber },\n phoneNumberOptions\n );\n\n const isLoading = isPhoneNumbersLoading || isConfigurationLoading;\n\n const isSubmitDisabled = values =>\n equals(\n { ...configuration, twilioPhoneNumber: selectedPhoneNumber },\n values\n ) || isLoading;\n\n return (\n <FormikFormWrapper\n className=\"w-full\"\n formikProps={{\n enableReinitialize: true,\n validationSchema:\n buildTwilioConfigurationValidationSchema(!!phoneNumbers),\n initialValues: configuration,\n innerRef: formRef,\n onSubmit: handleSubmit,\n }}\n >\n {formikProps => (\n <CardLayout\n actionBlock={\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{ onClick: onClose }}\n submitButtonProps={{\n label: phoneNumberOptions\n ? t(\"neetoIntegrations.common.saveChanges\")\n : t(\"neetoIntegrations.common.verify\"),\n disabled: isSubmitDisabled(formikProps.values) || isSubmitting,\n loading:\n isSubmitting ||\n (isPhoneNumbersLoading && !configuration?.twilioAuthToken),\n }}\n />\n }\n >\n <Form\n {...{\n formikProps,\n initialFocusRef,\n phoneNumberOptions,\n selectedPhoneNumber,\n }}\n />\n </CardLayout>\n )}\n </FormikFormWrapper>\n );\n};\n\nexport default Twilio;\n"],"names":["ConfigurationForm","_ref","_errors$twilioPhoneNu","phoneNumberOptions","_ref$selectedPhoneNum","selectedPhoneNumber","_ref$initialFocusRef","initialFocusRef","_ref$isUsingOverlay","isUsingOverlay","_ref$formikProps","formikProps","_useTranslation","useTranslation","t","setFieldValue","setValues","errors","values","initialValues","useEffect","_jsxs","className","children","_jsx","Input","required","autoFocus","label","name","ref","Select","error","twilioPhoneNumber","value","options","size","onChange","selected","_objectSpread","useTwilio","_ref$onConnect","onConnect","noop","_ref$formRef","formRef","_ref$integrable","integrable","_useFetchTwilioSmsCon","useFetchTwilioSmsConfiguration","_useFetchTwilioSmsCon2","data","configuration","isConfigurationLoading","isLoading","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","_slicedToArray","credentials","setCredentials","_useFetchTwilioPhoneN","useFetchTwilioPhoneNumbers","phoneNumbers","isPhoneNumbersLoading","_useCreateTwilioConfi","useCreateTwilioConfiguration","saveConfiguration","mutate","isSubmitting","isPending","handleSubmit","_values$twilioPhoneNu","payload","twilio_sid","twilioSid","twilio_auth_token","twilioAuthToken","twilio_phone_number_sid","onSuccess","buildTwilioConfigurationValidationSchema","isTwilioPhoneRequired","yup","object","shape","string","i18next","buildPhoneNumberOptions","map","phoneNumber","sid","Twilio","_ref$onClose","onClose","useRef","_useTwilio","_findBy","isSubmitDisabled","equals","FormikFormWrapper","enableReinitialize","validationSchema","innerRef","onSubmit","CardLayout","actionBlock","ActionBlock","cancelButtonProps","onClick","submitButtonProps","disabled","loading","Form"],"mappings":"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"}
1
+ {"version":3,"file":"Twilio.js","sources":["../../app/javascript/src/v2/components/Integrations/Twilio/constants.js","../../app/javascript/src/v2/components/Integrations/Twilio/ConnectionTypeCard.jsx","../../app/javascript/src/v2/components/Integrations/Twilio/Form.jsx","../../app/javascript/src/v2/components/Integrations/Twilio/hooks/useTwilio.js","../../app/javascript/src/v2/components/Integrations/Twilio/utils.js","../../app/javascript/src/v2/components/Integrations/Twilio/index.jsx"],"sourcesContent":["export const CONNECTION_TYPES = {\n PHONE_NUMBER: \"phone_number\",\n MESSAGING_SERVICE: \"messaging_service\",\n};\n","import { Badge } from \"@bigbinary/neeto-atoms\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ConnectionTypeCard = ({\n value,\n selected,\n title,\n description,\n recommended = false,\n onSelect,\n children,\n}) => {\n const { t } = useTranslation();\n const isSelected = selected === value;\n const cardClass = `flex w-full cursor-pointer flex-col gap-y-2 neeto-ui-rounded border p-4 ${\n isSelected ? \"border-green-700 bg-green-50\" : \"neeto-ui-border-gray-200\"\n }`;\n\n return (\n <div className={cardClass} onClick={() => onSelect(value)}>\n <div className=\"flex items-center gap-x-2\">\n <input\n {...{ value }}\n checked={isSelected}\n name=\"connectionType\"\n type=\"radio\"\n onChange={() => onSelect(value)}\n onClick={e => e.stopPropagation()}\n />\n <div className=\"font-semibold\">{title}</div>\n {recommended && (\n <Badge\n variant=\"green-subtle\"\n label={t(\n \"neetoIntegrations.twilio.connectionType.messagingService.recommendedBadge\"\n )}\n />\n )}\n </div>\n <div className=\"text-sm neeto-ui-text-gray-600\">{description}</div>\n {isSelected && children}\n </div>\n );\n};\n\nexport default ConnectionTypeCard;\n","import { Input, Select } from \"@bigbinary/neeto-atoms/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ConnectionTypeCard from \"./ConnectionTypeCard\";\nimport { CONNECTION_TYPES } from \"./constants\";\n\nconst ConfigurationForm = ({\n phoneNumberOptions,\n messagingServiceOptions,\n initialFocusRef = null,\n isUsingOverlay = false,\n formikProps = {},\n}) => {\n const { t } = useTranslation();\n const { setFieldValue, values, errors } = formikProps;\n\n const handleConnectionTypeChange = nextType => {\n setFieldValue(\"connectionType\", nextType);\n\n if (nextType === CONNECTION_TYPES.PHONE_NUMBER) {\n setFieldValue(\"twilioMessagingService\", null);\n } else {\n setFieldValue(\"twilioPhoneNumber\", null);\n }\n };\n\n const senderOptionsAvailable =\n phoneNumberOptions !== null || messagingServiceOptions !== null;\n\n return (\n <div className=\"flex w-full flex-col gap-y-6\">\n <div className=\"flex w-full flex-col gap-y-4\">\n <Input\n required\n autoFocus={!isUsingOverlay}\n data-testid=\"integrations-twilio-sid\"\n label={t(\"neetoIntegrations.twilio.sid\")}\n name=\"twilioSid\"\n ref={initialFocusRef}\n />\n <Input\n required\n data-testid=\"integrations-twilio-auth-token\"\n label={t(\"neetoIntegrations.twilio.authToken\")}\n name=\"twilioAuthToken\"\n />\n </div>\n {senderOptionsAvailable && (\n <div className=\"flex w-full flex-col gap-y-4\">\n <div>\n <div className=\"font-semibold\">\n {t(\"neetoIntegrations.twilio.smsSendingMethod.title\")}\n </div>\n <div className=\"text-sm neeto-ui-text-gray-600\">\n {t(\"neetoIntegrations.twilio.smsSendingMethod.subtitle\")}\n </div>\n </div>\n <div className=\"flex w-full flex-col gap-y-3\">\n <ConnectionTypeCard\n selected={values.connectionType}\n value={CONNECTION_TYPES.PHONE_NUMBER}\n description={t(\n \"neetoIntegrations.twilio.connectionType.phoneNumber.description\"\n )}\n title={t(\n \"neetoIntegrations.twilio.connectionType.phoneNumber.label\"\n )}\n onSelect={handleConnectionTypeChange}\n >\n <Select\n error={errors.twilioPhoneNumber?.value}\n label={t(\"neetoIntegrations.common.phNo\")}\n name=\"twilioPhoneNumber\"\n options={phoneNumberOptions ?? []}\n size=\"large\"\n onChange={selected =>\n setFieldValue(\"twilioPhoneNumber\", selected)\n }\n />\n </ConnectionTypeCard>\n <ConnectionTypeCard\n recommended\n selected={values.connectionType}\n value={CONNECTION_TYPES.MESSAGING_SERVICE}\n description={t(\n \"neetoIntegrations.twilio.connectionType.messagingService.description\"\n )}\n title={t(\n \"neetoIntegrations.twilio.connectionType.messagingService.label\"\n )}\n onSelect={handleConnectionTypeChange}\n >\n <Select\n error={errors.twilioMessagingService?.value}\n label={t(\"neetoIntegrations.twilio.messagingService.label\")}\n name=\"twilioMessagingService\"\n options={messagingServiceOptions ?? []}\n size=\"large\"\n placeholder={t(\n \"neetoIntegrations.twilio.messagingService.placeholder\"\n )}\n onChange={selected =>\n setFieldValue(\"twilioMessagingService\", selected)\n }\n />\n </ConnectionTypeCard>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default ConfigurationForm;\n","import { noop } from \"neetocist\";\nimport { useStateWithDependency } from \"neetocommons/v2/react-utils\";\n\nimport {\n useFetchTwilioSenderOptions,\n useCreateTwilioConfiguration,\n useFetchTwilioSmsConfiguration,\n} from \"hooks/reactQuery/useTwilioApi\";\n\nimport { CONNECTION_TYPES } from \"../constants\";\n\nconst useTwilio = ({ onConnect = noop, formRef = null, integrable = null }) => {\n const { data: configuration = {}, isLoading: isConfigurationLoading } =\n useFetchTwilioSmsConfiguration({ integrable });\n const [credentials, setCredentials] = useStateWithDependency(configuration);\n const { data: senderOptions, isLoading: isSenderOptionsLoading } =\n useFetchTwilioSenderOptions({ credentials, formRef });\n\n const phoneNumbers = senderOptions?.phoneNumbers;\n const messagingServices = senderOptions?.messagingServices;\n\n const { mutate: saveConfiguration, isPending: isSubmitting } =\n useCreateTwilioConfiguration({ integrable });\n\n const handleSubmit = values => {\n const credentialsPayload = {\n twilio_sid: values.twilioSid,\n twilio_auth_token: values.twilioAuthToken,\n };\n\n if (!senderOptions && !configuration?.connectionType) {\n setCredentials(credentialsPayload);\n\n return;\n }\n\n const payload =\n values.connectionType === CONNECTION_TYPES.MESSAGING_SERVICE\n ? {\n ...credentialsPayload,\n connection_type: CONNECTION_TYPES.MESSAGING_SERVICE,\n twilio_messaging_service_sid: values.twilioMessagingService?.value,\n twilio_messaging_service_friendly_name:\n values.twilioMessagingService?.label,\n }\n : {\n ...credentialsPayload,\n connection_type: CONNECTION_TYPES.PHONE_NUMBER,\n twilio_phone_number_sid: values.twilioPhoneNumber?.value,\n };\n\n saveConfiguration(payload, { onSuccess: onConnect });\n };\n\n return {\n handleSubmit,\n phoneNumbers,\n messagingServices,\n isConfigurationLoading,\n isSenderOptionsLoading,\n isSubmitting,\n configuration,\n };\n};\n\nexport default useTwilio;\n","import i18next from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { CONNECTION_TYPES } from \"./constants\";\n\nexport const buildTwilioConfigurationValidationSchema = () =>\n yup.object().shape({\n twilioSid: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.sidReq\")),\n twilioAuthToken: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.authTokenReq\")),\n connectionType: yup\n .string()\n .oneOf([\n CONNECTION_TYPES.PHONE_NUMBER,\n CONNECTION_TYPES.MESSAGING_SERVICE,\n ])\n .required(),\n twilioPhoneNumber: yup\n .object()\n .nullable()\n .when(\"connectionType\", {\n is: CONNECTION_TYPES.PHONE_NUMBER,\n then: schema =>\n schema.shape({\n label: yup.string(),\n value: yup\n .string()\n .required(\n i18next.t(\"neetoIntegrations.twilio.validations.phNumReq\")\n ),\n }),\n }),\n twilioMessagingService: yup\n .object()\n .nullable()\n .when(\"connectionType\", {\n is: CONNECTION_TYPES.MESSAGING_SERVICE,\n then: schema =>\n schema.shape({\n label: yup.string(),\n value: yup\n .string()\n .required(\n i18next.t(\n \"neetoIntegrations.twilio.validations.messagingServiceReq\"\n )\n ),\n }),\n }),\n });\n\nexport const buildPhoneNumberOptions = phoneNumbers =>\n phoneNumbers?.map(({ phoneNumber, sid }) => ({\n label: phoneNumber,\n value: sid,\n })) ?? [];\n\nexport const buildMessagingServiceOptions = messagingServices =>\n messagingServices?.map(({ sid, friendlyName }) => ({\n label: friendlyName,\n value: sid,\n })) ?? [];\n","import { useRef } from \"react\";\n\nimport {\n ActionBlock,\n Form as FormikFormWrapper,\n} from \"@bigbinary/neeto-atoms/formik\";\nimport { noop, _findBy } from \"neetocist\";\nimport CardLayout from \"neetomolecules/v2/CardLayout\";\nimport { equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { CONNECTION_TYPES } from \"./constants\";\nimport Form from \"./Form\";\nimport useTwilio from \"./hooks/useTwilio\";\nimport {\n buildMessagingServiceOptions,\n buildPhoneNumberOptions,\n buildTwilioConfigurationValidationSchema,\n} from \"./utils\";\n\nconst Twilio = ({ integrable = null, onClose = noop, onConnect = noop }) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef();\n const formRef = useRef();\n\n const {\n handleSubmit,\n phoneNumbers,\n messagingServices,\n isConfigurationLoading,\n isSenderOptionsLoading,\n isSubmitting,\n configuration,\n } = useTwilio({ onConnect, formRef, integrable });\n\n const phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);\n const messagingServiceOptions =\n buildMessagingServiceOptions(messagingServices);\n\n const selectedPhoneNumber = _findBy(\n { label: configuration?.twilioPhoneNumber },\n phoneNumberOptions\n );\n\n const selectedMessagingService = _findBy(\n { value: configuration?.twilioMessagingServiceSid },\n messagingServiceOptions\n );\n\n const initialValues = {\n twilioSid: configuration?.twilioSid ?? \"\",\n twilioAuthToken: configuration?.twilioAuthToken ?? \"\",\n connectionType:\n configuration?.connectionType || CONNECTION_TYPES.PHONE_NUMBER,\n twilioPhoneNumber: selectedPhoneNumber ?? null,\n twilioMessagingService: selectedMessagingService ?? null,\n };\n\n const senderOptionsAvailable = !!phoneNumbers || !!messagingServices;\n const isLoading = isSenderOptionsLoading || isConfigurationLoading;\n\n const isSubmitDisabled = values => equals(initialValues, values) || isLoading;\n\n return (\n <FormikFormWrapper\n className=\"w-full\"\n formikProps={{\n enableReinitialize: true,\n validationSchema: buildTwilioConfigurationValidationSchema(),\n initialValues,\n innerRef: formRef,\n onSubmit: handleSubmit,\n }}\n >\n {formikProps => (\n <CardLayout\n actionBlock={\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{ onClick: onClose }}\n submitButtonProps={{\n label: senderOptionsAvailable\n ? t(\"neetoIntegrations.common.saveChanges\")\n : t(\"neetoIntegrations.common.verify\"),\n disabled: isSubmitDisabled(formikProps.values) || isSubmitting,\n loading:\n isSubmitting ||\n (isSenderOptionsLoading && !configuration?.twilioAuthToken),\n }}\n />\n }\n >\n <Form\n {...{ formikProps, initialFocusRef }}\n messagingServiceOptions={\n senderOptionsAvailable ? messagingServiceOptions : null\n }\n phoneNumberOptions={\n senderOptionsAvailable ? phoneNumberOptions : null\n }\n />\n </CardLayout>\n )}\n </FormikFormWrapper>\n );\n};\n\nexport default Twilio;\n"],"names":["CONNECTION_TYPES","PHONE_NUMBER","MESSAGING_SERVICE","ConnectionTypeCard","_ref","value","selected","title","description","_ref$recommended","recommended","onSelect","children","_useTranslation","useTranslation","t","isSelected","cardClass","concat","_jsxs","className","onClick","_jsx","checked","name","type","onChange","e","stopPropagation","Badge","variant","label","ConfigurationForm","_errors$twilioPhoneNu","_errors$twilioMessagi","phoneNumberOptions","messagingServiceOptions","_ref$initialFocusRef","initialFocusRef","_ref$isUsingOverlay","isUsingOverlay","_ref$formikProps","formikProps","setFieldValue","values","errors","handleConnectionTypeChange","nextType","senderOptionsAvailable","Input","required","autoFocus","ref","connectionType","Select","error","twilioPhoneNumber","options","size","twilioMessagingService","placeholder","useTwilio","_ref$onConnect","onConnect","noop","_ref$formRef","formRef","_ref$integrable","integrable","_useFetchTwilioSmsCon","useFetchTwilioSmsConfiguration","_useFetchTwilioSmsCon2","data","configuration","isConfigurationLoading","isLoading","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","_slicedToArray","credentials","setCredentials","_useFetchTwilioSender","useFetchTwilioSenderOptions","senderOptions","isSenderOptionsLoading","phoneNumbers","messagingServices","_useCreateTwilioConfi","useCreateTwilioConfiguration","saveConfiguration","mutate","isSubmitting","isPending","handleSubmit","_values$twilioMessagi","_values$twilioMessagi2","_values$twilioPhoneNu","credentialsPayload","twilio_sid","twilioSid","twilio_auth_token","twilioAuthToken","payload","_objectSpread","connection_type","twilio_messaging_service_sid","twilio_messaging_service_friendly_name","twilio_phone_number_sid","onSuccess","buildTwilioConfigurationValidationSchema","yup","object","shape","string","i18next","oneOf","nullable","when","is","then","schema","buildPhoneNumberOptions","_phoneNumbers$map","map","phoneNumber","sid","buildMessagingServiceOptions","_messagingServices$ma","_ref2","friendlyName","Twilio","_configuration$twilio","_configuration$twilio2","_ref$onClose","onClose","useRef","_useTwilio","selectedPhoneNumber","_findBy","selectedMessagingService","twilioMessagingServiceSid","initialValues","isSubmitDisabled","equals","FormikFormWrapper","enableReinitialize","validationSchema","innerRef","onSubmit","CardLayout","actionBlock","ActionBlock","cancelButtonProps","submitButtonProps","disabled","loading","Form"],"mappings":"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"}
package/dist/v2/Zoom.js CHANGED
@@ -4,14 +4,14 @@ import { Spinner } from '@bigbinary/neeto-atoms';
4
4
  import { isPresent, noop } from '@bigbinary/neeto-cist';
5
5
  import ZoomIcon from '@bigbinary/neeto-icons/misc/Zoom';
6
6
  import { useTranslation, Trans } from 'react-i18next';
7
- import { u as useShowZoom, a as useDestroyZoom } from '../useZoomApi-CazQYmYH.js';
7
+ import { u as useShowZoom, a as useDestroyZoom } from '../useZoomApi-CkhVE1e8.js';
8
8
  import Manage from './Manage.js';
9
9
  import { jsx } from 'react/jsx-runtime';
10
10
  import '@tanstack/react-query';
11
11
  import '@bigbinary/neeto-commons-frontend/constants';
12
12
  import '@bigbinary/neeto-commons-frontend/react-utils';
13
13
  import 'axios';
14
- import '../query-B3RhGrNb.js';
14
+ import '../query-gurbhBqu.js';
15
15
  import '@babel/runtime/helpers/defineProperty';
16
16
  import '@bigbinary/neeto-commons-frontend/v2/react-utils';
17
17
  import './DisconnectAlert.js';
package/dist/v2/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { d as disconnectionAlertsQueryKey } from '../query-B3RhGrNb.js';
1
+ export { d as disconnectionAlertsQueryKey } from '../query-gurbhBqu.js';
2
2
  export { default as Manage } from './Manage.js';
3
3
  export { default as DisconnectAlert } from './DisconnectAlert.js';
4
4
  export { default as DisconnectedIntegrationsRibbon } from './DisconnectedIntegrationsRibbon.js';
@@ -23,13 +23,13 @@ import '@bigbinary/neeto-commons-frontend/v2/react-utils/withT';
23
23
  import 'ramda';
24
24
  import 'react-i18next';
25
25
  import 'react-router-dom';
26
- import '../useDisconnectionAlertsApi-BnfMKA7s.js';
26
+ import '../useDisconnectionAlertsApi-BOc2pEP_.js';
27
27
  import '@tanstack/react-query';
28
28
  import '@bigbinary/neeto-commons-frontend/constants';
29
29
  import '@bigbinary/neeto-commons-frontend/react-utils';
30
30
  import 'axios';
31
31
  import 'i18next';
32
- import '../useDailiesApi-C78LSYFo.js';
32
+ import '../useDailiesApi-aQmuxf-5.js';
33
33
  import '@babel/runtime/helpers/slicedToArray';
34
34
  import 'react';
35
35
  import '@bigbinary/neeto-commons-frontend/v2/utils';
@@ -44,10 +44,10 @@ import '@babel/runtime/helpers/toConsumableArray';
44
44
  import '@bigbinary/neeto-icons/misc/GoogleCalendar';
45
45
  import '@bigbinary/neeto-icons/misc/Google';
46
46
  import '@bigbinary/neeto-molecules/v2/PageLoader';
47
- import '../useTelnyxApi-DnNSPd-d.js';
48
- import '../useTwilioApi-D5HpIaB2.js';
47
+ import '../useTelnyxApi-Cv5cIiuo.js';
48
+ import '../useTwilioApi-C57UuOda.js';
49
49
  import '@bigbinary/neeto-icons/misc/Zoom';
50
- import '../useZoomApi-CazQYmYH.js';
50
+ import '../useZoomApi-CkhVE1e8.js';
51
51
  import 'classnames';
52
52
  import '../index-MS1ts-9f.js';
53
53
  import '../success-C6rQdhhF.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-integrations-frontend",
3
- "version": "4.0.31",
3
+ "version": "4.0.33",
4
4
  "description": "UI for integrations in neeto products",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://github.com/bigbinary/neeto-integrations-nano",
@@ -75,11 +75,11 @@
75
75
  "@bigbinary/eslint-plugin-neeto": "1.9.0",
76
76
  "@bigbinary/neeto-atoms": "latest",
77
77
  "@bigbinary/neeto-cist": "1.0.17",
78
- "@bigbinary/neeto-commons-frontend": "4.13.124",
79
- "@bigbinary/neeto-filters-frontend": "4.3.36",
80
- "@bigbinary/neeto-icons": "1.20.87",
81
- "@bigbinary/neeto-molecules": "4.1.72",
82
- "@bigbinary/neetoui": "8.6.0",
78
+ "@bigbinary/neeto-commons-frontend": "4.13.127",
79
+ "@bigbinary/neeto-filters-frontend": "4.3.38",
80
+ "@bigbinary/neeto-icons": "1.20.88",
81
+ "@bigbinary/neeto-molecules": "5.1.3",
82
+ "@bigbinary/neetoui": "8.8.0",
83
83
  "@emotion/is-prop-valid": "1.2.0",
84
84
  "@faker-js/faker": "8.2.0",
85
85
  "@honeybadger-io/js": "6.10.1",
@@ -97,7 +97,7 @@
97
97
  "@tanstack/react-query-devtools": "5.59.20",
98
98
  "antd": "5.22.1",
99
99
  "autoprefixer": "^10.4.5",
100
- "axios": "1.15.0",
100
+ "axios": "1.16.0",
101
101
  "babel-loader": "^8.2.5",
102
102
  "babel-plugin-istanbul": "^6.1.1",
103
103
  "babel-plugin-js-logger": "1.0.17",
@@ -143,7 +143,7 @@
143
143
  "mixpanel-browser": "2.47.0",
144
144
  "os-browserify": "0.3.0",
145
145
  "path-browserify": "^1.0.1",
146
- "postcss": "8.5.10",
146
+ "postcss": "8.5.11",
147
147
  "postcss-import": "^15.0.0",
148
148
  "postcss-loader": "^7.0.1",
149
149
  "postcss-preset-env": "7.8.2",
@@ -189,18 +189,18 @@
189
189
  "@babel/runtime": "7.29.2",
190
190
  "@bigbinary/neeto-atoms": "latest",
191
191
  "@bigbinary/neeto-cist": "1.0.17",
192
- "@bigbinary/neeto-commons-frontend": "4.13.124",
193
- "@bigbinary/neeto-filters-frontend": "4.3.36",
194
- "@bigbinary/neeto-icons": "1.20.87",
195
- "@bigbinary/neeto-molecules": "4.1.72",
196
- "@bigbinary/neetoui": "8.6.0",
192
+ "@bigbinary/neeto-commons-frontend": "4.13.127",
193
+ "@bigbinary/neeto-filters-frontend": "4.3.38",
194
+ "@bigbinary/neeto-icons": "1.20.88",
195
+ "@bigbinary/neeto-molecules": "5.1.3",
196
+ "@bigbinary/neetoui": "8.8.0",
197
197
  "@honeybadger-io/js": "6.10.1",
198
198
  "@honeybadger-io/react": "6.1.25",
199
199
  "@tailwindcss/container-queries": "^0.1.1",
200
200
  "@tanstack/react-query": "5.59.20",
201
201
  "@tanstack/react-query-devtools": "5.59.20",
202
202
  "antd": "5.22.1",
203
- "axios": "1.15.0",
203
+ "axios": "1.16.0",
204
204
  "buffer": "^6.0.3",
205
205
  "classnames": "2.5.1",
206
206
  "crypto-browserify": "3.12.1",