@capillarytech/creatives-library 9.0.15-alpha.1 → 9.0.16

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 (132) hide show
  1. package/constants/unified.js +0 -29
  2. package/global-styles.js +1 -1
  3. package/package.json +1 -1
  4. package/services/tests/api.test.js +20 -35
  5. package/utils/commonUtils.js +1 -19
  6. package/v2Components/CapActionButton/constants.js +0 -7
  7. package/v2Components/CapActionButton/index.js +109 -168
  8. package/v2Components/CapActionButton/index.scss +5 -156
  9. package/v2Components/CapActionButton/messages.js +3 -19
  10. package/v2Components/CapActionButton/tests/index.test.js +18 -42
  11. package/v2Components/CapImageUpload/index.js +2 -2
  12. package/v2Components/CapTagList/index.js +0 -10
  13. package/v2Components/CommonTestAndPreview/CustomValuesEditor.js +48 -70
  14. package/v2Components/CommonTestAndPreview/DeliverySettings/DeliverySettings.scss +2 -8
  15. package/v2Components/CommonTestAndPreview/DeliverySettings/ModifyDeliverySettings.js +21 -214
  16. package/v2Components/CommonTestAndPreview/DeliverySettings/constants.js +0 -16
  17. package/v2Components/CommonTestAndPreview/DeliverySettings/index.js +9 -83
  18. package/v2Components/CommonTestAndPreview/DeliverySettings/messages.js +0 -30
  19. package/v2Components/CommonTestAndPreview/DeliverySettings/utils/parseSenderDetailsResponse.js +11 -60
  20. package/v2Components/CommonTestAndPreview/SendTestMessage.js +5 -10
  21. package/v2Components/CommonTestAndPreview/UnifiedPreview/RcsPreviewContent.js +23 -201
  22. package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +76 -355
  23. package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +8 -155
  24. package/v2Components/CommonTestAndPreview/_commonTestAndPreview.scss +0 -11
  25. package/v2Components/CommonTestAndPreview/constants.js +2 -38
  26. package/v2Components/CommonTestAndPreview/index.js +222 -761
  27. package/v2Components/CommonTestAndPreview/messages.js +3 -45
  28. package/v2Components/CommonTestAndPreview/sagas.js +6 -25
  29. package/v2Components/CommonTestAndPreview/tests/CommonTestAndPreview.addTestCustomer.test.js +0 -1
  30. package/v2Components/CommonTestAndPreview/tests/CustomValuesEditor.test.js +267 -284
  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 -133
  39. package/v2Components/CommonTestAndPreview/tests/sagas.test.js +24 -31
  40. package/v2Components/TemplatePreview/_templatePreview.scss +22 -41
  41. package/v2Components/TemplatePreview/index.js +31 -143
  42. package/v2Components/TemplatePreview/tests/index.test.js +0 -142
  43. package/v2Components/TestAndPreviewSlidebox/CustomValuesEditor.js +6 -6
  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/CommunicationFlow/Tests/CommunicationFlow.test.js +1 -4
  48. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/DeliverySettingsSection.test.js +0 -4
  49. package/v2Containers/CommunicationFlow/steps/DeliverySettingsStep/Tests/SenderDetails.test.js +20 -20
  50. package/v2Containers/CreativesContainer/SlideBoxContent.js +7 -36
  51. package/v2Containers/CreativesContainer/SlideBoxFooter.js +5 -14
  52. package/v2Containers/CreativesContainer/SlideBoxHeader.js +5 -36
  53. package/v2Containers/CreativesContainer/constants.js +0 -11
  54. package/v2Containers/CreativesContainer/index.js +104 -323
  55. package/v2Containers/CreativesContainer/index.scss +1 -83
  56. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +34 -79
  57. package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +16 -79
  58. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +0 -8
  59. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +90 -333
  60. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +15 -20
  61. package/v2Containers/CreativesContainer/tests/index.test.js +9 -71
  62. package/v2Containers/Email/index.js +5 -2
  63. package/v2Containers/MobilePush/Create/test/saga.test.js +2 -2
  64. package/v2Containers/Rcs/constants.js +11 -131
  65. package/v2Containers/Rcs/index.js +810 -2605
  66. package/v2Containers/Rcs/index.scss +8 -289
  67. package/v2Containers/Rcs/messages.js +3 -34
  68. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +38537 -73535
  69. package/v2Containers/Rcs/tests/__snapshots__/utils.test.js.snap +8 -0
  70. package/v2Containers/Rcs/tests/index.test.js +36 -147
  71. package/v2Containers/Rcs/tests/mockData.js +0 -38
  72. package/v2Containers/Rcs/tests/utils.test.js +30 -646
  73. package/v2Containers/Rcs/utils.js +11 -478
  74. package/v2Containers/Sms/Create/index.js +48 -115
  75. package/v2Containers/SmsTrai/Create/index.js +4 -9
  76. package/v2Containers/SmsTrai/Edit/constants.js +0 -2
  77. package/v2Containers/SmsTrai/Edit/index.js +169 -678
  78. package/v2Containers/SmsTrai/Edit/messages.js +4 -14
  79. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +2854 -5455
  80. package/v2Containers/SmsWrapper/index.js +8 -37
  81. package/v2Containers/TagList/index.js +0 -6
  82. package/v2Containers/Templates/_templates.scss +12 -171
  83. package/v2Containers/Templates/actions.js +0 -11
  84. package/v2Containers/Templates/constants.js +0 -2
  85. package/v2Containers/Templates/index.js +55 -125
  86. package/v2Containers/Templates/sagas.js +13 -57
  87. package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +1015 -1060
  88. package/v2Containers/Templates/tests/sagas.test.js +16 -199
  89. package/v2Containers/TemplatesV2/TemplatesV2.style.js +1 -72
  90. package/v2Containers/TemplatesV2/index.js +23 -86
  91. package/v2Containers/WeChat/MapTemplates/test/saga.test.js +9 -9
  92. package/v2Containers/Whatsapp/index.js +20 -3
  93. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +34 -578
  94. package/utils/rcsPayloadUtils.js +0 -92
  95. package/utils/templateVarUtils.js +0 -201
  96. package/utils/tests/rcsPayloadUtils.test.js +0 -226
  97. package/utils/tests/templateVarUtils.test.js +0 -204
  98. package/v2Components/CommonTestAndPreview/previewApiUtils.js +0 -59
  99. package/v2Components/CommonTestAndPreview/tests/previewApiUtils.test.js +0 -67
  100. package/v2Components/CommonTestAndPreview/utils.js +0 -84
  101. package/v2Components/SmsFallback/SmsFallbackLocalSelector.js +0 -91
  102. package/v2Components/SmsFallback/constants.js +0 -94
  103. package/v2Components/SmsFallback/index.js +0 -958
  104. package/v2Components/SmsFallback/index.scss +0 -266
  105. package/v2Components/SmsFallback/messages.js +0 -78
  106. package/v2Components/SmsFallback/smsFallbackUtils.js +0 -120
  107. package/v2Components/SmsFallback/tests/SmsFallbackLocalSelector.test.js +0 -50
  108. package/v2Components/SmsFallback/tests/rcsSmsFallback.acceptance.test.js +0 -147
  109. package/v2Components/SmsFallback/tests/smsFallbackHandlers.test.js +0 -304
  110. package/v2Components/SmsFallback/tests/smsFallbackUi.test.js +0 -208
  111. package/v2Components/SmsFallback/tests/smsFallbackUtils.test.js +0 -309
  112. package/v2Components/SmsFallback/tests/useLocalTemplateList.test.js +0 -422
  113. package/v2Components/SmsFallback/useLocalTemplateList.js +0 -92
  114. package/v2Components/TemplatePreview/constants.js +0 -2
  115. package/v2Components/VarSegmentMessageEditor/constants.js +0 -2
  116. package/v2Components/VarSegmentMessageEditor/index.js +0 -125
  117. package/v2Components/VarSegmentMessageEditor/index.scss +0 -46
  118. package/v2Containers/CreativesContainer/CreativesSlideBoxWrapper.js +0 -17
  119. package/v2Containers/CreativesContainer/embeddedSlideboxUtils.js +0 -79
  120. package/v2Containers/CreativesContainer/tests/SlideBoxContent.localTemplates.test.js +0 -90
  121. package/v2Containers/CreativesContainer/tests/embeddedSlideboxUtils.test.js +0 -258
  122. package/v2Containers/CreativesContainer/tests/useLocalTemplatesProp.test.js +0 -125
  123. package/v2Containers/Rcs/rcsLibraryHydrationUtils.js +0 -227
  124. package/v2Containers/Rcs/tests/rcsLibraryHydrationUtils.test.js +0 -318
  125. package/v2Containers/Sms/smsFormDataHelpers.js +0 -67
  126. package/v2Containers/Sms/tests/smsFormDataHelpers.test.js +0 -253
  127. package/v2Containers/SmsTrai/Edit/index.scss +0 -126
  128. package/v2Containers/Templates/TemplatesActionBar.js +0 -101
  129. package/v2Containers/Templates/tests/TemplatesActionBar.test.js +0 -120
  130. package/v2Containers/Templates/tests/smsTemplatesListApi.test.js +0 -180
  131. package/v2Containers/Templates/utils/smsTemplatesListApi.js +0 -79
  132. 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, { skipDomainNameEchoFilter: true })
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,54 +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 shouldFilterSmsFallbackSendersByDltRegistration =
319
- channel === CHANNELS.RCS && smsTraiDltEnabled && registeredSenderIds?.length;
320
- const usableSmsFallbackGsmSenders = filterUsableGsmSendersForDomain(
321
- selectedSmsFallbackDomain,
322
- selectedSmsFallbackDomain?.gsmSenders,
323
- { skipDomainNameEchoFilter: !!shouldFilterSmsFallbackSendersByDltRegistration },
324
- );
325
- const smsFallbackGsmSenders = shouldFilterSmsFallbackSendersByDltRegistration
326
- ? usableSmsFallbackGsmSenders.filter((smsGsmSenderRow) =>
327
- registeredSenderIds?.includes(smsGsmSenderRow?.value))
328
- : usableSmsFallbackGsmSenders;
329
- const firstSmsFallbackGsmSender = smsFallbackGsmSenders[0];
330
- const composite = selectedSmsFallbackDomain?.domainId != null && firstSmsFallbackGsmSender?.value != null
331
- ? `${selectedSmsFallbackDomain.domainId}|${firstSmsFallbackGsmSender.value}`
332
- : (firstSmsFallbackGsmSender?.value || '');
333
- next[DELIVERY_SETTING_KEY_CDMA_SENDER_ID] = composite;
334
- return next;
335
- });
336
- },
337
- [channel, smsFallbackSenderDetailsOptions, smsTraiDltEnabled, registeredSenderIds],
338
- );
339
-
340
207
  const onDomainChange = useCallback(
341
208
  (value) => {
342
- const domain = domainOptions.find((domainOption) => domainOption.value === value);
209
+ const domain = domainOptions.find((d) => d.value === value);
343
210
  updateSetting(DELIVERY_SETTING_KEY_DOMAIN_ID, value);
344
211
  if (domain?.dgmId != null) updateSetting(DELIVERY_SETTING_KEY_DOMAIN_GATEWAY_MAP_ID, domain.dgmId);
345
- if (channel === CHANNELS.RCS && domain) {
346
- const usableRcsGsmSenders = filterUsableGsmSendersForDomain(domain, domain?.gsmSenders, {
347
- skipDomainNameEchoFilter: true,
348
- });
349
- const firstRcsGsmSender = usableRcsGsmSenders[0];
350
- const composite = domain?.domainId != null && firstRcsGsmSender?.value != null
351
- ? `${domain.domainId}|${firstRcsGsmSender.value}`
352
- : (firstRcsGsmSender?.value || '');
353
- updateSetting(DELIVERY_SETTING_KEY_GSM_SENDER_ID, composite);
354
- return;
355
- }
356
212
  if (channel === CHANNELS.SMS && domain) {
357
- const smsGsmSenders = smsTraiDltEnabled && registeredSenderIds?.length
213
+ const smsGsmSenders = smsTraiDltEnabled
358
214
  ? (domain.gsmSenders || []).filter((gsmId) => registeredSenderIds.includes(gsmId.value))
359
215
  : domain.gsmSenders;
360
216
  const def = findDefault(smsGsmSenders);
@@ -374,20 +230,9 @@ const ModifyDeliverySettings = (props) => {
374
230
  );
375
231
 
376
232
  const handleDone = useCallback(() => {
377
- const next = cloneDeep(localSettings);
378
- if (channel === CHANNELS.RCS) {
379
- const rawRcs = get(next, DELIVERY_SETTING_KEY_GSM_SENDER_ID);
380
- if (rawRcs && !(rcsSenderOptions || []).some((senderOption) => senderOption.value === rawRcs)) {
381
- next[DELIVERY_SETTING_KEY_GSM_SENDER_ID] = '';
382
- }
383
- const rawSms = get(next, DELIVERY_SETTING_KEY_CDMA_SENDER_ID);
384
- if (rawSms && !(smsSenderOptions || []).some((senderOption) => senderOption.value === rawSms)) {
385
- next[DELIVERY_SETTING_KEY_CDMA_SENDER_ID] = '';
386
- }
387
- }
388
- onSaveDeliverySettings(next);
233
+ onSaveDeliverySettings(localSettings);
389
234
  if (onClose) onClose();
390
- }, [channel, localSettings, onSaveDeliverySettings, onClose, rcsSenderOptions, smsSenderOptions]);
235
+ }, [localSettings, onSaveDeliverySettings, onClose]);
391
236
 
392
237
  const renderSelectRow = useCallback(
393
238
  ({
@@ -441,7 +286,7 @@ const ModifyDeliverySettings = (props) => {
441
286
  value: get(localSettings, DELIVERY_SETTING_KEY_SENDER_EMAIL),
442
287
  onChange: (val) => {
443
288
  const sender = selectedDomainEmailSenders.find(
444
- (emailSenderRow) => emailSenderRow.value === val,
289
+ (s) => s.value === val,
445
290
  );
446
291
  updateSetting(DELIVERY_SETTING_KEY_SENDER_EMAIL, val);
447
292
  updateSetting(DELIVERY_SETTING_KEY_SENDER_LABEL, sender?.label || val);
@@ -453,7 +298,7 @@ const ModifyDeliverySettings = (props) => {
453
298
  value: get(localSettings, DELIVERY_SETTING_KEY_SENDER_LABEL) || '',
454
299
  onChange: (val) => {
455
300
  const sender = selectedDomainEmailSenders.find(
456
- (emailSenderRow) => (emailSenderRow.label || emailSenderRow.value) === val,
301
+ (s) => (s.label || s.value) === val,
457
302
  );
458
303
  if (sender) {
459
304
  updateSetting(DELIVERY_SETTING_KEY_SENDER_EMAIL, sender.value);
@@ -481,7 +326,7 @@ const ModifyDeliverySettings = (props) => {
481
326
  onChange: (val) => {
482
327
  updateSetting(DELIVERY_SETTING_KEY_SOURCE_ACCOUNT_IDENTIFIER, val);
483
328
  const domain = (senderDetailsOptions || []).find(
484
- (whatsappAccountRow) => whatsappAccountRow.sourceAccountIdentifier === val,
329
+ (d) => d.sourceAccountIdentifier === val,
485
330
  );
486
331
  const first = domain?.gsmSenders?.[0];
487
332
  updateSetting(DELIVERY_SETTING_KEY_SENDER_MOB_NUM, first?.value || '');
@@ -495,39 +340,10 @@ const ModifyDeliverySettings = (props) => {
495
340
  onChange: (val) => updateSetting(DELIVERY_SETTING_KEY_SENDER_MOB_NUM, val),
496
341
  },
497
342
  ];
498
- const rcsFields = [
499
- {
500
- titleMessage: messages.rcsDomainLabel,
501
- options: domainOptions,
502
- value: get(localSettings, DELIVERY_SETTING_KEY_DOMAIN_ID),
503
- onChange: (val) => onDomainChange(val),
504
- },
505
- {
506
- titleMessage: messages.rcsSenderIdLabel,
507
- options: rcsSenderOptions,
508
- value: rcsGsmSenderIdForSelect,
509
- onChange: (val) => updateSetting(DELIVERY_SETTING_KEY_GSM_SENDER_ID, val),
510
- },
511
- ...((smsFallbackSenderDetailsOptions || []).length > 0 ? [
512
- {
513
- titleMessage: messages.fallbackSmsDomainLabel,
514
- options: smsFallbackDomainOptions,
515
- value: get(localSettings, DELIVERY_SETTING_KEY_SMS_FALLBACK_DOMAIN_ID),
516
- onChange: onSmsFallbackDomainChange,
517
- },
518
- {
519
- titleMessage: messages.fallbackSmsSenderIdLabel,
520
- options: smsSenderOptions,
521
- value: smsFallbackGsmIdForSelect,
522
- onChange: (val) => updateSetting(DELIVERY_SETTING_KEY_CDMA_SENDER_ID, val),
523
- },
524
- ] : []),
525
- ];
526
343
  const byChannel = {
527
344
  [CHANNELS.SMS]: smsFields,
528
345
  [CHANNELS.EMAIL]: emailFields,
529
346
  [CHANNELS.WHATSAPP]: whatsappFields,
530
- [CHANNELS.RCS]: rcsFields,
531
347
  };
532
348
  return byChannel[channel] || [];
533
349
  }, [
@@ -540,13 +356,6 @@ const ModifyDeliverySettings = (props) => {
540
356
  wecrmAccountOptions,
541
357
  whatsappAccountOptionsForDisplay,
542
358
  whatsappSenderOptions,
543
- rcsSenderOptions,
544
- rcsGsmSenderIdForSelect,
545
- smsSenderOptions,
546
- smsFallbackGsmIdForSelect,
547
- smsFallbackDomainOptions,
548
- smsFallbackSenderDetailsOptions,
549
- onSmsFallbackDomainChange,
550
359
  localSettings,
551
360
  selectedDomainEmailSenders,
552
361
  senderDetailsOptions,
@@ -581,10 +390,9 @@ const ModifyDeliverySettings = (props) => {
581
390
  };
582
391
 
583
392
  ModifyDeliverySettings.propTypes = {
584
- channel: PropTypes.oneOf([CHANNELS.SMS, CHANNELS.EMAIL, CHANNELS.WHATSAPP, CHANNELS.RCS]).isRequired,
393
+ channel: PropTypes.oneOf([CHANNELS.SMS, CHANNELS.EMAIL, CHANNELS.WHATSAPP]).isRequired,
585
394
  deliverySettings: PropTypes.object,
586
395
  senderDetailsOptions: PropTypes.array,
587
- smsFallbackSenderDetailsOptions: PropTypes.array,
588
396
  wecrmAccounts: PropTypes.array,
589
397
  onSaveDeliverySettings: PropTypes.func.isRequired,
590
398
  onClose: PropTypes.func,
@@ -600,7 +408,6 @@ ModifyDeliverySettings.propTypes = {
600
408
  ModifyDeliverySettings.defaultProps = {
601
409
  deliverySettings: {},
602
410
  senderDetailsOptions: [],
603
- smsFallbackSenderDetailsOptions: [],
604
411
  wecrmAccounts: [],
605
412
  onClose: undefined,
606
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,7 +213,7 @@ 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
218
  onSaveDeliverySettings: PropTypes.func.isRequired,
291
219
  isLoadingSenderDetails: PropTypes.bool,
@@ -295,19 +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
232
  isLoadingSenderDetails: false,
306
233
  formatMessage: undefined,
307
234
  smsTraiDltEnabled: false,
308
235
  registeredSenderIds: [],
309
236
  whatsappAccountFromForm: undefined,
310
- isChannelSmsFallbackPreviewEnabled: false,
311
237
  };
312
238
 
313
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
  });