@capillarytech/creatives-library 8.0.267-alpha.0 → 8.0.267

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 (147) hide show
  1. package/constants/unified.js +0 -1
  2. package/package.json +1 -1
  3. package/services/api.js +0 -5
  4. package/utils/common.js +0 -6
  5. package/utils/tests/transformerUtils.test.js +0 -297
  6. package/utils/transformerUtils.js +0 -40
  7. package/v2Components/CapImageUpload/constants.js +0 -2
  8. package/v2Components/CapImageUpload/index.js +16 -65
  9. package/v2Components/CapImageUpload/index.scss +1 -4
  10. package/v2Components/CapImageUpload/messages.js +1 -5
  11. package/v2Components/CommonTestAndPreview/index.js +15 -4
  12. package/v2Containers/App/constants.js +0 -5
  13. package/v2Containers/CreativesContainer/SlideBoxContent.js +2 -57
  14. package/v2Containers/CreativesContainer/SlideBoxHeader.js +0 -1
  15. package/v2Containers/CreativesContainer/constants.js +0 -3
  16. package/v2Containers/CreativesContainer/index.js +0 -168
  17. package/v2Containers/CreativesContainer/messages.js +0 -4
  18. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +0 -210
  19. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +0 -304
  20. package/v2Containers/SmsTrai/Edit/index.js +12 -1
  21. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +648 -36
  22. package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
  23. package/v2Containers/Templates/_templates.scss +0 -205
  24. package/v2Containers/Templates/actions.js +1 -2
  25. package/v2Containers/Templates/constants.js +0 -1
  26. package/v2Containers/Templates/index.js +34 -274
  27. package/v2Containers/Templates/messages.js +0 -24
  28. package/v2Containers/Templates/reducer.js +0 -2
  29. package/v2Containers/Templates/tests/index.test.js +0 -10
  30. package/v2Containers/TemplatesV2/index.js +7 -15
  31. package/v2Containers/TemplatesV2/messages.js +0 -4
  32. package/utils/imageUrlUpload.js +0 -141
  33. package/v2Components/CapImageUrlUpload/constants.js +0 -26
  34. package/v2Components/CapImageUrlUpload/index.js +0 -365
  35. package/v2Components/CapImageUrlUpload/index.scss +0 -35
  36. package/v2Components/CapImageUrlUpload/messages.js +0 -47
  37. package/v2Containers/WebPush/Create/components/BrandIconSection.js +0 -108
  38. package/v2Containers/WebPush/Create/components/ButtonForm.js +0 -172
  39. package/v2Containers/WebPush/Create/components/ButtonItem.js +0 -101
  40. package/v2Containers/WebPush/Create/components/ButtonList.js +0 -145
  41. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +0 -164
  42. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +0 -463
  43. package/v2Containers/WebPush/Create/components/FormActions.js +0 -54
  44. package/v2Containers/WebPush/Create/components/FormActions.test.js +0 -163
  45. package/v2Containers/WebPush/Create/components/MediaSection.js +0 -142
  46. package/v2Containers/WebPush/Create/components/MediaSection.test.js +0 -341
  47. package/v2Containers/WebPush/Create/components/MessageSection.js +0 -103
  48. package/v2Containers/WebPush/Create/components/MessageSection.test.js +0 -268
  49. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +0 -87
  50. package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +0 -210
  51. package/v2Containers/WebPush/Create/components/TemplateNameSection.js +0 -54
  52. package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +0 -143
  53. package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +0 -86
  54. package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +0 -16
  55. package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +0 -41
  56. package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +0 -54
  57. package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +0 -37
  58. package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +0 -21
  59. package/v2Containers/WebPush/Create/components/_buttons.scss +0 -246
  60. package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +0 -554
  61. package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +0 -607
  62. package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +0 -633
  63. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +0 -666
  64. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +0 -74
  65. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +0 -78
  66. package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +0 -138
  67. package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +0 -406
  68. package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +0 -30
  69. package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +0 -151
  70. package/v2Containers/WebPush/Create/hooks/useImageUpload.js +0 -104
  71. package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +0 -538
  72. package/v2Containers/WebPush/Create/hooks/useTagManagement.js +0 -122
  73. package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +0 -633
  74. package/v2Containers/WebPush/Create/index.js +0 -1148
  75. package/v2Containers/WebPush/Create/index.scss +0 -134
  76. package/v2Containers/WebPush/Create/messages.js +0 -211
  77. package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +0 -228
  78. package/v2Containers/WebPush/Create/preview/NotificationContainer.js +0 -294
  79. package/v2Containers/WebPush/Create/preview/PreviewContent.js +0 -90
  80. package/v2Containers/WebPush/Create/preview/PreviewControls.js +0 -305
  81. package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +0 -25
  82. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +0 -156
  83. package/v2Containers/WebPush/Create/preview/assets/Light.svg +0 -53
  84. package/v2Containers/WebPush/Create/preview/assets/Top.svg +0 -5
  85. package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +0 -9
  86. package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +0 -9
  87. package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
  88. package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
  89. package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +0 -106
  90. package/v2Containers/WebPush/Create/preview/assets/iOS.svg +0 -26
  91. package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +0 -9
  92. package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +0 -9
  93. package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +0 -18
  94. package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +0 -29
  95. package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +0 -9
  96. package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +0 -9
  97. package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +0 -51
  98. package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -145
  99. package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +0 -45
  100. package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +0 -68
  101. package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +0 -61
  102. package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +0 -99
  103. package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +0 -733
  104. package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +0 -571
  105. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +0 -85
  106. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +0 -81
  107. package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +0 -50
  108. package/v2Containers/WebPush/Create/preview/constants.js +0 -637
  109. package/v2Containers/WebPush/Create/preview/notification-container.scss +0 -79
  110. package/v2Containers/WebPush/Create/preview/preview.scss +0 -358
  111. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +0 -370
  112. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +0 -12
  113. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +0 -12
  114. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +0 -12
  115. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +0 -47
  116. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +0 -11
  117. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +0 -11
  118. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +0 -11
  119. package/v2Containers/WebPush/Create/preview/styles/_base.scss +0 -207
  120. package/v2Containers/WebPush/Create/preview/styles/_ios.scss +0 -153
  121. package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +0 -107
  122. package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +0 -101
  123. package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +0 -229
  124. package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +0 -906
  125. package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +0 -1081
  126. package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +0 -723
  127. package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +0 -1327
  128. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +0 -131
  129. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +0 -112
  130. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +0 -144
  131. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +0 -129
  132. package/v2Containers/WebPush/Create/utils/payloadBuilder.js +0 -96
  133. package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +0 -396
  134. package/v2Containers/WebPush/Create/utils/previewUtils.js +0 -89
  135. package/v2Containers/WebPush/Create/utils/urlValidation.js +0 -115
  136. package/v2Containers/WebPush/Create/utils/urlValidation.test.js +0 -449
  137. package/v2Containers/WebPush/Create/utils/validation.js +0 -75
  138. package/v2Containers/WebPush/Create/utils/validation.test.js +0 -283
  139. package/v2Containers/WebPush/actions.js +0 -60
  140. package/v2Containers/WebPush/constants.js +0 -132
  141. package/v2Containers/WebPush/index.js +0 -2
  142. package/v2Containers/WebPush/reducer.js +0 -104
  143. package/v2Containers/WebPush/sagas.js +0 -119
  144. package/v2Containers/WebPush/selectors.js +0 -65
  145. package/v2Containers/WebPush/tests/reducer.test.js +0 -863
  146. package/v2Containers/WebPush/tests/sagas.test.js +0 -566
  147. package/v2Containers/WebPush/tests/selectors.test.js +0 -960
@@ -51,7 +51,6 @@ export const EXTENDED_TAG = 'ExtendedTagMessage';
51
51
  export const BADGES_UI_ENABLED = 'BADGES_UI_ENABLED';
52
52
  export const JP_LOCALE_HIDE_FEATURE = 'JP_LOCALE_HIDE_FEATURE';
53
53
  export const ENABLE_WECHAT = 'ENABLE_WECHAT';
54
- export const ENABLE_WEBPUSH = 'ENABLE_WEBPUSH';
55
54
  export const ENABLE_CUSTOMER_BARCODE_TAG = 'ENABLE_CUSTOMER_BARCODE_TAG';
56
55
  export const EMAIL_UNSUBSCRIBE_TAG_MANDATORY = 'EMAIL_UNSUBSCRIBE_TAG_MANDATORY';
57
56
  export const ENABLE_AI_SUGGESTIONS = 'ENABLE_AI_SUGGESTIONS';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "8.0.267-alpha.0",
4
+ "version": "8.0.267",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",
package/services/api.js CHANGED
@@ -287,11 +287,6 @@ export const createMobilePushTemplateV2 = (template) => {
287
287
  return request(url, getAPICallObject('POST', template));
288
288
  };
289
289
 
290
- export const createWebPushTemplate = (template) => {
291
- const url = `${API_ENDPOINT}/templates/WEBPUSH`;
292
- return request(url, getAPICallObject('POST', template));
293
- };
294
-
295
290
  export const duplicateTemplate = ({id, channel}) => {
296
291
  const url = `${API_ENDPOINT}/templates/duplicate/${id}/${channel}`;
297
292
  return request(url, getAPICallObject('GET'));
package/utils/common.js CHANGED
@@ -21,7 +21,6 @@ import {
21
21
  EMAIL_UNSUBSCRIBE_TAG_MANDATORY,
22
22
  BADGES_ISSUE,
23
23
  ENABLE_WECHAT,
24
- ENABLE_WEBPUSH,
25
24
  LIQUID_SUPPORT,
26
25
  ENABLE_NEW_MPUSH
27
26
  } from '../constants/unified';
@@ -117,11 +116,6 @@ export const hasWechatFeatureEnabled = Auth.hasFeatureAccess.bind(
117
116
  ENABLE_WECHAT,
118
117
  );
119
118
 
120
- export const hasWebPushFeatureEnabled = Auth.hasFeatureAccess.bind(
121
- null,
122
- ENABLE_WEBPUSH,
123
- );
124
-
125
119
  export const hasCustomerBarcodeFeatureEnabled = Auth.hasFeatureAccess.bind(
126
120
  null,
127
121
  ENABLE_CUSTOMER_BARCODE_TAG,
@@ -15,7 +15,6 @@ import {
15
15
  RCS,
16
16
  LINE,
17
17
  VIBER,
18
- WEBPUSH,
19
18
  } from "../../v2Containers/CreativesContainer/constants";
20
19
 
21
20
  describe("transformerUtils", () => {
@@ -1183,302 +1182,6 @@ describe("transformerUtils", () => {
1183
1182
  });
1184
1183
  });
1185
1184
 
1186
- describe("WebPush payload transformation", () => {
1187
- it("should transform WebPush data correctly with minimal data", () => {
1188
- const mockData = {
1189
- channel: WEBPUSH,
1190
- messageSubject: "test webpush notification"
1191
- };
1192
-
1193
- const result = transformChannelPayload(mockData);
1194
-
1195
- expect(result.centralCommsPayload).toBeDefined();
1196
- expect(result.centralCommsPayload.channel).toEqual(WEBPUSH);
1197
- expect(result.centralCommsPayload.webpushMessageContent.messageSubject).toEqual(
1198
- "test webpush notification"
1199
- );
1200
- expect(result.centralCommsPayload.clientName).toEqual("VENENO");
1201
- });
1202
-
1203
- it("should transform WebPush data with all options", () => {
1204
- const mockData = {
1205
- channel: WEBPUSH,
1206
- messageSubject: "test webpush notification",
1207
- messageContent: {
1208
- content: {
1209
- accountId: 12345,
1210
- content: {
1211
- title: "WebPush Title",
1212
- message: "WebPush Message",
1213
- iconImageUrl: "https://example.com/icon.png",
1214
- cta: {
1215
- actionLink: "https://example.com/action",
1216
- actionText: "Click Here"
1217
- },
1218
- expandableDetails: {
1219
- style: "BIG_TEXT",
1220
- message: "Expanded Message"
1221
- }
1222
- },
1223
- offers: [
1224
- { id: "offer-1", title: "Offer 1" },
1225
- { id: "offer-2", title: "Offer 2" }
1226
- ]
1227
- }
1228
- }
1229
- };
1230
-
1231
- const options = {
1232
- loyaltyMetaData: {
1233
- actionId: "action-123",
1234
- ouId: 456,
1235
- clientName: "TestClient",
1236
- module: "TestModule",
1237
- transformedMessageDetails: {
1238
- webpushDeliverySettings: {
1239
- sendDate: "2023-01-01",
1240
- priority: "HIGH"
1241
- }
1242
- }
1243
- }
1244
- };
1245
-
1246
- const result = transformChannelPayload(mockData, options);
1247
-
1248
- // Check base payload
1249
- expect(result.centralCommsPayload.sourceEntityId).toEqual("action-123");
1250
- expect(result.centralCommsPayload.ouId).toEqual(456);
1251
- expect(result.centralCommsPayload.clientName).toEqual("TestClient");
1252
- expect(result.centralCommsPayload.module).toEqual("TestModule");
1253
-
1254
- // Check WebPush-specific content
1255
- expect(result.centralCommsPayload.webpushMessageContent.channel).toEqual(WEBPUSH);
1256
- expect(result.centralCommsPayload.webpushMessageContent.accountId).toEqual(12345);
1257
- expect(result.centralCommsPayload.webpushMessageContent.messageSubject).toEqual(
1258
- "test webpush notification"
1259
- );
1260
- expect(result.centralCommsPayload.webpushMessageContent.content.title).toEqual(
1261
- "WebPush Title"
1262
- );
1263
- expect(result.centralCommsPayload.webpushMessageContent.content.message).toEqual(
1264
- "WebPush Message"
1265
- );
1266
- expect(result.centralCommsPayload.webpushMessageContent.content.iconImageUrl).toEqual(
1267
- "https://example.com/icon.png"
1268
- );
1269
- expect(result.centralCommsPayload.webpushMessageContent.content.cta).toEqual({
1270
- actionLink: "https://example.com/action",
1271
- actionText: "Click Here"
1272
- });
1273
- expect(result.centralCommsPayload.webpushMessageContent.content.expandableDetails).toEqual({
1274
- style: "BIG_TEXT",
1275
- message: "Expanded Message"
1276
- });
1277
- expect(result.centralCommsPayload.webpushMessageContent.offers).toEqual([
1278
- { id: "offer-1", title: "Offer 1" },
1279
- { id: "offer-2", title: "Offer 2" }
1280
- ]);
1281
-
1282
- // Check delivery settings
1283
- expect(result.centralCommsPayload.webpushDeliverySettings).toEqual({
1284
- sendDate: "2023-01-01",
1285
- priority: "HIGH"
1286
- });
1287
- });
1288
-
1289
- it("should handle missing messageContent structure", () => {
1290
- const mockData = {
1291
- channel: WEBPUSH,
1292
- messageSubject: "test webpush notification"
1293
- };
1294
-
1295
- const result = transformChannelPayload(mockData);
1296
-
1297
- expect(result.centralCommsPayload.webpushMessageContent.accountId).toEqual(0);
1298
- expect(result.centralCommsPayload.webpushMessageContent.content.title).toEqual("");
1299
- expect(result.centralCommsPayload.webpushMessageContent.content.message).toEqual("");
1300
- expect(result.centralCommsPayload.webpushMessageContent.offers).toEqual([]);
1301
- });
1302
-
1303
- it("should handle missing content properties", () => {
1304
- const mockData = {
1305
- channel: WEBPUSH,
1306
- messageSubject: "test webpush notification",
1307
- messageContent: {
1308
- content: {
1309
- accountId: 12345,
1310
- content: {}
1311
- }
1312
- }
1313
- };
1314
-
1315
- const result = transformChannelPayload(mockData);
1316
-
1317
- expect(result.centralCommsPayload.webpushMessageContent.accountId).toEqual(12345);
1318
- expect(result.centralCommsPayload.webpushMessageContent.content.title).toEqual("");
1319
- expect(result.centralCommsPayload.webpushMessageContent.content.message).toEqual("");
1320
- expect(result.centralCommsPayload.webpushMessageContent.content.iconImageUrl).toBeUndefined();
1321
- expect(result.centralCommsPayload.webpushMessageContent.content.cta).toBeUndefined();
1322
- expect(result.centralCommsPayload.webpushMessageContent.content.expandableDetails).toBeUndefined();
1323
- });
1324
-
1325
- it("should conditionally include iconImageUrl only when present", () => {
1326
- const mockDataWithoutIcon = {
1327
- channel: WEBPUSH,
1328
- messageSubject: "test",
1329
- messageContent: {
1330
- content: {
1331
- content: {
1332
- title: "Title",
1333
- message: "Message"
1334
- }
1335
- }
1336
- }
1337
- };
1338
-
1339
- const resultWithoutIcon = transformChannelPayload(mockDataWithoutIcon);
1340
- expect(resultWithoutIcon.centralCommsPayload.webpushMessageContent.content.iconImageUrl).toBeUndefined();
1341
-
1342
- const mockDataWithIcon = {
1343
- channel: WEBPUSH,
1344
- messageSubject: "test",
1345
- messageContent: {
1346
- content: {
1347
- content: {
1348
- title: "Title",
1349
- message: "Message",
1350
- iconImageUrl: "https://example.com/icon.png"
1351
- }
1352
- }
1353
- }
1354
- };
1355
-
1356
- const resultWithIcon = transformChannelPayload(mockDataWithIcon);
1357
- expect(resultWithIcon.centralCommsPayload.webpushMessageContent.content.iconImageUrl).toEqual(
1358
- "https://example.com/icon.png"
1359
- );
1360
- });
1361
-
1362
- it("should conditionally include cta only when present", () => {
1363
- const mockDataWithoutCta = {
1364
- channel: WEBPUSH,
1365
- messageSubject: "test",
1366
- messageContent: {
1367
- content: {
1368
- content: {
1369
- title: "Title",
1370
- message: "Message"
1371
- }
1372
- }
1373
- }
1374
- };
1375
-
1376
- const resultWithoutCta = transformChannelPayload(mockDataWithoutCta);
1377
- expect(resultWithoutCta.centralCommsPayload.webpushMessageContent.content.cta).toBeUndefined();
1378
-
1379
- const mockDataWithCta = {
1380
- channel: WEBPUSH,
1381
- messageSubject: "test",
1382
- messageContent: {
1383
- content: {
1384
- content: {
1385
- title: "Title",
1386
- message: "Message",
1387
- cta: {
1388
- actionLink: "https://example.com",
1389
- actionText: "Click"
1390
- }
1391
- }
1392
- }
1393
- }
1394
- };
1395
-
1396
- const resultWithCta = transformChannelPayload(mockDataWithCta);
1397
- expect(resultWithCta.centralCommsPayload.webpushMessageContent.content.cta).toEqual({
1398
- actionLink: "https://example.com",
1399
- actionText: "Click"
1400
- });
1401
- });
1402
-
1403
- it("should conditionally include expandableDetails only when present", () => {
1404
- const mockDataWithoutExpandable = {
1405
- channel: WEBPUSH,
1406
- messageSubject: "test",
1407
- messageContent: {
1408
- content: {
1409
- content: {
1410
- title: "Title",
1411
- message: "Message"
1412
- }
1413
- }
1414
- }
1415
- };
1416
-
1417
- const resultWithoutExpandable = transformChannelPayload(mockDataWithoutExpandable);
1418
- expect(resultWithoutExpandable.centralCommsPayload.webpushMessageContent.content.expandableDetails).toBeUndefined();
1419
-
1420
- const mockDataWithExpandable = {
1421
- channel: WEBPUSH,
1422
- messageSubject: "test",
1423
- messageContent: {
1424
- content: {
1425
- content: {
1426
- title: "Title",
1427
- message: "Message",
1428
- expandableDetails: {
1429
- style: "BIG_TEXT",
1430
- message: "Expanded"
1431
- }
1432
- }
1433
- }
1434
- }
1435
- };
1436
-
1437
- const resultWithExpandable = transformChannelPayload(mockDataWithExpandable);
1438
- expect(resultWithExpandable.centralCommsPayload.webpushMessageContent.content.expandableDetails).toEqual({
1439
- style: "BIG_TEXT",
1440
- message: "Expanded"
1441
- });
1442
- });
1443
-
1444
- it("should handle undefined webpushDeliverySettings", () => {
1445
- const mockData = {
1446
- channel: WEBPUSH,
1447
- messageSubject: "test webpush notification"
1448
- };
1449
-
1450
- const options = {
1451
- loyaltyMetaData: {
1452
- transformedMessageDetails: {}
1453
- }
1454
- };
1455
-
1456
- const result = transformChannelPayload(mockData, options);
1457
-
1458
- expect(result.centralCommsPayload.webpushDeliverySettings).toEqual({});
1459
- });
1460
-
1461
- it("should handle empty offers array", () => {
1462
- const mockData = {
1463
- channel: WEBPUSH,
1464
- messageSubject: "test",
1465
- messageContent: {
1466
- content: {
1467
- content: {
1468
- title: "Title",
1469
- message: "Message"
1470
- },
1471
- offers: []
1472
- }
1473
- }
1474
- };
1475
-
1476
- const result = transformChannelPayload(mockData);
1477
-
1478
- expect(result.centralCommsPayload.webpushMessageContent.offers).toEqual([]);
1479
- });
1480
- });
1481
-
1482
1185
  describe("getTemplateDiffState", () => {
1483
1186
  it("should return false for unsupported channel", () => {
1484
1187
  const result = getTemplateDiffState("UNSUPPORTED_CHANNEL", {}, {});
@@ -10,7 +10,6 @@ import {
10
10
  RCS,
11
11
  LINE,
12
12
  VIBER,
13
- WEBPUSH,
14
13
  EMF,
15
14
  VENENO,
16
15
  TEXT,
@@ -64,8 +63,6 @@ export const transformChannelPayload = (data, options = {}) => {
64
63
  return transformLinePayload(data, options);
65
64
  case VIBER:
66
65
  return transformViberPayload(data, options);
67
- case WEBPUSH:
68
- return transformWebpushPayload(data, options);
69
66
  default:
70
67
  return data; // Return unchanged for unsupported channels
71
68
  }
@@ -320,43 +317,6 @@ const transformViberPayload = (viberData, options = {}) => {
320
317
  return payload;
321
318
  };
322
319
 
323
- /**
324
- * Transforms WebPush data to the required payload format
325
- * @param {Object} webpushData - Current WebPush data
326
- * @param {Object} options - Additional options (ouId, sourceEntityId, etc.)
327
- * @returns {Object} - Transformed WebPush payload
328
- */
329
- const transformWebpushPayload = (webpushData, options = {}) => {
330
- const { loyaltyMetaData = {} } = options;
331
- const { transformedMessageDetails = {} } = loyaltyMetaData;
332
- const { webpushDeliverySettings = {} } = transformedMessageDetails || {};
333
-
334
- // Get base payload structure
335
- const payload = createBasePayload(WEBPUSH, loyaltyMetaData);
336
-
337
- // Extract webpush content from messageContent.content.content structure
338
- const webpushContent = webpushData?.messageContent?.content?.content || {};
339
- const accountId = webpushData?.messageContent?.content?.accountId || 0;
340
-
341
- // Add WebPush-specific properties
342
- payload.centralCommsPayload.webpushMessageContent = {
343
- channel: WEBPUSH,
344
- accountId,
345
- content: {
346
- title: webpushContent?.title || '',
347
- message: webpushContent?.message || '',
348
- ...(webpushContent?.iconImageUrl && { iconImageUrl: webpushContent.iconImageUrl }),
349
- ...(webpushContent?.cta && { cta: webpushContent.cta }),
350
- ...(webpushContent?.expandableDetails && { expandableDetails: webpushContent.expandableDetails }),
351
- },
352
- messageSubject: webpushData?.messageSubject || "",
353
- offers: webpushData?.messageContent?.content?.offers || [],
354
- };
355
- payload.centralCommsPayload.webpushDeliverySettings = webpushDeliverySettings;
356
-
357
- return payload;
358
- };
359
-
360
320
  // Checks if the template has changed
361
321
  export const getTemplateDiffState = (channel, oldData, newData) => {
362
322
  switch (channel.toUpperCase()) {
@@ -4,6 +4,4 @@ export const MAX_SUPPORTED_IMAGE_SIZE = {
4
4
  INAPP: 5,
5
5
  WHATSAPP: 5,
6
6
  MOBILEPUSH: 2,
7
- WEBPUSH: 5,
8
- WEBPUSH_BRAND_ICON: 1
9
7
  };
@@ -17,18 +17,17 @@ import {
17
17
  CapImage,
18
18
  CapError,
19
19
  } from '@capillarytech/cap-ui-library';
20
- import { injectIntl, FormattedMessage, intlShape } from 'react-intl';
20
+ import { injectIntl, FormattedMessage, intlShape} from 'react-intl';
21
21
  import { isEmpty, get } from 'lodash';
22
22
  import './index.scss';
23
23
  import Gallery from '../../v2Containers/Assets/Gallery';
24
24
  import { MAX_SUPPORTED_IMAGE_SIZE } from './constants';
25
25
  import {
26
- FACEBOOK, INAPP, RCS, WHATSAPP, VIBER, WEBPUSH, WEBPUSH_BRAND_ICON
26
+ FACEBOOK, INAPP, RCS, WHATSAPP, VIBER,
27
27
  } from "../../v2Containers/CreativesContainer/constants";
28
28
 
29
29
  import messages from './messages';
30
30
  import { MOBILEPUSH } from '../CapVideoUpload/constants';
31
- import { CAP_SPACE_16 } from '@capillarytech/cap-ui-library/styled/variables';
32
31
  function CapImageUpload(props) {
33
32
  const {
34
33
  intl,
@@ -51,8 +50,6 @@ function CapImageUpload(props) {
51
50
  channelSpecificStyle,
52
51
  showReUploadButton = true,
53
52
  disableAutoRestore = false, // New prop to disable automatic restoration
54
- recommendedDimensions, // Array of {width, height} objects for recommended dimensions
55
- disabled = false,
56
53
  } = props;
57
54
  const {
58
55
  formatMessage,
@@ -75,7 +72,7 @@ function CapImageUpload(props) {
75
72
  const [isImageError, updateImageErrorMessage] = useState(false);
76
73
  const [isDrawerRequired, updateDrawerRequirement] = useState(false);
77
74
 
78
- const { CapHeadingSpan } = CapHeading;
75
+ const {CapHeadingSpan} = CapHeading;
79
76
  const ImageComponent = useCallback(
80
77
  () => (
81
78
  <>
@@ -94,7 +91,7 @@ function CapImageUpload(props) {
94
91
 
95
92
  const WithLabel = LabelHOC(ImageComponent);
96
93
 
97
- const uploadImages = useCallback((e, { files }) => {
94
+ const uploadImages = useCallback((e, {files}) => {
98
95
  if (e) {
99
96
  e.preventDefault();
100
97
  }
@@ -112,13 +109,13 @@ function CapImageUpload(props) {
112
109
  height: img.height,
113
110
  error: file && (file.size / (1e+6) > 5), // Checking if file exists and its size is greater than 5MB (5 * 10^6 bytes)
114
111
  };
115
- submitAction({ file, type: 'image', fileParams }, incorrectFile);
112
+ submitAction({file, type: 'image', fileParams}, incorrectFile);
116
113
  };
117
114
  img.onerror = () => {
118
115
  const fileParams = {
119
116
  error: true,
120
117
  };
121
- submitAction({ fileParams }, incorrectFile);
118
+ submitAction({fileParams}, incorrectFile);
122
119
  };
123
120
  if (e) {
124
121
  const event = e;
@@ -126,7 +123,7 @@ function CapImageUpload(props) {
126
123
  }
127
124
  }, []);
128
125
 
129
- const rcsValidation = useCallback((incorrectFile, data, size, height, width, error) => {
126
+ const rcsValidation = useCallback((incorrectFile, data, size, height, width, error) => {
130
127
  if (incorrectFile || size < minImgSize || size > imgSize || height !== imgHeight || width !== imgWidth || error) {
131
128
  updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
132
129
  } else {
@@ -149,19 +146,6 @@ function CapImageUpload(props) {
149
146
  const { height, width, error } = fileParams || {};
150
147
  if (channel === RCS) {
151
148
  rcsValidation(incorrectFile, data, size, height, width, error);
152
- } else if ([WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel)) {
153
- // For WEBPUSH, only validate file extension, size, and format - no dimension validation
154
- if (incorrectFile || size > imgSize || error) {
155
- updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
156
- } else {
157
- updateImageErrorMessage('');
158
- uploadAsset(
159
- data.file,
160
- data.type,
161
- data.fileParams,
162
- index,
163
- );
164
- }
165
149
  } else if (incorrectFile || size > imgSize || height > imgHeight || width > imgWidth || error) {
166
150
  updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
167
151
  } else {
@@ -176,7 +160,7 @@ function CapImageUpload(props) {
176
160
  }, [isImageError]);
177
161
 
178
162
  const capUploaderCustomRequest = useCallback((uploadData) => {
179
- uploadImages(undefined, { files: [uploadData.file] });
163
+ uploadImages(undefined, {files: [uploadData.file]});
180
164
  }, [uploadImages]);
181
165
 
182
166
  const setDrawerVisibility = useCallback((drawervisibleFlag) => updateDrawerRequirement(drawervisibleFlag), [isDrawerRequired]);
@@ -197,27 +181,19 @@ function CapImageUpload(props) {
197
181
  secure_file_path: image, width, height, file_size: size,
198
182
  } = get(imageTemplate, 'metaInfo', {});
199
183
  updateDrawerRequirement(false);
200
- // For WEBPUSH, skip dimension validation - only check extension, size
201
- if ([WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel)) {
202
- if (!allowedExtensionsRegex.test(image) || size > imgSize) {
203
- updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
204
- } else {
205
- updateImageErrorMessage('');
206
- updateImageSrc(image);
207
- }
208
- } else if (!allowedExtensionsRegex.test(image) || height > imgHeight || width > imgWidth || size > imgSize) {
184
+ if (!allowedExtensionsRegex.test(image) || height > imgHeight || width > imgWidth || size > imgSize ) {
209
185
  updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
210
186
  } else {
211
187
  updateImageErrorMessage('');
212
188
  updateImageSrc(image);
213
189
  }
214
- }, [isImageError, isDrawerRequired, channel, allowedExtensionsRegex, imgSize, formatMessage]);
190
+ }, [isImageError, isDrawerRequired]);
215
191
 
216
192
  const getGalleryDrawerContent = useCallback(() => {
217
193
  const locationGallery = {
218
194
  pathname: `/assets`,
219
195
  search: '',
220
- query: !isFullMode ? { type: 'embedded', module: 'library' } : {},
196
+ query: !isFullMode ? {type: 'embedded', module: 'library'} : {},
221
197
  };
222
198
  return (
223
199
  <>
@@ -254,7 +230,6 @@ function CapImageUpload(props) {
254
230
  customRequest={capUploaderCustomRequest}
255
231
  className="form-builder-dragger grey-background"
256
232
  showUploadList={!isImageError}
257
- disabled={disabled}
258
233
  >
259
234
  <CapHeading className="dragger-title" type="h7">
260
235
  <FormattedMessage {...messages.dragAndDrop} />
@@ -262,7 +237,7 @@ function CapImageUpload(props) {
262
237
  <CapHeading className="dragger-or" type="label6">
263
238
  <FormattedMessage {...messages.or} />
264
239
  </CapHeading>
265
- <CapButton className="dragger-button upload-image" type="secondary" disabled={disabled} tabIndex={disabled ? -1 : undefined}>
240
+ <CapButton className="dragger-button upload-image" type="secondary">
266
241
  <FormattedMessage {...messages.uploadComputer} />
267
242
  </CapButton>
268
243
  {channel !== WHATSAPP && (
@@ -270,8 +245,6 @@ function CapImageUpload(props) {
270
245
  className="dragger-button gallery-select"
271
246
  type="secondary"
272
247
  onClick={onGalleryClick}
273
- disabled={disabled}
274
- tabIndex={disabled ? -1 : undefined}
275
248
  >
276
249
  <FormattedMessage {...messages.uploadGallery} />
277
250
  </CapButton>
@@ -289,15 +262,13 @@ function CapImageUpload(props) {
289
262
  className="dragger-button re-upload"
290
263
  type="flat"
291
264
  onClick={onReUpload}
292
- style={channelSpecificStyle ? { marginTop: `-${CAP_SPACE_16}` } : {}}
293
- disabled={disabled}
294
- tabIndex={disabled ? -1 : undefined}
265
+ style={channelSpecificStyle ? { marginTop: '-16px'} : {}}
295
266
  >
296
267
  <FormattedMessage {...messages.imageReUpload} />
297
268
  </CapButton>
298
269
  );
299
270
  }
300
- }, [isImageError, imageSrc, disabled, showReUploadButton, channel, channelSpecificStyle, capUploaderCustomRequest, onGalleryClick, onReUpload]);
271
+ }, [isImageError, imageSrc]);
301
272
 
302
273
  return (
303
274
  <div style={style} className="cap-custom-image-upload">
@@ -314,8 +285,6 @@ function CapImageUpload(props) {
314
285
  type="file"
315
286
  onChange={(e) => uploadImages(e, { files: e.target.files })}
316
287
  accept={supportedExtensions || "image/*"}
317
- disabled={disabled}
318
- tabIndex={disabled ? -1 : undefined}
319
288
  />
320
289
  {getImageSection()}
321
290
  <CapDrawer
@@ -336,18 +305,7 @@ function CapImageUpload(props) {
336
305
  )}
337
306
  {![WHATSAPP, INAPP].includes(channel) && (
338
307
  <CapHeadingSpan type="label2" className="image-dimension">
339
- {[WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel) && recommendedDimensions?.length ? (
340
- <FormattedMessage
341
- {...messages.recommendedDimensions}
342
- values={{
343
- dimensions: recommendedDimensions
344
- .map((dim) => `${dim.width} x ${dim.height}px`)
345
- .join(', '),
346
- }}
347
- />
348
- ) : (
349
- <FormattedMessage {...messages.imageDimenstionDescription} values={{ width: imgWidth, height: imgHeight }} />
350
- )}
308
+ <FormattedMessage {...messages.imageDimenstionDescription} values={{ width: imgWidth, height: imgHeight }} />
351
309
  </CapHeadingSpan>
352
310
  )}
353
311
  {channel === FACEBOOK && (
@@ -370,7 +328,7 @@ function CapImageUpload(props) {
370
328
  getImageSizeLabel()
371
329
  )
372
330
  )}
373
- {[VIBER, INAPP, MOBILEPUSH, WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel) && getImageSizeLabel()}
331
+ {[VIBER, INAPP, MOBILEPUSH].includes(channel) && getImageSizeLabel()}
374
332
  <CapHeadingSpan type="label2" className="image-format">
375
333
  {channel === INAPP ? <FormattedMessage {...messages.format2} /> : <FormattedMessage {...messages.format} />}
376
334
  </CapHeadingSpan>
@@ -399,13 +357,6 @@ CapImageUpload.propTypes = {
399
357
  channel: PropTypes.string,
400
358
  channelSpecificStyle: PropTypes.bool,
401
359
  disableAutoRestore: PropTypes.bool,
402
- recommendedDimensions: PropTypes.arrayOf(
403
- PropTypes.shape({
404
- width: PropTypes.number.isRequired,
405
- height: PropTypes.number.isRequired,
406
- })
407
- ),
408
- disabled: PropTypes.bool,
409
360
  };
410
361
 
411
362
  export default injectIntl(CapImageUpload);
@@ -19,8 +19,5 @@ $classPrefix: cap-custom-image-upload;
19
19
  }
20
20
  .upload-image-error{
21
21
  margin-top: $CAP_SPACE_04;
22
- }
23
- .ant-upload-list-item{
24
- height: 1.65rem;
25
- }
22
+ }
26
23
  }
@@ -34,10 +34,6 @@ export default defineMessages({
34
34
  id: `${scope}.imageDimenstionDescription`,
35
35
  defaultMessage: 'Dimensions upto: {width}px x {height}px',
36
36
  },
37
- recommendedDimensions: {
38
- id: `${scope}.recommendedDimensions`,
39
- defaultMessage: 'Recommended dimensions: {dimensions}',
40
- },
41
37
  format: {
42
38
  id: `${scope}.format`,
43
39
  defaultMessage: 'Format: JPEG, JPG, PNG',
@@ -61,7 +57,7 @@ export default defineMessages({
61
57
  },
62
58
  channelImageSize: {
63
59
  id: `${scope}.channelImageSize`,
64
- defaultMessage: 'Size up to: {size}MB',
60
+ defaultMessage: 'Size upto: {size}MB',
65
61
  },
66
62
  RcschannelImageSize: {
67
63
  id: `${scope}.RcschannelImageSize`,