@capillarytech/creatives-library 8.0.353-alpha.6 → 8.0.354

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 (127) hide show
  1. package/constants/unified.js +0 -29
  2. package/index.html +1 -0
  3. package/package.json +1 -1
  4. package/services/tests/api.test.js +20 -35
  5. package/utils/cdnTransformation.js +63 -3
  6. package/utils/commonUtils.js +1 -19
  7. package/utils/tests/cdnTransformation.test.js +111 -0
  8. package/v2Components/CapActionButton/constants.js +0 -7
  9. package/v2Components/CapActionButton/index.js +108 -166
  10. package/v2Components/CapActionButton/index.scss +6 -157
  11. package/v2Components/CapActionButton/messages.js +3 -19
  12. package/v2Components/CapActionButton/tests/index.test.js +17 -41
  13. package/v2Components/CapTagList/index.js +0 -10
  14. package/v2Components/CommonTestAndPreview/CustomValuesEditor.js +49 -72
  15. package/v2Components/CommonTestAndPreview/DeliverySettings/DeliverySettings.scss +2 -8
  16. package/v2Components/CommonTestAndPreview/DeliverySettings/ModifyDeliverySettings.js +21 -213
  17. package/v2Components/CommonTestAndPreview/DeliverySettings/constants.js +0 -16
  18. package/v2Components/CommonTestAndPreview/DeliverySettings/index.js +10 -85
  19. package/v2Components/CommonTestAndPreview/DeliverySettings/messages.js +0 -30
  20. package/v2Components/CommonTestAndPreview/DeliverySettings/utils/parseSenderDetailsResponse.js +11 -79
  21. package/v2Components/CommonTestAndPreview/SendTestMessage.js +5 -10
  22. package/v2Components/CommonTestAndPreview/UnifiedPreview/RcsPreviewContent.js +15 -157
  23. package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +76 -346
  24. package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +4 -133
  25. package/v2Components/CommonTestAndPreview/_commonTestAndPreview.scss +0 -11
  26. package/v2Components/CommonTestAndPreview/constants.js +2 -38
  27. package/v2Components/CommonTestAndPreview/index.js +186 -691
  28. package/v2Components/CommonTestAndPreview/messages.js +3 -45
  29. package/v2Components/CommonTestAndPreview/sagas.js +6 -25
  30. package/v2Components/CommonTestAndPreview/tests/CustomValuesEditor.test.js +284 -308
  31. package/v2Components/CommonTestAndPreview/tests/DeliverySettings/ModifyDeliverySettings.test.js +65 -231
  32. package/v2Components/CommonTestAndPreview/tests/DeliverySettings/index.test.js +5 -118
  33. package/v2Components/CommonTestAndPreview/tests/DeliverySettings/utils/parseSenderDetailsResponse.test.js +0 -341
  34. package/v2Components/CommonTestAndPreview/tests/PreviewSection.test.js +1 -8
  35. package/v2Components/CommonTestAndPreview/tests/SendTestMessage.test.js +13 -34
  36. package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/RcsPreviewContent.test.js +283 -281
  37. package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/index.test.js +1 -199
  38. package/v2Components/CommonTestAndPreview/tests/index.test.js +4 -132
  39. package/v2Components/CommonTestAndPreview/tests/sagas.test.js +26 -36
  40. package/v2Components/FormBuilder/index.js +6 -11
  41. package/v2Components/TemplatePreview/_templatePreview.scss +23 -38
  42. package/v2Components/TemplatePreview/index.js +31 -143
  43. package/v2Components/TemplatePreview/tests/index.test.js +0 -142
  44. package/v2Components/TestAndPreviewSlidebox/index.js +1 -13
  45. package/v2Components/TestAndPreviewSlidebox/sagas.js +4 -11
  46. package/v2Components/TestAndPreviewSlidebox/tests/saga.test.js +1 -3
  47. package/v2Containers/CreativesContainer/SlideBoxContent.js +4 -36
  48. package/v2Containers/CreativesContainer/SlideBoxFooter.js +1 -10
  49. package/v2Containers/CreativesContainer/SlideBoxHeader.js +4 -29
  50. package/v2Containers/CreativesContainer/constants.js +0 -9
  51. package/v2Containers/CreativesContainer/index.js +103 -322
  52. package/v2Containers/CreativesContainer/index.scss +1 -51
  53. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +34 -78
  54. package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +16 -79
  55. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +0 -8
  56. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +98 -357
  57. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +15 -20
  58. package/v2Containers/CreativesContainer/tests/index.test.js +9 -71
  59. package/v2Containers/MobilePush/Create/test/saga.test.js +2 -2
  60. package/v2Containers/Rcs/constants.js +10 -119
  61. package/v2Containers/Rcs/index.js +818 -2450
  62. package/v2Containers/Rcs/index.scss +8 -280
  63. package/v2Containers/Rcs/messages.js +3 -34
  64. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +70073 -98018
  65. package/v2Containers/Rcs/tests/__snapshots__/utils.test.js.snap +5 -0
  66. package/v2Containers/Rcs/tests/index.test.js +121 -152
  67. package/v2Containers/Rcs/tests/mockData.js +0 -38
  68. package/v2Containers/Rcs/tests/utils.test.js +30 -646
  69. package/v2Containers/Rcs/utils.js +11 -478
  70. package/v2Containers/Sms/Create/index.js +40 -106
  71. package/v2Containers/SmsTrai/Create/index.js +4 -9
  72. package/v2Containers/SmsTrai/Edit/constants.js +0 -2
  73. package/v2Containers/SmsTrai/Edit/index.js +130 -640
  74. package/v2Containers/SmsTrai/Edit/messages.js +4 -14
  75. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +2296 -4249
  76. package/v2Containers/SmsWrapper/index.js +8 -37
  77. package/v2Containers/TagList/index.js +0 -6
  78. package/v2Containers/Templates/_templates.scss +9 -166
  79. package/v2Containers/Templates/actions.js +0 -11
  80. package/v2Containers/Templates/constants.js +0 -2
  81. package/v2Containers/Templates/index.js +52 -120
  82. package/v2Containers/Templates/sagas.js +18 -57
  83. package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +1017 -1062
  84. package/v2Containers/Templates/tests/sagas.test.js +39 -205
  85. package/v2Containers/TemplatesV2/TemplatesV2.style.js +1 -72
  86. package/v2Containers/TemplatesV2/index.js +23 -86
  87. package/v2Containers/WeChat/MapTemplates/test/saga.test.js +9 -9
  88. package/v2Containers/Whatsapp/index.js +20 -3
  89. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +34 -578
  90. package/utils/rcsPayloadUtils.js +0 -92
  91. package/utils/templateVarUtils.js +0 -201
  92. package/utils/tests/rcsPayloadUtils.test.js +0 -226
  93. package/utils/tests/templateVarUtils.test.js +0 -204
  94. package/v2Components/CommonTestAndPreview/previewApiUtils.js +0 -59
  95. package/v2Components/CommonTestAndPreview/tests/previewApiUtils.test.js +0 -67
  96. package/v2Components/SmsFallback/SmsFallbackLocalSelector.js +0 -91
  97. package/v2Components/SmsFallback/constants.js +0 -73
  98. package/v2Components/SmsFallback/index.js +0 -956
  99. package/v2Components/SmsFallback/index.scss +0 -265
  100. package/v2Components/SmsFallback/messages.js +0 -78
  101. package/v2Components/SmsFallback/smsFallbackUtils.js +0 -119
  102. package/v2Components/SmsFallback/tests/SmsFallbackLocalSelector.test.js +0 -50
  103. package/v2Components/SmsFallback/tests/rcsSmsFallback.acceptance.test.js +0 -147
  104. package/v2Components/SmsFallback/tests/smsFallbackHandlers.test.js +0 -304
  105. package/v2Components/SmsFallback/tests/smsFallbackUi.test.js +0 -223
  106. package/v2Components/SmsFallback/tests/smsFallbackUtils.test.js +0 -309
  107. package/v2Components/SmsFallback/tests/useLocalTemplateList.test.js +0 -422
  108. package/v2Components/SmsFallback/useLocalTemplateList.js +0 -92
  109. package/v2Components/TemplatePreview/constants.js +0 -2
  110. package/v2Components/VarSegmentMessageEditor/constants.js +0 -2
  111. package/v2Components/VarSegmentMessageEditor/index.js +0 -125
  112. package/v2Components/VarSegmentMessageEditor/index.scss +0 -46
  113. package/v2Containers/CreativesContainer/CreativesSlideBoxWrapper.js +0 -43
  114. package/v2Containers/CreativesContainer/embeddedSlideboxUtils.js +0 -79
  115. package/v2Containers/CreativesContainer/tests/SlideBoxContent.localTemplates.test.js +0 -90
  116. package/v2Containers/CreativesContainer/tests/embeddedSlideboxUtils.test.js +0 -258
  117. package/v2Containers/CreativesContainer/tests/useLocalTemplatesProp.test.js +0 -125
  118. package/v2Containers/Rcs/rcsLibraryHydrationUtils.js +0 -225
  119. package/v2Containers/Rcs/tests/rcsLibraryHydrationUtils.test.js +0 -318
  120. package/v2Containers/Sms/smsFormDataHelpers.js +0 -67
  121. package/v2Containers/Sms/tests/smsFormDataHelpers.test.js +0 -253
  122. package/v2Containers/SmsTrai/Edit/index.scss +0 -121
  123. package/v2Containers/Templates/TemplatesActionBar.js +0 -101
  124. package/v2Containers/Templates/tests/TemplatesActionBar.test.js +0 -120
  125. package/v2Containers/Templates/tests/smsTemplatesListApi.test.js +0 -180
  126. package/v2Containers/Templates/utils/smsTemplatesListApi.js +0 -79
  127. package/v2Containers/TemplatesV2/tests/TemplatesV2.localTemplates.test.js +0 -131
@@ -32,37 +32,16 @@ import {
32
32
  DELIVERY_SETTING_KEY_SENDER_REPLY_TO,
33
33
  DELIVERY_SETTING_KEY_SOURCE_ACCOUNT_IDENTIFIER,
34
34
  DELIVERY_SETTING_KEY_SENDER_MOB_NUM,
35
- DELIVERY_SETTING_KEY_SMS_FALLBACK_DOMAIN_ID,
36
35
  } from './constants';
37
36
  import './ModifyDeliverySettings.scss';
38
37
 
39
38
  const findDefault = (array) => find(array, { default: true }) || (array && array[0]) || {};
40
39
 
41
- /**
42
- * Drop empty GSM rows. Optionally drop rows whose value equals domain name — some APIs duplicate
43
- * domain label as a bogus sender row; RCS/DLT often legitimately use the same string (e.g. DetailsForGW1).
44
- */
45
- const filterUsableGsmSendersForDomain = (domain, gsmSenders, { skipDomainNameEchoFilter = false } = {}) => {
46
- const normalizedDomainName =
47
- domain?.domainName != null ? String(domain.domainName).trim().toLowerCase() : '';
48
- return (gsmSenders || []).filter((gsmSenderRow) => {
49
- const rawValue = gsmSenderRow?.value;
50
- if (rawValue == null) return false;
51
- const trimmedSenderValue = String(rawValue).trim();
52
- if (!trimmedSenderValue) return false;
53
- const senderMatchesDomainLabel =
54
- normalizedDomainName && trimmedSenderValue.toLowerCase() === normalizedDomainName;
55
- if (!skipDomainNameEchoFilter && senderMatchesDomainLabel) return false;
56
- return true;
57
- });
58
- };
59
-
60
40
  const ModifyDeliverySettings = (props) => {
61
41
  const {
62
42
  channel,
63
43
  deliverySettings: initialSettings = {},
64
44
  senderDetailsOptions = [],
65
- smsFallbackSenderDetailsOptions = [],
66
45
  wecrmAccounts = [],
67
46
  onSaveDeliverySettings,
68
47
  onClose,
@@ -123,21 +102,17 @@ const ModifyDeliverySettings = (props) => {
123
102
  if (!(channel === CHANNELS.SMS && smsTraiDltEnabled)) {
124
103
  return allDomainOptions;
125
104
  }
126
- // Without template registered sender IDs, strict DLT filter removes every domain — keep full list.
127
- if (!registeredSenderIds?.length) {
128
- return allDomainOptions;
129
- }
130
105
 
131
- return allDomainOptions.filter((domain) => (domain?.gsmSenders || []).some(
132
- (gsmSenderOption) => registeredSenderIds?.includes(gsmSenderOption?.value),
106
+ return allDomainOptions.filter((domain) => (domain.gsmSenders || []).some(
107
+ (gsmId) => registeredSenderIds.includes(gsmId.value),
133
108
  ));
134
109
  }, [allDomainOptions, channel, registeredSenderIds, smsTraiDltEnabled]);
135
110
 
136
111
  const selectedDomain = useMemo(
137
112
  () => (senderDetailsOptions || []).find(
138
- (senderDomain) => senderDomain.domainId === get(localSettings, DELIVERY_SETTING_KEY_DOMAIN_ID),
113
+ (d) => d.domainId === get(localSettings, DELIVERY_SETTING_KEY_DOMAIN_ID),
139
114
  ) || {},
140
- [senderDetailsOptions, get(localSettings, DELIVERY_SETTING_KEY_DOMAIN_ID)],
115
+ [senderDetailsOptions, localSettings.domainId],
141
116
  );
142
117
  const {
143
118
  gsmSenders: selectedDomainGsmSenders = [],
@@ -145,103 +120,25 @@ const ModifyDeliverySettings = (props) => {
145
120
  emailRepliers: selectedDomainEmailRepliers = [],
146
121
  } = selectedDomain;
147
122
 
148
- const rcsSenderOptions = useMemo(
149
- () => {
150
- if (channel !== CHANNELS.RCS) return [];
151
- const rcsDomainRows = senderDetailsOptions || [];
152
- const selectedRcsDomainId = get(localSettings, DELIVERY_SETTING_KEY_DOMAIN_ID);
153
- const rcsDomainsForDropdown =
154
- selectedRcsDomainId != null && selectedRcsDomainId !== ''
155
- ? rcsDomainRows.filter((senderDomain) => senderDomain?.domainId === selectedRcsDomainId)
156
- : rcsDomainRows;
157
- return rcsDomainsForDropdown.flatMap((senderDomain) =>
158
- filterUsableGsmSendersForDomain(senderDomain, senderDomain?.gsmSenders, {
159
- skipDomainNameEchoFilter: true,
160
- }).map((gsmSenderRow) => ({
161
- value: senderDomain?.domainId != null && gsmSenderRow?.value != null
162
- ? `${senderDomain.domainId}|${gsmSenderRow.value}`
163
- : gsmSenderRow?.value,
164
- label: String(gsmSenderRow?.value ?? ''),
165
- })));
166
- },
167
- [channel, senderDetailsOptions, localSettings],
168
- );
169
-
170
- const rcsGsmSenderIdForSelect = useMemo(() => {
171
- const raw = get(localSettings, DELIVERY_SETTING_KEY_GSM_SENDER_ID);
172
- if (raw == null || raw === '') return undefined;
173
- const allowed = new Set((rcsSenderOptions || []).map((senderOption) => senderOption.value));
174
- return allowed.has(raw) ? raw : undefined;
175
- }, [localSettings, rcsSenderOptions]);
176
-
177
- const smsFallbackDomainOptions = useMemo(
178
- () => {
179
- const raw = (smsFallbackSenderDetailsOptions || []).map((senderDetails) => ({
180
- label: senderDetails.domainName || senderDetails.domainId,
181
- value: senderDetails.domainId,
182
- ...senderDetails,
183
- }));
184
- if (!(channel === CHANNELS.RCS && smsTraiDltEnabled && registeredSenderIds?.length)) {
185
- return raw;
186
- }
187
- return raw.filter((domain) => (domain?.gsmSenders || []).some(
188
- (gsmSenderOption) => registeredSenderIds?.includes(gsmSenderOption?.value),
189
- ));
190
- },
191
- [channel, smsFallbackSenderDetailsOptions, smsTraiDltEnabled, registeredSenderIds],
192
- );
193
-
194
- const smsSenderOptions = useMemo(
195
- () => {
196
- if (channel !== CHANNELS.RCS) return [];
197
- const smsFallbackDomainRows = smsFallbackSenderDetailsOptions || [];
198
- const selectedSmsFallbackDomainId = get(localSettings, DELIVERY_SETTING_KEY_SMS_FALLBACK_DOMAIN_ID);
199
- const smsFallbackDomainsForDropdown =
200
- selectedSmsFallbackDomainId != null && selectedSmsFallbackDomainId !== ''
201
- ? smsFallbackDomainRows.filter((senderDomain) => senderDomain?.domainId === selectedSmsFallbackDomainId)
202
- : smsFallbackDomainRows;
203
- const shouldFilterSmsSendersByDltRegistration = smsTraiDltEnabled && registeredSenderIds?.length;
204
- return smsFallbackDomainsForDropdown.flatMap((senderDomain) =>
205
- filterUsableGsmSendersForDomain(senderDomain, senderDomain?.gsmSenders)
206
- .filter((smsGsmSenderRow) =>
207
- !shouldFilterSmsSendersByDltRegistration || registeredSenderIds?.includes(smsGsmSenderRow?.value))
208
- .map((gsmSenderRow) => ({
209
- value: senderDomain?.domainId != null && gsmSenderRow?.value != null
210
- ? `${senderDomain.domainId}|${gsmSenderRow.value}`
211
- : gsmSenderRow?.value,
212
- label: String(gsmSenderRow?.value ?? ''),
213
- })));
214
- },
215
- [channel, smsFallbackSenderDetailsOptions, localSettings, smsTraiDltEnabled, registeredSenderIds],
216
- );
217
-
218
- const smsFallbackGsmIdForSelect = useMemo(() => {
219
- const raw = get(localSettings, DELIVERY_SETTING_KEY_CDMA_SENDER_ID);
220
- if (raw == null || raw === '') return undefined;
221
- const allowed = new Set((smsSenderOptions || []).map((senderOption) => senderOption.value));
222
- return allowed.has(raw) ? raw : undefined;
223
- }, [localSettings, smsSenderOptions]);
224
-
225
123
  const gsmOptions = useMemo(
226
124
  () => {
227
- const smsGsmSendersForSelect = channel === CHANNELS.SMS && smsTraiDltEnabled && registeredSenderIds?.length
228
- ? selectedDomainGsmSenders.filter((gsmSenderOption) =>
229
- registeredSenderIds?.includes(gsmSenderOption?.value))
125
+ const smsGsmSenders = channel === CHANNELS.SMS && smsTraiDltEnabled
126
+ ? selectedDomainGsmSenders.filter((gsmId) => registeredSenderIds.includes(gsmId.value))
230
127
  : selectedDomainGsmSenders;
231
128
 
232
- return smsGsmSendersForSelect.map((gsmSenderRow) => ({
233
- label: gsmSenderRow?.value || gsmSenderRow?.label,
234
- value: gsmSenderRow?.value,
129
+ return smsGsmSenders.map((o) => ({
130
+ label: o.value || o.label,
131
+ value: o.value,
235
132
  }));
236
133
  },
237
134
  [channel, registeredSenderIds, selectedDomainGsmSenders, smsTraiDltEnabled],
238
135
  );
239
136
 
240
137
  const emailSenderOptions = useMemo(
241
- () => selectedDomainEmailSenders.map((emailSenderRow) => ({
242
- label: emailSenderRow.value || emailSenderRow.label,
243
- value: emailSenderRow.value,
244
- senderLabel: emailSenderRow.label,
138
+ () => selectedDomainEmailSenders.map((o) => ({
139
+ label: o.value || o.label,
140
+ value: o.value,
141
+ senderLabel: o.label,
245
142
  })),
246
143
  [selectedDomainEmailSenders],
247
144
  );
@@ -307,53 +204,13 @@ const ModifyDeliverySettings = (props) => {
307
204
  });
308
205
  }, []);
309
206
 
310
- const onSmsFallbackDomainChange = useCallback(
311
- (value) => {
312
- setLocalSettings((prev) => {
313
- const next = cloneDeep(prev);
314
- next[DELIVERY_SETTING_KEY_SMS_FALLBACK_DOMAIN_ID] = value;
315
- const selectedSmsFallbackDomain = (smsFallbackSenderDetailsOptions || []).find(
316
- (senderDomain) => senderDomain?.domainId === value,
317
- );
318
- const usableSmsFallbackGsmSenders = filterUsableGsmSendersForDomain(
319
- selectedSmsFallbackDomain,
320
- selectedSmsFallbackDomain?.gsmSenders,
321
- );
322
- const shouldFilterSmsFallbackSendersByDltRegistration =
323
- channel === CHANNELS.RCS && smsTraiDltEnabled && registeredSenderIds?.length;
324
- const smsFallbackGsmSenders = shouldFilterSmsFallbackSendersByDltRegistration
325
- ? usableSmsFallbackGsmSenders.filter((smsGsmSenderRow) =>
326
- registeredSenderIds?.includes(smsGsmSenderRow?.value))
327
- : usableSmsFallbackGsmSenders;
328
- const firstSmsFallbackGsmSender = smsFallbackGsmSenders[0];
329
- const composite = selectedSmsFallbackDomain?.domainId != null && firstSmsFallbackGsmSender?.value != null
330
- ? `${selectedSmsFallbackDomain.domainId}|${firstSmsFallbackGsmSender.value}`
331
- : (firstSmsFallbackGsmSender?.value || '');
332
- next[DELIVERY_SETTING_KEY_CDMA_SENDER_ID] = composite;
333
- return next;
334
- });
335
- },
336
- [channel, smsFallbackSenderDetailsOptions, smsTraiDltEnabled, registeredSenderIds],
337
- );
338
-
339
207
  const onDomainChange = useCallback(
340
208
  (value) => {
341
- const domain = domainOptions.find((domainOption) => domainOption.value === value);
209
+ const domain = domainOptions.find((d) => d.value === value);
342
210
  updateSetting(DELIVERY_SETTING_KEY_DOMAIN_ID, value);
343
211
  if (domain?.dgmId != null) updateSetting(DELIVERY_SETTING_KEY_DOMAIN_GATEWAY_MAP_ID, domain.dgmId);
344
- if (channel === CHANNELS.RCS && domain) {
345
- const usableRcsGsmSenders = filterUsableGsmSendersForDomain(domain, domain?.gsmSenders, {
346
- skipDomainNameEchoFilter: true,
347
- });
348
- const firstRcsGsmSender = usableRcsGsmSenders[0];
349
- const composite = domain?.domainId != null && firstRcsGsmSender?.value != null
350
- ? `${domain.domainId}|${firstRcsGsmSender.value}`
351
- : (firstRcsGsmSender?.value || '');
352
- updateSetting(DELIVERY_SETTING_KEY_GSM_SENDER_ID, composite);
353
- return;
354
- }
355
212
  if (channel === CHANNELS.SMS && domain) {
356
- const smsGsmSenders = smsTraiDltEnabled && registeredSenderIds?.length
213
+ const smsGsmSenders = smsTraiDltEnabled
357
214
  ? (domain.gsmSenders || []).filter((gsmId) => registeredSenderIds.includes(gsmId.value))
358
215
  : domain.gsmSenders;
359
216
  const def = findDefault(smsGsmSenders);
@@ -373,20 +230,9 @@ const ModifyDeliverySettings = (props) => {
373
230
  );
374
231
 
375
232
  const handleDone = useCallback(() => {
376
- const next = cloneDeep(localSettings);
377
- if (channel === CHANNELS.RCS) {
378
- const rawRcs = get(next, DELIVERY_SETTING_KEY_GSM_SENDER_ID);
379
- if (rawRcs && !(rcsSenderOptions || []).some((senderOption) => senderOption.value === rawRcs)) {
380
- next[DELIVERY_SETTING_KEY_GSM_SENDER_ID] = '';
381
- }
382
- const rawSms = get(next, DELIVERY_SETTING_KEY_CDMA_SENDER_ID);
383
- if (rawSms && !(smsSenderOptions || []).some((senderOption) => senderOption.value === rawSms)) {
384
- next[DELIVERY_SETTING_KEY_CDMA_SENDER_ID] = '';
385
- }
386
- }
387
- onSaveDeliverySettings(next);
233
+ onSaveDeliverySettings(localSettings);
388
234
  if (onClose) onClose();
389
- }, [channel, localSettings, onSaveDeliverySettings, onClose, rcsSenderOptions, smsSenderOptions]);
235
+ }, [localSettings, onSaveDeliverySettings, onClose]);
390
236
 
391
237
  const renderSelectRow = useCallback(
392
238
  ({
@@ -440,7 +286,7 @@ const ModifyDeliverySettings = (props) => {
440
286
  value: get(localSettings, DELIVERY_SETTING_KEY_SENDER_EMAIL),
441
287
  onChange: (val) => {
442
288
  const sender = selectedDomainEmailSenders.find(
443
- (emailSenderRow) => emailSenderRow.value === val,
289
+ (s) => s.value === val,
444
290
  );
445
291
  updateSetting(DELIVERY_SETTING_KEY_SENDER_EMAIL, val);
446
292
  updateSetting(DELIVERY_SETTING_KEY_SENDER_LABEL, sender?.label || val);
@@ -452,7 +298,7 @@ const ModifyDeliverySettings = (props) => {
452
298
  value: get(localSettings, DELIVERY_SETTING_KEY_SENDER_LABEL) || '',
453
299
  onChange: (val) => {
454
300
  const sender = selectedDomainEmailSenders.find(
455
- (emailSenderRow) => (emailSenderRow.label || emailSenderRow.value) === val,
301
+ (s) => (s.label || s.value) === val,
456
302
  );
457
303
  if (sender) {
458
304
  updateSetting(DELIVERY_SETTING_KEY_SENDER_EMAIL, sender.value);
@@ -480,7 +326,7 @@ const ModifyDeliverySettings = (props) => {
480
326
  onChange: (val) => {
481
327
  updateSetting(DELIVERY_SETTING_KEY_SOURCE_ACCOUNT_IDENTIFIER, val);
482
328
  const domain = (senderDetailsOptions || []).find(
483
- (whatsappAccountRow) => whatsappAccountRow.sourceAccountIdentifier === val,
329
+ (d) => d.sourceAccountIdentifier === val,
484
330
  );
485
331
  const first = domain?.gsmSenders?.[0];
486
332
  updateSetting(DELIVERY_SETTING_KEY_SENDER_MOB_NUM, first?.value || '');
@@ -494,39 +340,10 @@ const ModifyDeliverySettings = (props) => {
494
340
  onChange: (val) => updateSetting(DELIVERY_SETTING_KEY_SENDER_MOB_NUM, val),
495
341
  },
496
342
  ];
497
- const rcsFields = [
498
- {
499
- titleMessage: messages.rcsDomainLabel,
500
- options: domainOptions,
501
- value: get(localSettings, DELIVERY_SETTING_KEY_DOMAIN_ID),
502
- onChange: (val) => onDomainChange(val),
503
- },
504
- {
505
- titleMessage: messages.rcsSenderIdLabel,
506
- options: rcsSenderOptions,
507
- value: rcsGsmSenderIdForSelect,
508
- onChange: (val) => updateSetting(DELIVERY_SETTING_KEY_GSM_SENDER_ID, val),
509
- },
510
- ...((smsFallbackSenderDetailsOptions || []).length > 0 ? [
511
- {
512
- titleMessage: messages.fallbackSmsDomainLabel,
513
- options: smsFallbackDomainOptions,
514
- value: get(localSettings, DELIVERY_SETTING_KEY_SMS_FALLBACK_DOMAIN_ID),
515
- onChange: onSmsFallbackDomainChange,
516
- },
517
- {
518
- titleMessage: messages.fallbackSmsSenderIdLabel,
519
- options: smsSenderOptions,
520
- value: smsFallbackGsmIdForSelect,
521
- onChange: (val) => updateSetting(DELIVERY_SETTING_KEY_CDMA_SENDER_ID, val),
522
- },
523
- ] : []),
524
- ];
525
343
  const byChannel = {
526
344
  [CHANNELS.SMS]: smsFields,
527
345
  [CHANNELS.EMAIL]: emailFields,
528
346
  [CHANNELS.WHATSAPP]: whatsappFields,
529
- [CHANNELS.RCS]: rcsFields,
530
347
  };
531
348
  return byChannel[channel] || [];
532
349
  }, [
@@ -539,13 +356,6 @@ const ModifyDeliverySettings = (props) => {
539
356
  wecrmAccountOptions,
540
357
  whatsappAccountOptionsForDisplay,
541
358
  whatsappSenderOptions,
542
- rcsSenderOptions,
543
- rcsGsmSenderIdForSelect,
544
- smsSenderOptions,
545
- smsFallbackGsmIdForSelect,
546
- smsFallbackDomainOptions,
547
- smsFallbackSenderDetailsOptions,
548
- onSmsFallbackDomainChange,
549
359
  localSettings,
550
360
  selectedDomainEmailSenders,
551
361
  senderDetailsOptions,
@@ -580,10 +390,9 @@ const ModifyDeliverySettings = (props) => {
580
390
  };
581
391
 
582
392
  ModifyDeliverySettings.propTypes = {
583
- channel: PropTypes.oneOf([CHANNELS.SMS, CHANNELS.EMAIL, CHANNELS.WHATSAPP, CHANNELS.RCS]).isRequired,
393
+ channel: PropTypes.oneOf([CHANNELS.SMS, CHANNELS.EMAIL, CHANNELS.WHATSAPP]).isRequired,
584
394
  deliverySettings: PropTypes.object,
585
395
  senderDetailsOptions: PropTypes.array,
586
- smsFallbackSenderDetailsOptions: PropTypes.array,
587
396
  wecrmAccounts: PropTypes.array,
588
397
  onSaveDeliverySettings: PropTypes.func.isRequired,
589
398
  onClose: PropTypes.func,
@@ -599,7 +408,6 @@ ModifyDeliverySettings.propTypes = {
599
408
  ModifyDeliverySettings.defaultProps = {
600
409
  deliverySettings: {},
601
410
  senderDetailsOptions: [],
602
- smsFallbackSenderDetailsOptions: [],
603
411
  wecrmAccounts: [],
604
412
  onClose: undefined,
605
413
  isLoading: false,
@@ -21,8 +21,6 @@ export const DELIVERY_SETTING_KEY_SENDER_LABEL = 'senderLabel';
21
21
  export const DELIVERY_SETTING_KEY_SENDER_REPLY_TO = 'senderReplyTo';
22
22
  export const DELIVERY_SETTING_KEY_SOURCE_ACCOUNT_IDENTIFIER = 'sourceAccountIdentifier';
23
23
  export const DELIVERY_SETTING_KEY_SENDER_MOB_NUM = 'senderMobNum';
24
- /** RCS: SMS fallback domain (separate from primary RCS domainId) */
25
- export const DELIVERY_SETTING_KEY_SMS_FALLBACK_DOMAIN_ID = 'smsFallbackDomainId';
26
24
 
27
25
  /** data-testid for delivery settings edit icon */
28
26
  export const TEST_ID_DELIVERY_SETTINGS_EDIT = 'delivery-settings-edit';
@@ -34,7 +32,6 @@ export const CHANNELS_WITH_DELIVERY_SETTINGS = [
34
32
  CHANNELS.SMS,
35
33
  CHANNELS.EMAIL,
36
34
  CHANNELS.WHATSAPP,
37
- CHANNELS.RCS,
38
35
  ];
39
36
 
40
37
  /** Default empty delivery setting per channel (campaigns-style shape) */
@@ -59,21 +56,8 @@ export const DEFAULT_DELIVERY_SETTING_WHATSAPP = {
59
56
  sourceAccountIdentifier: '',
60
57
  };
61
58
 
62
- /** RCS: gsmSenderId = RCS sender, cdmaSenderId = SMS fallback sender (reuse same keys) */
63
- export const DEFAULT_DELIVERY_SETTING_RCS = {
64
- domainId: null,
65
- domainGatewayMapId: null,
66
- gsmSenderId: '',
67
- smsFallbackDomainId: null,
68
- cdmaSenderId: '',
69
- };
70
-
71
59
  export const DEFAULT_DELIVERY_SETTINGS_BY_CHANNEL = {
72
60
  [CHANNELS.SMS]: DEFAULT_DELIVERY_SETTING_SMS,
73
61
  [CHANNELS.EMAIL]: DEFAULT_DELIVERY_SETTING_EMAIL,
74
62
  [CHANNELS.WHATSAPP]: DEFAULT_DELIVERY_SETTING_WHATSAPP,
75
- [CHANNELS.RCS]: DEFAULT_DELIVERY_SETTING_RCS,
76
63
  };
77
-
78
- /** API `contactInfo.type` keys that map to RCS-style GSM sender rows (env-specific naming). */
79
- export const RCS_CONTACT_INFO_GSM_TYPE_KEYS = ['gsm_sender_id', 'rcs_sender_id', 'rcs_sender'];
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * DeliverySettings — summary row + CapSlideBox trigger for Test and Preview.
3
- * Rendered for SMS, Email, WhatsApp, RCS (ModifyDeliverySettings). RCS uses gsmSenderId + cdmaSenderId (SMS fallback).
3
+ * Rendered only for SMS, Email, WhatsApp. Uses cap-ui-library only.
4
4
  *
5
5
  * Reference: cap-campaigns-v2 DeliverySettingsV2 (summary + modify panel).
6
6
  */
7
7
 
8
- import React, { useState, useCallback, useMemo } from "react";
8
+ import React, { useState, useCallback } from "react";
9
9
  import PropTypes from "prop-types";
10
10
  import CapRow from "@capillarytech/cap-ui-library/CapRow";
11
11
  import CapHeading from "@capillarytech/cap-ui-library/CapHeading";
@@ -22,7 +22,6 @@ import {
22
22
  SUMMARY_EMPTY_PLACEHOLDER,
23
23
  DELIVERY_SETTING_KEY_DOMAIN_ID,
24
24
  DELIVERY_SETTING_KEY_GSM_SENDER_ID,
25
- DELIVERY_SETTING_KEY_CDMA_SENDER_ID,
26
25
  DELIVERY_SETTING_KEY_SENDER_EMAIL,
27
26
  DELIVERY_SETTING_KEY_SENDER_LABEL,
28
27
  DELIVERY_SETTING_KEY_SENDER_REPLY_TO,
@@ -36,7 +35,7 @@ const DeliverySettings = (props) => {
36
35
  const {
37
36
  channel,
38
37
  deliverySettings = {},
39
- senderDetailsByChannel = {},
38
+ senderDetailsOptions = [],
40
39
  wecrmAccounts = [],
41
40
  onSaveDeliverySettings,
42
41
  isLoadingSenderDetails,
@@ -44,7 +43,6 @@ const DeliverySettings = (props) => {
44
43
  smsTraiDltEnabled,
45
44
  registeredSenderIds,
46
45
  whatsappAccountFromForm,
47
- isChannelSmsFallbackPreviewEnabled,
48
46
  } = props;
49
47
 
50
48
  const [isSlideBoxOpen, setSlideBoxOpen] = useState(false);
@@ -60,68 +58,17 @@ const DeliverySettings = (props) => {
60
58
  [onSaveDeliverySettings, closeSlideBox]
61
59
  );
62
60
 
63
- const senderDetailsOptions = useMemo(
64
- () => (senderDetailsByChannel[channel] || []),
65
- [senderDetailsByChannel, channel],
66
- );
67
- const smsDomainsForRcs = useMemo(
68
- () => (channel === CHANNELS.RCS ? (senderDetailsByChannel[CHANNELS.SMS] || []) : []),
69
- [channel, senderDetailsByChannel],
70
- );
71
-
72
61
  if (!CHANNELS_WITH_DELIVERY_SETTINGS.includes(channel)) {
73
62
  return null;
74
63
  }
75
64
 
76
65
  const notConfiguredLabel = formatMessage(messages.notConfigured);
77
66
 
78
- const getDisplayFromDomains = (domains, compositeValue) => {
79
- if (!compositeValue || !domains?.length) return compositeValue || SUMMARY_EMPTY_PLACEHOLDER;
80
- for (const senderDomain of domains) {
81
- for (const gsmSenderRow of senderDomain.gsmSenders || []) {
82
- const value = senderDomain.domainId != null && gsmSenderRow.value != null
83
- ? `${senderDomain.domainId}|${gsmSenderRow.value}`
84
- : gsmSenderRow.value;
85
- if (value === compositeValue && (senderDomain.domainName || gsmSenderRow.value)) {
86
- return [senderDomain.domainName, gsmSenderRow.value].filter(Boolean).join(' · ');
87
- }
88
- }
89
- }
90
- return compositeValue || SUMMARY_EMPTY_PLACEHOLDER;
91
- };
92
-
93
- /** RCS summary: show sender ID only (no "domain · sender"). */
94
- const getSenderIdOnlyFromComposite = (domains, compositeValue) => {
95
- if (!compositeValue || !domains?.length) return compositeValue || SUMMARY_EMPTY_PLACEHOLDER;
96
- for (const senderDomain of domains) {
97
- for (const gsmSenderRow of senderDomain.gsmSenders || []) {
98
- const value = senderDomain.domainId != null && gsmSenderRow.value != null
99
- ? `${senderDomain.domainId}|${gsmSenderRow.value}`
100
- : gsmSenderRow.value;
101
- if (value === compositeValue && gsmSenderRow.value != null) {
102
- return String(gsmSenderRow.value);
103
- }
104
- }
105
- }
106
- return compositeValue || SUMMARY_EMPTY_PLACEHOLDER;
107
- };
108
-
109
67
  const getSummaryText = () => {
110
68
  const empty = SUMMARY_EMPTY_PLACEHOLDER;
111
- if (channel === CHANNELS.RCS) {
112
- const rcsVal = get(deliverySettings, DELIVERY_SETTING_KEY_GSM_SENDER_ID) || '';
113
- const smsVal = get(deliverySettings, DELIVERY_SETTING_KEY_CDMA_SENDER_ID) || '';
114
- const summaryRcs = {
115
- rcsSenderId: getSenderIdOnlyFromComposite(senderDetailsOptions, rcsVal),
116
- };
117
- if (isChannelSmsFallbackPreviewEnabled) {
118
- summaryRcs.smsFallbackSenderId = getSenderIdOnlyFromComposite(smsDomainsForRcs, smsVal);
119
- }
120
- return summaryRcs;
121
- }
122
69
  if (channel === CHANNELS.SMS) {
123
70
  const domain = (senderDetailsOptions || []).find(
124
- (senderDomain) => senderDomain.domainId === get(deliverySettings, DELIVERY_SETTING_KEY_DOMAIN_ID),
71
+ (d) => d.domainId === get(deliverySettings, DELIVERY_SETTING_KEY_DOMAIN_ID),
125
72
  );
126
73
  const domainName = domain?.domainName || empty;
127
74
  const senderId = get(deliverySettings, DELIVERY_SETTING_KEY_GSM_SENDER_ID) || empty;
@@ -129,7 +76,7 @@ const DeliverySettings = (props) => {
129
76
  }
130
77
  if (channel === CHANNELS.EMAIL) {
131
78
  const domain = (senderDetailsOptions || []).find(
132
- (senderDomain) => senderDomain.domainId === get(deliverySettings, DELIVERY_SETTING_KEY_DOMAIN_ID),
79
+ (d) => d.domainId === get(deliverySettings, DELIVERY_SETTING_KEY_DOMAIN_ID),
133
80
  );
134
81
  const emailDomain = domain?.domainName || empty;
135
82
  const senderEmail = get(deliverySettings, DELIVERY_SETTING_KEY_SENDER_EMAIL) || empty;
@@ -156,12 +103,7 @@ const DeliverySettings = (props) => {
156
103
 
157
104
  const summary = getSummaryText();
158
105
  let hasValues = false;
159
- if (channel === CHANNELS.RCS) {
160
- hasValues = (summary.rcsSenderId && summary.rcsSenderId !== SUMMARY_EMPTY_PLACEHOLDER)
161
- || (isChannelSmsFallbackPreviewEnabled
162
- && summary.smsFallbackSenderId
163
- && summary.smsFallbackSenderId !== SUMMARY_EMPTY_PLACEHOLDER);
164
- } else if (channel === CHANNELS.SMS) {
106
+ if (channel === CHANNELS.SMS) {
165
107
  hasValues = summary.senderDomain !== SUMMARY_EMPTY_PLACEHOLDER
166
108
  || summary.senderId !== SUMMARY_EMPTY_PLACEHOLDER;
167
109
  } else if (channel === CHANNELS.EMAIL) {
@@ -180,15 +122,6 @@ const DeliverySettings = (props) => {
180
122
  const getSummaryObject = () => {
181
123
  if (!hasValues) return null;
182
124
  const label = (msg) => formatMessage(msg);
183
- if (channel === CHANNELS.RCS) {
184
- const rcsSummary = {
185
- [label(messages.rcsSenderIdLabel)]: summary.rcsSenderId,
186
- };
187
- if (isChannelSmsFallbackPreviewEnabled) {
188
- rcsSummary[label(messages.fallbackSmsSenderIdLabel)] = summary.smsFallbackSenderId;
189
- }
190
- return rcsSummary;
191
- }
192
125
  if (channel === CHANNELS.SMS) {
193
126
  return {
194
127
  [label(messages.senderDomainSummary)]: summary.senderDomain,
@@ -232,7 +165,7 @@ const DeliverySettings = (props) => {
232
165
  Object.entries(summaryObject).map(([key, value]) => (
233
166
  <CapRow type="flex" key={key} className="delivery-settings__summary-entry">
234
167
  <CapLabel type="label1" className="delivery-settings__summary-key">{key}</CapLabel>
235
- <CapLabel type="label9" className="delivery-settings__summary-value">
168
+ <CapLabel type="label9">
236
169
  :
237
170
  {' '}
238
171
  {value}
@@ -261,11 +194,6 @@ const DeliverySettings = (props) => {
261
194
  channel={channel}
262
195
  deliverySettings={deliverySettings}
263
196
  senderDetailsOptions={senderDetailsOptions}
264
- smsFallbackSenderDetailsOptions={
265
- channel === CHANNELS.RCS && isChannelSmsFallbackPreviewEnabled
266
- ? smsDomainsForRcs
267
- : undefined
268
- }
269
197
  wecrmAccounts={wecrmAccounts}
270
198
  onSaveDeliverySettings={handleSave}
271
199
  onClose={closeSlideBox}
@@ -285,9 +213,9 @@ const DeliverySettings = (props) => {
285
213
  DeliverySettings.propTypes = {
286
214
  channel: PropTypes.string.isRequired,
287
215
  deliverySettings: PropTypes.object,
288
- senderDetailsByChannel: PropTypes.object,
216
+ senderDetailsOptions: PropTypes.array,
289
217
  wecrmAccounts: PropTypes.array,
290
- onSaveDeliverySettings: PropTypes.func,
218
+ onSaveDeliverySettings: PropTypes.func.isRequired,
291
219
  isLoadingSenderDetails: PropTypes.bool,
292
220
  formatMessage: PropTypes.func,
293
221
  smsTraiDltEnabled: PropTypes.bool,
@@ -295,20 +223,17 @@ DeliverySettings.propTypes = {
295
223
  whatsappAccountFromForm: PropTypes.shape({
296
224
  accountName: PropTypes.string,
297
225
  }),
298
- isChannelSmsFallbackPreviewEnabled: PropTypes.bool,
299
226
  };
300
227
 
301
228
  DeliverySettings.defaultProps = {
302
229
  deliverySettings: {},
303
- senderDetailsByChannel: {},
230
+ senderDetailsOptions: [],
304
231
  wecrmAccounts: [],
305
- onSaveDeliverySettings: () => {},
306
232
  isLoadingSenderDetails: false,
307
233
  formatMessage: undefined,
308
234
  smsTraiDltEnabled: false,
309
235
  registeredSenderIds: [],
310
236
  whatsappAccountFromForm: undefined,
311
- isChannelSmsFallbackPreviewEnabled: false,
312
237
  };
313
238
 
314
239
  export default DeliverySettings;
@@ -108,34 +108,4 @@ export default defineMessages({
108
108
  id: `${prefix}.disabledMessage`,
109
109
  defaultMessage: 'Message template selected belongs to this account',
110
110
  },
111
- /** RCS: primary domain (slidebox) */
112
- rcsDomainLabel: {
113
- id: `${prefix}.rcsDomainLabel`,
114
- defaultMessage: 'RCS domain:',
115
- },
116
- /** RCS: SMS fallback domain (slidebox) */
117
- fallbackSmsDomainLabel: {
118
- id: `${prefix}.fallbackSmsDomainLabel`,
119
- defaultMessage: 'Fallback SMS domain:',
120
- },
121
- /** RCS: "RCS sender ID" */
122
- rcsSenderIdLabel: {
123
- id: `${prefix}.rcsSenderIdLabel`,
124
- defaultMessage: 'RCS sender ID',
125
- },
126
- /** RCS: "Fallback SMS sender ID" */
127
- fallbackSmsSenderIdLabel: {
128
- id: `${prefix}.fallbackSmsSenderIdLabel`,
129
- defaultMessage: 'Fallback SMS sender ID',
130
- },
131
- /** RCS: "Domain" (for domain · sender ID display) */
132
- domainLabel: {
133
- id: `${prefix}.domainLabel`,
134
- defaultMessage: 'Domain',
135
- },
136
- /** RCS: placeholder for sender ID dropdown */
137
- selectSenderId: {
138
- id: `${prefix}.selectSenderId`,
139
- defaultMessage: 'Select sender ID',
140
- },
141
111
  });