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

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 (110) hide show
  1. package/package.json +1 -1
  2. package/services/api.js +0 -5
  3. package/translations/en.json +0 -1
  4. package/utils/transformerUtils.js +0 -42
  5. package/v2Components/CapImageUpload/constants.js +0 -2
  6. package/v2Components/CapImageUpload/index.js +14 -54
  7. package/v2Components/CapImageUpload/index.scss +1 -4
  8. package/v2Components/CapImageUpload/messages.js +0 -4
  9. package/v2Containers/App/constants.js +0 -5
  10. package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +0 -1
  11. package/v2Containers/CreativesContainer/SlideBoxContent.js +2 -57
  12. package/v2Containers/CreativesContainer/SlideBoxHeader.js +0 -1
  13. package/v2Containers/CreativesContainer/constants.js +0 -2
  14. package/v2Containers/CreativesContainer/index.js +0 -152
  15. package/v2Containers/CreativesContainer/messages.js +0 -4
  16. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +0 -3
  17. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +0 -2
  18. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +0 -25
  19. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +0 -18
  20. package/v2Containers/Rcs/index.js +153 -383
  21. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +0 -46
  22. package/v2Containers/Rcs/tests/index.test.js +168 -0
  23. package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +0 -4
  24. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +0 -8
  25. package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
  26. package/v2Containers/Templates/_templates.scss +0 -203
  27. package/v2Containers/Templates/actions.js +1 -2
  28. package/v2Containers/Templates/constants.js +0 -1
  29. package/v2Containers/Templates/index.js +30 -273
  30. package/v2Containers/Templates/messages.js +0 -24
  31. package/v2Containers/Templates/reducer.js +0 -2
  32. package/v2Containers/Templates/tests/index.test.js +0 -10
  33. package/v2Containers/TemplatesV2/index.js +2 -3
  34. package/v2Containers/TemplatesV2/messages.js +0 -4
  35. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +0 -132
  36. package/v2Components/CapImageUrlUpload/constants.js +0 -19
  37. package/v2Components/CapImageUrlUpload/index.js +0 -455
  38. package/v2Components/CapImageUrlUpload/index.scss +0 -35
  39. package/v2Components/CapImageUrlUpload/messages.js +0 -47
  40. package/v2Containers/WebPush/Create/components/ButtonForm.js +0 -175
  41. package/v2Containers/WebPush/Create/components/ButtonItem.js +0 -101
  42. package/v2Containers/WebPush/Create/components/ButtonList.js +0 -144
  43. package/v2Containers/WebPush/Create/components/_buttons.scss +0 -246
  44. package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +0 -554
  45. package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +0 -607
  46. package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +0 -633
  47. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +0 -666
  48. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +0 -74
  49. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +0 -80
  50. package/v2Containers/WebPush/Create/index.js +0 -1727
  51. package/v2Containers/WebPush/Create/index.scss +0 -123
  52. package/v2Containers/WebPush/Create/messages.js +0 -199
  53. package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +0 -241
  54. package/v2Containers/WebPush/Create/preview/NotificationContainer.js +0 -290
  55. package/v2Containers/WebPush/Create/preview/PreviewContent.js +0 -81
  56. package/v2Containers/WebPush/Create/preview/PreviewControls.js +0 -240
  57. package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +0 -23
  58. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +0 -139
  59. package/v2Containers/WebPush/Create/preview/assets/Light.svg +0 -53
  60. package/v2Containers/WebPush/Create/preview/assets/Top.svg +0 -5
  61. package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
  62. package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
  63. package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +0 -106
  64. package/v2Containers/WebPush/Create/preview/assets/iOS.svg +0 -26
  65. package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +0 -18
  66. package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +0 -29
  67. package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +0 -44
  68. package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -110
  69. package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +0 -45
  70. package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +0 -72
  71. package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +0 -55
  72. package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +0 -70
  73. package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +0 -512
  74. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +0 -77
  75. package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +0 -527
  76. package/v2Containers/WebPush/Create/preview/constants.js +0 -162
  77. package/v2Containers/WebPush/Create/preview/notification-container.scss +0 -104
  78. package/v2Containers/WebPush/Create/preview/preview.scss +0 -409
  79. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +0 -300
  80. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +0 -12
  81. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +0 -12
  82. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +0 -12
  83. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +0 -303
  84. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +0 -11
  85. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +0 -11
  86. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +0 -11
  87. package/v2Containers/WebPush/Create/preview/styles/_base.scss +0 -188
  88. package/v2Containers/WebPush/Create/preview/styles/_ios.scss +0 -106
  89. package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +0 -107
  90. package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +0 -75
  91. package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +0 -174
  92. package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +0 -909
  93. package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +0 -1077
  94. package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +0 -723
  95. package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +0 -943
  96. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +0 -128
  97. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +0 -121
  98. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +0 -144
  99. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +0 -127
  100. package/v2Containers/WebPush/Create/utils/urlValidation.js +0 -116
  101. package/v2Containers/WebPush/Create/utils/urlValidation.test.js +0 -449
  102. package/v2Containers/WebPush/actions.js +0 -60
  103. package/v2Containers/WebPush/constants.js +0 -108
  104. package/v2Containers/WebPush/index.js +0 -2
  105. package/v2Containers/WebPush/reducer.js +0 -104
  106. package/v2Containers/WebPush/sagas.js +0 -119
  107. package/v2Containers/WebPush/selectors.js +0 -65
  108. package/v2Containers/WebPush/tests/reducer.test.js +0 -863
  109. package/v2Containers/WebPush/tests/sagas.test.js +0 -566
  110. package/v2Containers/WebPush/tests/selectors.test.js +0 -843
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "8.0.239-alpha.0",
4
+ "version": "8.0.239",
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'));
@@ -2022,7 +2022,6 @@
2022
2022
  "creatives.containersV2.Whatsapp.vietnamese": "Vietnamese",
2023
2023
  "creatives.containersV2.Whatsapp.whatsappCreateNotification": "{name} has been sent for approval",
2024
2024
  "creatives.containersV2.Whatsapp.zulu": "Zulu",
2025
- "creatives.containersV2.WebPush.addLabels": "Add labels",
2026
2025
  "creatives.containersV2.addLabels": "Add labels",
2027
2026
  "creatives.containersV2.appName": "App Name",
2028
2027
  "creatives.containersV2.applyNow": "Apply now",
@@ -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,45 +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
- isDefault: webpushData?.messageContent?.content?.isDefault || false,
346
- storeType: webpushData?.messageContent?.content?.storeType || 'REGISTERED_STORE',
347
- content: {
348
- title: webpushContent?.title || '',
349
- message: webpushContent?.message || '',
350
- ...(webpushContent?.iconImageUrl && { iconImageUrl: webpushContent.iconImageUrl }),
351
- ...(webpushContent?.cta && { cta: webpushContent.cta }),
352
- ...(webpushContent?.expandableDetails && { expandableDetails: webpushContent.expandableDetails }),
353
- },
354
- messageSubject: webpushData?.messageSubject || "",
355
- offers: webpushData?.messageContent?.content?.offers || [],
356
- };
357
- payload.centralCommsPayload.webpushDeliverySettings = webpushDeliverySettings;
358
-
359
- return payload;
360
- };
361
-
362
320
  // Checks if the template has changed
363
321
  export const getTemplateDiffState = (channel, oldData, newData) => {
364
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,7 +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
53
  } = props;
56
54
  const {
57
55
  formatMessage,
@@ -74,7 +72,7 @@ function CapImageUpload(props) {
74
72
  const [isImageError, updateImageErrorMessage] = useState(false);
75
73
  const [isDrawerRequired, updateDrawerRequirement] = useState(false);
76
74
 
77
- const { CapHeadingSpan } = CapHeading;
75
+ const {CapHeadingSpan} = CapHeading;
78
76
  const ImageComponent = useCallback(
79
77
  () => (
80
78
  <>
@@ -93,7 +91,7 @@ function CapImageUpload(props) {
93
91
 
94
92
  const WithLabel = LabelHOC(ImageComponent);
95
93
 
96
- const uploadImages = useCallback((e, { files }) => {
94
+ const uploadImages = useCallback((e, {files}) => {
97
95
  if (e) {
98
96
  e.preventDefault();
99
97
  }
@@ -111,13 +109,13 @@ function CapImageUpload(props) {
111
109
  height: img.height,
112
110
  error: file && (file.size / (1e+6) > 5), // Checking if file exists and its size is greater than 5MB (5 * 10^6 bytes)
113
111
  };
114
- submitAction({ file, type: 'image', fileParams }, incorrectFile);
112
+ submitAction({file, type: 'image', fileParams}, incorrectFile);
115
113
  };
116
114
  img.onerror = () => {
117
115
  const fileParams = {
118
116
  error: true,
119
117
  };
120
- submitAction({ fileParams }, incorrectFile);
118
+ submitAction({fileParams}, incorrectFile);
121
119
  };
122
120
  if (e) {
123
121
  const event = e;
@@ -125,7 +123,7 @@ function CapImageUpload(props) {
125
123
  }
126
124
  }, []);
127
125
 
128
- const rcsValidation = useCallback((incorrectFile, data, size, height, width, error) => {
126
+ const rcsValidation = useCallback((incorrectFile, data, size, height, width, error) => {
129
127
  if (incorrectFile || size < minImgSize || size > imgSize || height !== imgHeight || width !== imgWidth || error) {
130
128
  updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
131
129
  } else {
@@ -148,19 +146,6 @@ function CapImageUpload(props) {
148
146
  const { height, width, error } = fileParams || {};
149
147
  if (channel === RCS) {
150
148
  rcsValidation(incorrectFile, data, size, height, width, error);
151
- } else if ([WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel)) {
152
- // For WEBPUSH, only validate file extension, size, and format - no dimension validation
153
- if (incorrectFile || size > imgSize || error) {
154
- updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
155
- } else {
156
- updateImageErrorMessage('');
157
- uploadAsset(
158
- data.file,
159
- data.type,
160
- data.fileParams,
161
- index,
162
- );
163
- }
164
149
  } else if (incorrectFile || size > imgSize || height > imgHeight || width > imgWidth || error) {
165
150
  updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
166
151
  } else {
@@ -175,7 +160,7 @@ function CapImageUpload(props) {
175
160
  }, [isImageError]);
176
161
 
177
162
  const capUploaderCustomRequest = useCallback((uploadData) => {
178
- uploadImages(undefined, { files: [uploadData.file] });
163
+ uploadImages(undefined, {files: [uploadData.file]});
179
164
  }, [uploadImages]);
180
165
 
181
166
  const setDrawerVisibility = useCallback((drawervisibleFlag) => updateDrawerRequirement(drawervisibleFlag), [isDrawerRequired]);
@@ -196,27 +181,19 @@ function CapImageUpload(props) {
196
181
  secure_file_path: image, width, height, file_size: size,
197
182
  } = get(imageTemplate, 'metaInfo', {});
198
183
  updateDrawerRequirement(false);
199
- // For WEBPUSH, skip dimension validation - only check extension, size
200
- if ([WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel)) {
201
- if (!allowedExtensionsRegex.test(image) || size > imgSize) {
202
- updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
203
- } else {
204
- updateImageErrorMessage('');
205
- updateImageSrc(image);
206
- }
207
- } else if (!allowedExtensionsRegex.test(image) || height > imgHeight || width > imgWidth || size > imgSize) {
184
+ if (!allowedExtensionsRegex.test(image) || height > imgHeight || width > imgWidth || size > imgSize ) {
208
185
  updateImageErrorMessage(formatMessage(messages.imageErrorDesc));
209
186
  } else {
210
187
  updateImageErrorMessage('');
211
188
  updateImageSrc(image);
212
189
  }
213
- }, [isImageError, isDrawerRequired, channel, allowedExtensionsRegex, imgSize, formatMessage]);
190
+ }, [isImageError, isDrawerRequired]);
214
191
 
215
192
  const getGalleryDrawerContent = useCallback(() => {
216
193
  const locationGallery = {
217
194
  pathname: `/assets`,
218
195
  search: '',
219
- query: !isFullMode ? { type: 'embedded', module: 'library' } : {},
196
+ query: !isFullMode ? {type: 'embedded', module: 'library'} : {},
220
197
  };
221
198
  return (
222
199
  <>
@@ -285,7 +262,7 @@ function CapImageUpload(props) {
285
262
  className="dragger-button re-upload"
286
263
  type="flat"
287
264
  onClick={onReUpload}
288
- style={channelSpecificStyle ? { marginTop: `-${CAP_SPACE_16}` } : {}}
265
+ style={channelSpecificStyle ? { marginTop: '-16px'} : {}}
289
266
  >
290
267
  <FormattedMessage {...messages.imageReUpload} />
291
268
  </CapButton>
@@ -328,18 +305,7 @@ function CapImageUpload(props) {
328
305
  )}
329
306
  {![WHATSAPP, INAPP].includes(channel) && (
330
307
  <CapHeadingSpan type="label2" className="image-dimension">
331
- {[WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel) && recommendedDimensions?.length ? (
332
- <FormattedMessage
333
- {...messages.recommendedDimensions}
334
- values={{
335
- dimensions: recommendedDimensions
336
- .map((dim) => `${dim.width} x ${dim.height}px`)
337
- .join(', '),
338
- }}
339
- />
340
- ) : (
341
- <FormattedMessage {...messages.imageDimenstionDescription} values={{ width: imgWidth, height: imgHeight }} />
342
- )}
308
+ <FormattedMessage {...messages.imageDimenstionDescription} values={{ width: imgWidth, height: imgHeight }} />
343
309
  </CapHeadingSpan>
344
310
  )}
345
311
  {channel === FACEBOOK && (
@@ -362,7 +328,7 @@ function CapImageUpload(props) {
362
328
  getImageSizeLabel()
363
329
  )
364
330
  )}
365
- {[VIBER, INAPP, MOBILEPUSH, WEBPUSH, WEBPUSH_BRAND_ICON].includes(channel) && getImageSizeLabel()}
331
+ {[VIBER, INAPP, MOBILEPUSH].includes(channel) && getImageSizeLabel()}
366
332
  <CapHeadingSpan type="label2" className="image-format">
367
333
  {channel === INAPP ? <FormattedMessage {...messages.format2} /> : <FormattedMessage {...messages.format} />}
368
334
  </CapHeadingSpan>
@@ -391,12 +357,6 @@ CapImageUpload.propTypes = {
391
357
  channel: PropTypes.string,
392
358
  channelSpecificStyle: PropTypes.bool,
393
359
  disableAutoRestore: PropTypes.bool,
394
- recommendedDimensions: PropTypes.arrayOf(
395
- PropTypes.shape({
396
- width: PropTypes.number.isRequired,
397
- height: PropTypes.number.isRequired,
398
- })
399
- ),
400
360
  };
401
361
 
402
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',
@@ -40,7 +40,6 @@ export const TRACK_CREATE_IMAGE = 'createImage';
40
40
  export const TRACK_CREATE_LINE = 'createLine';
41
41
  export const TRACK_CREATE_VIBER = 'createViber';
42
42
  export const TRACK_CREATE_FACEBOOK = 'createFacebook';
43
- export const TRACK_CREATE_WEBPUSH = 'createWebPush';
44
43
 
45
44
  export const CREATE = 'create';
46
45
  export const EDIT = 'edit';
@@ -55,7 +54,6 @@ export const EMAIL = 'email';
55
54
  export const ASSETS = 'assets';
56
55
  export const ZALO = 'zalo';
57
56
  export const INAPP = 'inapp';
58
- export const WEBPUSH = 'webpush';
59
57
 
60
58
  export const JP_LOCALE_HIDE_FEATURE = 'JP_LOCALE_HIDE_FEATURE';
61
59
 
@@ -67,7 +65,6 @@ export const TRACK_EDIT_IMAGE = 'editImage';
67
65
  export const TRACK_EDIT_LINE = 'editLine';
68
66
  export const TRACK_EDIT_VIBER = 'editViber';
69
67
  export const TRACK_EDIT_FACEBOOK = 'editFacebook';
70
- export const TRACK_EDIT_WEBPUSH = 'editWebPush';
71
68
 
72
69
  export const CHANNEL_CREATE_TRACK_MAPPING = {
73
70
  sms: TRACK_CREATE_SMS,
@@ -78,7 +75,6 @@ export const CHANNEL_CREATE_TRACK_MAPPING = {
78
75
  line: TRACK_CREATE_LINE,
79
76
  viber: TRACK_CREATE_VIBER,
80
77
  facebook: TRACK_CREATE_FACEBOOK,
81
- webpush: TRACK_CREATE_WEBPUSH,
82
78
  };
83
79
 
84
80
  export const CHANNEL_EDIT_TRACK_MAPPING = {
@@ -90,7 +86,6 @@ export const CHANNEL_EDIT_TRACK_MAPPING = {
90
86
  line: TRACK_EDIT_LINE,
91
87
  viber: TRACK_EDIT_VIBER,
92
88
  facebook: TRACK_EDIT_FACEBOOK,
93
- webpush: TRACK_EDIT_WEBPUSH,
94
89
  };
95
90
  export const GTM_TRACKING_ID = 'UA-110024621-2';
96
91
  export const BEE_PLUGIN = 'BEE_PLUGIN';
@@ -1950,7 +1950,6 @@ new message content.",
1950
1950
  "creatives.containersV2.WeChat.templateName": "Template Name",
1951
1951
  "creatives.containersV2.WeChat.wechatCreateSuccess": "WeChat template mapped successfully",
1952
1952
  "creatives.containersV2.WeChat.wechatEditSuccess": "WeChat template edited successfully",
1953
- "creatives.containersV2.WebPush.addLabels": "Add labels",
1954
1953
  "creatives.containersV2.Whatsapp.IncorrectCategoryError": "INCORRECT CATEGORY: Message content different from expected content in the category selected. Refer {here} for expected content in each category.",
1955
1954
  "creatives.containersV2.Whatsapp.accountUpdate": "Account update",
1956
1955
  "creatives.containersV2.Whatsapp.accountUpdateTooltip": "Let customers know about updates or changes to their accounts.",
@@ -28,10 +28,6 @@ import { getWhatsappContent } from '../Whatsapp/utils';
28
28
  import * as commonUtil from '../../utils/common';
29
29
  import Zalo from '../Zalo';
30
30
  import MobilePushNew from '../MobilePushNew';
31
- import WebPush from '../WebPush';
32
- import DevicePreviewContent from '../WebPush/Create/preview/DevicePreviewContent';
33
- import { LAYOUT_MODE } from '../WebPush/Create/preview/constants';
34
- import { WEBPUSH_CONTENT_FIELDS, WEBPUSH_TEMPLATE_PATHS } from '../WebPush/constants';
35
31
  const CreativesWrapper = styled.div`
36
32
  .ant-popover,
37
33
  .ant-notification,
@@ -168,7 +164,6 @@ export function SlideBoxContent(props) {
168
164
  handleTestAndPreview,
169
165
  handleCloseTestAndPreview,
170
166
  isTestAndPreviewMode,
171
- supportedTags = [],
172
167
  } = props;
173
168
  const type = (messageDetails.type || '').toLowerCase(); // type is context in get tags values : outbound | dvs | referral | loyalty | coupons
174
169
  const query = { type: !isFullMode && 'embedded', module: isFullMode ? 'default' : 'library', isEditFromCampaigns: (templateData || {}).isEditFromCampaigns};
@@ -205,7 +200,6 @@ export function SlideBoxContent(props) {
205
200
  const isCreateRcs = isCreate && channel === constants.RCS;
206
201
  const isCreateMPush = isCreate && channel === constants.MOBILE_PUSH;
207
202
  const isCreateCallTask = isCreate && channel === constants.CALL_TASK;
208
- const isCreateWebPush = isCreate && channel === constants.WEBPUSH;
209
203
  let isEditSms = false;
210
204
  let isEditEmailWithId = false;
211
205
  let isEmailEditWithContent = false;
@@ -213,14 +207,12 @@ export function SlideBoxContent(props) {
213
207
  let isEmailPreview = false;
214
208
  let isMpushPreview = false;
215
209
  let isInappPreview = false;
216
- let isWebPushPreview = false;
217
210
  let isEditCallTask = false;
218
211
  let isEditMPush = false;
219
212
  let isEditFacebook = false;
220
213
  let isEditFTP = false;
221
214
  let isEditWhatsapp = false;
222
215
  let isEditInApp = false;
223
- let isEditWebPush = false;
224
216
  let isEditRcs = false;
225
217
  let isEditZalo = false;
226
218
  const isEmailCreate = isCreate && channel === constants.EMAIL;
@@ -234,12 +226,10 @@ export function SlideBoxContent(props) {
234
226
  isEditFacebook = isEdit && channel === constants.FACEBOOK;
235
227
  isEditWhatsapp = isEdit && channel === constants.WHATSAPP;
236
228
  isEditRcs = isEdit && channel === constants.RCS;
237
- isEditWebPush = isEdit && channel === constants.WEBPUSH;
238
229
  isPreview = slidBoxContent === 'preview' && [constants.SMS, constants.LINE, constants.WHATSAPP, constants.FACEBOOK, constants.VIBER, constants.RCS].includes(channel);
239
230
  isEmailPreview = slidBoxContent === 'preview' && channel === constants.EMAIL;
240
231
  isMpushPreview = slidBoxContent === 'preview' && channel === constants.MOBILE_PUSH;
241
232
  isInappPreview = slidBoxContent === 'preview' && channel === constants.INAPP;
242
- isWebPushPreview = slidBoxContent === 'preview' && channel === constants.WEBPUSH;
243
233
  isEditFTP = isEdit && [constants.NO_COMMUNICATION, constants.FTP].includes(channel);
244
234
  isEditZalo = isEdit && channel?.toUpperCase() === constants.ZALO;
245
235
  isEditInApp = isEdit && channel === constants.INAPP;
@@ -487,30 +477,8 @@ export function SlideBoxContent(props) {
487
477
  templateData={templateData}
488
478
  channel={channel}
489
479
  forwardedTags={forwardedTags}
490
- />
480
+ />
491
481
  )}
492
- {isWebPushPreview && (() => {
493
- const webpushContent = get(templateData, WEBPUSH_TEMPLATE_PATHS.CONTENT, {});
494
- const notificationTitle = webpushContent?.[WEBPUSH_CONTENT_FIELDS.TITLE] || '';
495
- const notificationBody = webpushContent?.[WEBPUSH_CONTENT_FIELDS.MESSAGE] || '';
496
- const imageSrc = webpushContent?.[WEBPUSH_CONTENT_FIELDS.IMAGE] || '';
497
- const brandIconSrc = webpushContent?.[WEBPUSH_CONTENT_FIELDS.BRAND_ICON] || '';
498
- // Extract URL from onClickAction or use empty string
499
- const url = webpushContent?.[WEBPUSH_CONTENT_FIELDS.ON_CLICK_ACTION]?.url || '';
500
-
501
- return (
502
- <div className="webpush-preview-container">
503
- <DevicePreviewContent
504
- notificationTitle={notificationTitle}
505
- notificationBody={notificationBody}
506
- url={url}
507
- imageSrc={imageSrc}
508
- brandIconSrc={brandIconSrc}
509
- layoutMode={LAYOUT_MODE.COMPACT}
510
- />
511
- </div>
512
- );
513
- })()}
514
482
 
515
483
  {
516
484
  (currentChannel === constants.WECHAT && !!slidBoxContent) && <WechatWrapper
@@ -1011,28 +979,6 @@ export function SlideBoxContent(props) {
1011
979
  />
1012
980
  )}
1013
981
 
1014
- {(isCreateWebPush || isEditWebPush) && (
1015
- <WebPush
1016
- isFullMode={isFullMode}
1017
- handleClose={handleClose}
1018
- onCreateComplete={onCreateComplete}
1019
- getFormData={getFormData}
1020
- isGetFormData={isGetFormData}
1021
- templateData={isEditWebPush ? templateData : undefined}
1022
- creativesMode={creativesMode}
1023
- params={isEditWebPush && templateData ? { id: templateData._id } : undefined}
1024
- location={{
1025
- pathname: isEditWebPush ? '/webpush/edit' : '/webpush/create',
1026
- query,
1027
- search: '',
1028
- }}
1029
- getDefaultTags={type}
1030
- forwardedTags={forwardedTags}
1031
- supportedTags={supportedTags}
1032
- selectedOfferDetails={selectedOfferDetails}
1033
- eventContextTags={eventContextTags}
1034
- />
1035
- )}
1036
982
  {isCreateRcs && (<Rcs
1037
983
  {...rcsCommonProps}
1038
984
  showLiquidErrorInFooter={showLiquidErrorInFooter}
@@ -1089,7 +1035,6 @@ SlideBoxContent.propTypes = {
1089
1035
  onValidationFail: PropTypes.func,
1090
1036
  channelsToHide: PropTypes.array,
1091
1037
  forwardedTags: PropTypes.object,
1092
- supportedTags: PropTypes.array,
1093
1038
  selectedOfferDetails: PropTypes.array,
1094
1039
  channelsToDisable: PropTypes.array,
1095
1040
  weChatTemplateType: PropTypes.string,
@@ -1105,7 +1050,7 @@ SlideBoxContent.propTypes = {
1105
1050
  onFTPSubmit: PropTypes.func,
1106
1051
  messageStrategy: PropTypes.string,
1107
1052
  fbAdManager: PropTypes.string,
1108
- showDisabledFBInfo: PropTypes.bool,
1053
+ showDisabledFBInfo: PropTypes.boolean,
1109
1054
  orgUnitId: PropTypes.any,
1110
1055
  smsRegister: PropTypes.any,
1111
1056
  getCmsTemplatesInProgress: PropTypes.bool,
@@ -71,7 +71,6 @@ export function SlideBoxHeader(props) {
71
71
  rcs: <FormattedMessage {...messages.rcsCreative} />,
72
72
  zalo: <FormattedMessage {...messages.zaloTemplate} />,
73
73
  viber: <FormattedMessage {...messages.viberTemplate} />,
74
- webpush: <FormattedMessage {...messages.webPushTemplate} />,
75
74
  };
76
75
  return labels[currentChannel.toLowerCase()];
77
76
  };
@@ -21,8 +21,6 @@ export const PUSH = "PUSH";
21
21
  export const RCS = "RCS";
22
22
  export const ZALO = "ZALO";
23
23
  export const INAPP = "INAPP";
24
- export const WEBPUSH = "WEBPUSH";
25
- export const WEBPUSH_BRAND_ICON = "WEBPUSH_BRAND_ICON";
26
24
  export const PREVIEW = "preview";
27
25
  export const EDIT_TEMPLATE = "editTemplate";
28
26
  export const JOURNEY = "journey";
@@ -708,68 +708,6 @@ export class Creatives extends React.Component {
708
708
  };
709
709
  break;
710
710
  }
711
- case constants.WEBPUSH: {
712
- // Convert from campaign format (messageContent.content.content) to creatives format
713
- const webpushContent = get(templateData, 'content', {});
714
- const accountId = get(templateData, 'accountId');
715
- const templateName = templateData.name || 'Campaign message WebPush content';
716
- const brandIcon = webpushContent.iconImageUrl || '';
717
-
718
- // Map cta to onClickAction
719
- let onClickAction = null;
720
- if (webpushContent.cta) {
721
- if (webpushContent.cta.type === 'EXTERNAL_URL') {
722
- onClickAction = {
723
- type: 'URL',
724
- url: webpushContent.cta.actionLink || '',
725
- };
726
- } else {
727
- onClickAction = {
728
- type: webpushContent.cta.type || 'SITE_URL',
729
- };
730
- }
731
- }
732
-
733
- // Map expandableDetails.ctas to ctas array
734
- let ctas = [];
735
- if (webpushContent.expandableDetails?.ctas && webpushContent.expandableDetails.ctas.length > 0) {
736
- ctas = webpushContent.expandableDetails.ctas.map((ctaItem) => ({
737
- actionText: ctaItem.title || ctaItem.actionText || '',
738
- type: 'URL',
739
- actionLink: ctaItem.actionLink || '',
740
- }));
741
- }
742
-
743
- // Map expandableDetails.media to image if present
744
- let image = null;
745
- if (webpushContent.expandableDetails?.media && webpushContent.expandableDetails.media.length > 0) {
746
- const firstMedia = webpushContent.expandableDetails.media[0];
747
- if (firstMedia.type === 'IMAGE' && firstMedia.url) {
748
- image = firstMedia.url;
749
- }
750
- }
751
-
752
- creativesTemplateData = {
753
- type: channel,
754
- name: templateData.messageSubject,
755
- versions: {
756
- base: {
757
- content: {
758
- webpush: {
759
- title: webpushContent.title || '',
760
- message: webpushContent.message || '',
761
- ...(brandIcon && { brandIcon }),
762
- ...(onClickAction && { onClickAction }),
763
- ...(ctas.length > 0 && { ctas }),
764
- ...(image && { image, mediaType: "IMAGE" }),
765
- },
766
- },
767
- },
768
- },
769
- definition: { accountId },
770
- };
771
- break;
772
- }
773
711
  default:
774
712
  break;
775
713
  }
@@ -1184,96 +1122,6 @@ export class Creatives extends React.Component {
1184
1122
  }
1185
1123
  }
1186
1124
  break;
1187
- case constants.WEBPUSH: {
1188
- if (template.value) {
1189
- const channelTemplate = template.value;
1190
- const accountId = get(channelTemplate, 'definition.accountId');
1191
- const webpushContent = get(channelTemplate, 'versions.base.content.webpush', {});
1192
-
1193
- const iconImageUrl = webpushContent.brandIcon || webpushContent.iconImageUrl || '';
1194
-
1195
- // Map onClickAction to cta
1196
- let cta = null;
1197
- if (webpushContent.onClickAction) {
1198
- if (webpushContent.onClickAction.type === 'URL') {
1199
- cta = {
1200
- type: 'EXTERNAL_URL',
1201
- actionLink: webpushContent.onClickAction.url || '',
1202
- };
1203
- } else {
1204
- cta = {
1205
- type: webpushContent.onClickAction.type || 'SITE_URL',
1206
- actionLink: webpushContent.onClickAction.url || '',
1207
- };
1208
- }
1209
- } else if (webpushContent.cta) {
1210
- // Fallback to cta if onClickAction is not present
1211
- cta = {
1212
- type: webpushContent.cta.type || 'EXTERNAL_URL',
1213
- actionLink: webpushContent.cta.actionLink || '',
1214
- };
1215
- }
1216
-
1217
- // Map ctas array to expandableDetails.ctas
1218
- let expandableDetails = null;
1219
- const hasCtas = webpushContent.ctas && webpushContent.ctas.length > 0;
1220
- const hasImage = webpushContent.image;
1221
-
1222
- if (hasCtas || hasImage) {
1223
- expandableDetails = {
1224
- media: [],
1225
- ctas: [],
1226
- };
1227
-
1228
- // Map image to expandableDetails.media
1229
- if (hasImage) {
1230
- expandableDetails.media = [{
1231
- url: webpushContent.image,
1232
- type: 'IMAGE',
1233
- }];
1234
- }
1235
-
1236
- // Map ctas array to expandableDetails.ctas
1237
- if (hasCtas) {
1238
- expandableDetails.ctas = webpushContent.ctas.map((ctaItem) => ({
1239
- type: ctaItem.type === 'URL' ? 'EXTERNAL_URL' : ctaItem.type,
1240
- action: ctaItem.action || '',
1241
- title: ctaItem.actionText || ctaItem.title || '',
1242
- actionLink: ctaItem.actionLink || '',
1243
- }));
1244
- }
1245
- } else if (webpushContent.expandableDetails) {
1246
- // If expandableDetails already exists, use it
1247
- expandableDetails = {
1248
- media: webpushContent.expandableDetails.media || [],
1249
- ctas: webpushContent.expandableDetails.ctas || [],
1250
- };
1251
- }
1252
-
1253
- // Convert from creatives format to campaign format
1254
- templateData = {
1255
- channel,
1256
- messageContent: {
1257
- content: {
1258
- channel: 'WEBPUSH',
1259
- accountId,
1260
- isDefault: false,
1261
- storeType: 'REGISTERED_STORE',
1262
- content: {
1263
- title: webpushContent.title || '',
1264
- message: webpushContent.message || '',
1265
- ...(iconImageUrl && { iconImageUrl }),
1266
- ...(cta && { cta }),
1267
- ...(expandableDetails && { expandableDetails }),
1268
- },
1269
- messageSubject: channelTemplate?.name ? channelTemplate.name : 'messageSubject',
1270
- offers: [],
1271
- },
1272
- },
1273
- };
1274
- }
1275
- break;
1276
- }
1277
1125
  default:
1278
1126
  break;
1279
1127
  }