@capillarytech/creatives-library 8.0.242-alpha.1 → 8.0.242-alpha.11

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 (255) hide show
  1. package/assets/Android.png +0 -0
  2. package/assets/iOS.png +0 -0
  3. package/config/app.js +1 -1
  4. package/constants/unified.js +2 -2
  5. package/initialReducer.js +0 -2
  6. package/package.json +1 -1
  7. package/services/api.js +5 -10
  8. package/services/tests/api.test.js +0 -18
  9. package/translations/en.json +4 -3
  10. package/utils/common.js +6 -5
  11. package/utils/commonUtils.js +1 -14
  12. package/utils/imageUrlUpload.js +141 -0
  13. package/utils/tests/commonUtil.test.js +0 -224
  14. package/utils/transformTemplateConfig.js +10 -0
  15. package/v2Components/CapDeviceContent/index.js +56 -61
  16. package/v2Components/CapImageUpload/constants.js +2 -0
  17. package/v2Components/CapImageUpload/index.js +65 -16
  18. package/v2Components/CapImageUpload/index.scss +4 -1
  19. package/v2Components/CapImageUpload/messages.js +5 -1
  20. package/v2Components/CapImageUrlUpload/constants.js +26 -0
  21. package/v2Components/CapImageUrlUpload/index.js +365 -0
  22. package/v2Components/CapImageUrlUpload/index.scss +35 -0
  23. package/v2Components/CapImageUrlUpload/messages.js +47 -0
  24. package/v2Components/CapTagList/index.js +1 -6
  25. package/v2Components/CapTagListWithInput/index.js +1 -5
  26. package/v2Components/CapTagListWithInput/messages.js +1 -1
  27. package/v2Components/CapWhatsappCTA/tests/index.test.js +0 -5
  28. package/v2Components/ErrorInfoNote/index.js +72 -412
  29. package/v2Components/ErrorInfoNote/messages.js +0 -22
  30. package/v2Components/ErrorInfoNote/style.scss +2 -279
  31. package/v2Components/HtmlEditor/HTMLEditor.js +89 -210
  32. package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +133 -1132
  33. package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +12 -17
  34. package/v2Components/HtmlEditor/_htmlEditor.scss +23 -8
  35. package/v2Components/HtmlEditor/_index.lazy.scss +1 -1
  36. package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +101 -13
  37. package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +139 -148
  38. package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +1 -2
  39. package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
  40. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +1 -1
  41. package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +0 -1
  42. package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +7 -4
  43. package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +45 -35
  44. package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +3 -1
  45. package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
  46. package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +6 -7
  47. package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +6 -3
  48. package/v2Components/HtmlEditor/components/PreviewPane/index.js +11 -10
  49. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
  50. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +62 -87
  51. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +31 -49
  52. package/v2Components/HtmlEditor/constants.js +20 -29
  53. package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +16 -373
  54. package/v2Components/HtmlEditor/hooks/useEditorContent.js +2 -5
  55. package/v2Components/HtmlEditor/hooks/useInAppContent.js +146 -88
  56. package/v2Components/HtmlEditor/index.js +1 -1
  57. package/v2Components/HtmlEditor/messages.js +85 -95
  58. package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +101 -99
  59. package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +25 -23
  60. package/v2Components/HtmlEditor/utils/validationAdapter.js +41 -34
  61. package/v2Components/MobilePushPreviewV2/index.js +7 -32
  62. package/v2Components/TemplatePreview/_templatePreview.scss +24 -44
  63. package/v2Components/TemplatePreview/index.js +32 -47
  64. package/v2Components/TemplatePreview/messages.js +0 -4
  65. package/v2Components/TestAndPreviewSlidebox/index.js +25 -31
  66. package/v2Containers/App/constants.js +5 -0
  67. package/v2Containers/BeeEditor/index.js +80 -82
  68. package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +4 -3
  69. package/v2Containers/CreativesContainer/SlideBoxContent.js +118 -148
  70. package/v2Containers/CreativesContainer/SlideBoxFooter.js +3 -9
  71. package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -2
  72. package/v2Containers/CreativesContainer/constants.js +2 -1
  73. package/v2Containers/CreativesContainer/index.js +41 -173
  74. package/v2Containers/CreativesContainer/messages.js +4 -4
  75. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +210 -0
  76. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +354 -38
  77. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -36
  78. package/v2Containers/Email/actions.js +0 -7
  79. package/v2Containers/Email/constants.js +1 -5
  80. package/v2Containers/Email/index.js +0 -13
  81. package/v2Containers/Email/messages.js +0 -32
  82. package/v2Containers/Email/reducer.js +1 -12
  83. package/v2Containers/Email/sagas.js +6 -41
  84. package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +0 -2
  85. package/v2Containers/EmailWrapper/components/EmailWrapperView.js +7 -193
  86. package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +74 -40
  87. package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +67 -2
  88. package/v2Containers/EmailWrapper/constants.js +0 -2
  89. package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +67 -436
  90. package/v2Containers/EmailWrapper/index.js +23 -99
  91. package/v2Containers/EmailWrapper/messages.js +1 -61
  92. package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +1 -26
  93. package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +77 -111
  94. package/v2Containers/InApp/actions.js +0 -7
  95. package/v2Containers/InApp/constants.js +4 -20
  96. package/v2Containers/InApp/index.js +357 -800
  97. package/v2Containers/InApp/index.scss +3 -4
  98. package/v2Containers/InApp/messages.js +3 -7
  99. package/v2Containers/InApp/reducer.js +3 -21
  100. package/v2Containers/InApp/sagas.js +9 -29
  101. package/v2Containers/InApp/selectors.js +5 -25
  102. package/v2Containers/InApp/tests/index.test.js +50 -154
  103. package/v2Containers/InApp/tests/reducer.test.js +0 -34
  104. package/v2Containers/InApp/tests/sagas.test.js +9 -61
  105. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +12 -12
  106. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +8 -8
  107. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +100 -77
  108. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +72 -63
  109. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +184 -150
  110. package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +16 -12
  111. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +32 -28
  112. package/v2Containers/TagList/index.js +1 -67
  113. package/v2Containers/Templates/ChannelTypeIllustration.js +13 -1
  114. package/v2Containers/Templates/_templates.scss +202 -56
  115. package/v2Containers/Templates/actions.js +2 -1
  116. package/v2Containers/Templates/constants.js +1 -0
  117. package/v2Containers/Templates/index.js +278 -128
  118. package/v2Containers/Templates/messages.js +24 -4
  119. package/v2Containers/Templates/reducer.js +2 -0
  120. package/v2Containers/Templates/tests/index.test.js +10 -0
  121. package/v2Containers/TemplatesV2/index.js +8 -1
  122. package/v2Containers/TemplatesV2/messages.js +4 -0
  123. package/v2Containers/WebPush/Create/components/BrandIconSection.js +108 -0
  124. package/v2Containers/WebPush/Create/components/ButtonForm.js +172 -0
  125. package/v2Containers/WebPush/Create/components/ButtonItem.js +101 -0
  126. package/v2Containers/WebPush/Create/components/ButtonList.js +145 -0
  127. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +164 -0
  128. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +463 -0
  129. package/v2Containers/WebPush/Create/components/FormActions.js +54 -0
  130. package/v2Containers/WebPush/Create/components/FormActions.test.js +163 -0
  131. package/v2Containers/WebPush/Create/components/MediaSection.js +142 -0
  132. package/v2Containers/WebPush/Create/components/MediaSection.test.js +341 -0
  133. package/v2Containers/WebPush/Create/components/MessageSection.js +103 -0
  134. package/v2Containers/WebPush/Create/components/MessageSection.test.js +268 -0
  135. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +87 -0
  136. package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +210 -0
  137. package/v2Containers/WebPush/Create/components/TemplateNameSection.js +54 -0
  138. package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +143 -0
  139. package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +86 -0
  140. package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +16 -0
  141. package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +41 -0
  142. package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +54 -0
  143. package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +37 -0
  144. package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +21 -0
  145. package/v2Containers/WebPush/Create/components/_buttons.scss +246 -0
  146. package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +554 -0
  147. package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +607 -0
  148. package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +633 -0
  149. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +666 -0
  150. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +74 -0
  151. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +78 -0
  152. package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +138 -0
  153. package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +406 -0
  154. package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +30 -0
  155. package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +151 -0
  156. package/v2Containers/WebPush/Create/hooks/useImageUpload.js +104 -0
  157. package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +538 -0
  158. package/v2Containers/WebPush/Create/hooks/useTagManagement.js +122 -0
  159. package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +633 -0
  160. package/v2Containers/WebPush/Create/index.js +1056 -0
  161. package/v2Containers/WebPush/Create/index.scss +134 -0
  162. package/v2Containers/WebPush/Create/messages.js +203 -0
  163. package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +228 -0
  164. package/v2Containers/WebPush/Create/preview/NotificationContainer.js +294 -0
  165. package/v2Containers/WebPush/Create/preview/PreviewContent.js +90 -0
  166. package/v2Containers/WebPush/Create/preview/PreviewControls.js +305 -0
  167. package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +23 -0
  168. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +150 -0
  169. package/v2Containers/WebPush/Create/preview/assets/Light.svg +53 -0
  170. package/v2Containers/WebPush/Create/preview/assets/Top.svg +5 -0
  171. package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +9 -0
  172. package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +9 -0
  173. package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
  174. package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
  175. package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +106 -0
  176. package/v2Containers/WebPush/Create/preview/assets/iOS.svg +26 -0
  177. package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +9 -0
  178. package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +9 -0
  179. package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +18 -0
  180. package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +29 -0
  181. package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +9 -0
  182. package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +9 -0
  183. package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +47 -0
  184. package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +141 -0
  185. package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +45 -0
  186. package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +68 -0
  187. package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +61 -0
  188. package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +99 -0
  189. package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +733 -0
  190. package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +571 -0
  191. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +81 -0
  192. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +81 -0
  193. package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +50 -0
  194. package/v2Containers/WebPush/Create/preview/constants.js +637 -0
  195. package/v2Containers/WebPush/Create/preview/notification-container.scss +79 -0
  196. package/v2Containers/WebPush/Create/preview/preview.scss +351 -0
  197. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +370 -0
  198. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +12 -0
  199. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +12 -0
  200. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +12 -0
  201. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +47 -0
  202. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +11 -0
  203. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +11 -0
  204. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +11 -0
  205. package/v2Containers/WebPush/Create/preview/styles/_base.scss +207 -0
  206. package/v2Containers/WebPush/Create/preview/styles/_ios.scss +153 -0
  207. package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +107 -0
  208. package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +101 -0
  209. package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +229 -0
  210. package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +909 -0
  211. package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +1081 -0
  212. package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +723 -0
  213. package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +943 -0
  214. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +131 -0
  215. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +112 -0
  216. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +144 -0
  217. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +129 -0
  218. package/v2Containers/WebPush/Create/utils/payloadBuilder.js +94 -0
  219. package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +390 -0
  220. package/v2Containers/WebPush/Create/utils/previewUtils.js +89 -0
  221. package/v2Containers/WebPush/Create/utils/urlValidation.js +115 -0
  222. package/v2Containers/WebPush/Create/utils/urlValidation.test.js +449 -0
  223. package/v2Containers/WebPush/Create/utils/validation.js +75 -0
  224. package/v2Containers/WebPush/Create/utils/validation.test.js +283 -0
  225. package/v2Containers/WebPush/actions.js +60 -0
  226. package/v2Containers/WebPush/constants.js +128 -0
  227. package/v2Containers/WebPush/index.js +2 -0
  228. package/v2Containers/WebPush/reducer.js +104 -0
  229. package/v2Containers/WebPush/sagas.js +119 -0
  230. package/v2Containers/WebPush/selectors.js +65 -0
  231. package/v2Containers/WebPush/tests/reducer.test.js +863 -0
  232. package/v2Containers/WebPush/tests/sagas.test.js +566 -0
  233. package/v2Containers/WebPush/tests/selectors.test.js +843 -0
  234. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +528 -431
  235. package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +0 -254
  236. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +0 -362
  237. package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +0 -51
  238. package/v2Containers/BeePopupEditor/constants.js +0 -10
  239. package/v2Containers/BeePopupEditor/index.js +0 -193
  240. package/v2Containers/BeePopupEditor/tests/index.test.js +0 -627
  241. package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +0 -1045
  242. package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +0 -376
  243. package/v2Containers/InApp/__tests__/sagas.test.js +0 -363
  244. package/v2Containers/InApp/tests/selectors.test.js +0 -612
  245. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +0 -162
  246. package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +0 -267
  247. package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +0 -9
  248. package/v2Containers/InAppWrapper/constants.js +0 -16
  249. package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +0 -473
  250. package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +0 -198
  251. package/v2Containers/InAppWrapper/index.js +0 -148
  252. package/v2Containers/InAppWrapper/messages.js +0 -49
  253. package/v2Containers/InappAdvance/index.js +0 -1099
  254. package/v2Containers/InappAdvance/index.scss +0 -10
  255. package/v2Containers/InappAdvance/tests/index.test.js +0 -448
@@ -26,17 +26,8 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
26
26
  this.getPreview = this.getPreview.bind(this);
27
27
  this.setContent = this.setContent.bind(this);
28
28
  this.goToDuplicate = this.goToDuplicate.bind(this);
29
- // Check for INAPP channel structure (versions.base.content.ANDROID/IOS) or MOBILE_PUSH structure (versions.base.ANDROID/IOS)
30
- const { channel, templateData } = props;
31
- let hasAndroid;
32
- let hasIos;
33
- if (channel === INAPP.toUpperCase()) {
34
- hasAndroid = get(templateData, 'versions.base.content.ANDROID') || get(templateData, 'androidContent');
35
- hasIos = get(templateData, 'versions.base.content.IOS') || get(templateData, 'iosContent');
36
- } else {
37
- hasAndroid = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent.title');
38
- hasIos = get(templateData, 'versions.base.IOS') || get(templateData, 'iosContent.title');
39
- }
29
+ const hasAndroid = get(props, 'templateData.versions.base.ANDROID') || get(props, 'templateData.androidContent.title');
30
+ const hasIos = get(props, 'templateData.versions.base.IOS') || get(props, 'templateData.iosContent.title');
40
31
  let device = "android";
41
32
  if (hasAndroid) {
42
33
  device = 'android';
@@ -54,17 +45,6 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
54
45
  if (channel === INAPP.toUpperCase()) {
55
46
  const androidContent = get(templateData, 'versions.base.content.ANDROID') || get(templateData, 'androidContent');
56
47
  const iosContent = get(templateData, 'versions.base.content.IOS') || get(templateData, 'iosContent');
57
- const isBeeFreeTemplate = get(androidContent, 'isBEEeditor') || get(iosContent, 'isBEEeditor');
58
- if (isBeeFreeTemplate) {
59
- // Normalize device to 'android' or 'ios' for comparison
60
- const normalizedDevice = device === 'iphone' ? 'ios' : device?.toLowerCase();
61
- const isAndroid = normalizedDevice === ANDROID.toLowerCase();
62
- content = {
63
- inAppPreviewContent: isAndroid ? androidContent?.beeHtml : iosContent?.beeHtml,
64
- isBeeFreeTemplate: true,
65
- };
66
- return content;
67
- }
68
48
  const androidPreviewContent = {
69
49
  templateTitle: androidContent?.title,
70
50
  templateMsg: androidContent?.message,
@@ -77,12 +57,9 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
77
57
  mediaPreview: { inAppImageSrcIos: iosContent?.expandableDetails?.image },
78
58
  ctaData: getCtaObject(iosContent?.expandableDetails?.ctas),
79
59
  };
80
- // Normalize device to 'android' or 'ios' for comparison
81
- const normalizedDevice = device === 'iphone' ? 'ios' : device?.toLowerCase();
82
- const isAndroid = normalizedDevice === ANDROID.toLowerCase();
83
60
  content = {
84
- inAppPreviewContent: isAndroid ? androidPreviewContent : iosPreviewContent,
85
- templateLayoutType: isAndroid ? androidContent?.bodyType : iosContent?.bodyType,
61
+ inAppPreviewContent: device === ANDROID.toLowerCase() ? androidPreviewContent : iosPreviewContent,
62
+ templateLayoutType: device === ANDROID.toLowerCase() ? androidContent?.bodyType : iosContent?.bodyType,
86
63
  };
87
64
  } else if (channel === MOBILE_PUSH) {
88
65
  const androidContent = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent');
@@ -148,9 +125,7 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
148
125
  }
149
126
 
150
127
  getPreview(device) {
151
- // Normalize device to 'android' or 'ios' for comparison
152
- const normalizedDevice = device === 'iphone' ? 'ios' : device?.toLowerCase();
153
- const deviceParam = normalizedDevice === ANDROID.toLowerCase() ? ANDROID : IOS;
128
+ const deviceParam = device === ANDROID.toLowerCase() ? ANDROID : IOS;
154
129
  return (
155
130
  <TemplatePreview
156
131
  device={this.props.channel === INAPP.toUpperCase() ? deviceParam : device}
@@ -184,8 +159,8 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
184
159
  hasAndroid = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent.title');
185
160
  hasIos = get(templateData, 'versions.base.IOS') || get(templateData, 'iosContent.title');
186
161
  } else if (this.props.channel === INAPP.toUpperCase()) {
187
- hasAndroid = get(templateData, 'versions.base.content.ANDROID') || get(templateData, 'androidContent');
188
- hasIos = get(templateData, 'versions.base.content.IOS') || get(templateData, 'iosContent');
162
+ hasAndroid = get(templateData, 'versions.base.content.ANDROID') || get(templateData, 'androidContent.title');
163
+ hasIos = get(templateData, 'versions.base.content.IOS') || get(templateData, 'iosContent.title');
189
164
  }
190
165
  const hasBothAndroidAndIos = hasAndroid && hasIos;
191
166
  return (
@@ -16,11 +16,10 @@
16
16
  &.mobilepush
17
17
 
18
18
  .inapp-message-container-POPUP-ANDROID {
19
- background-color: $CAP_WHITE;
20
19
  position: absolute;
21
- top: 30%;
20
+ top: 20%;
22
21
  display: flex;
23
- width: 14.286rem;
22
+ width: 200px;
24
23
  left: 28%;
25
24
 
26
25
  .inapp-title-POPUP-ANDROID {
@@ -60,10 +59,10 @@
60
59
  .inapp-message-container-HEADER-ANDROID {
61
60
  position: absolute;
62
61
  display: flex;
63
- width: 17.571rem;
64
- left: 18%;
65
- top: 4.071rem;
66
- background-color: $CAP_WHITE;
62
+ // bottom: 19.4rem;
63
+ width: 200px;
64
+ left: 28%;
65
+ top: 20px;
67
66
 
68
67
  .inapp-title-HEADER-ANDROID {
69
68
  left: 34%;
@@ -130,24 +129,22 @@
130
129
 
131
130
 
132
131
  .inapp-message-container-FOOTER-ANDROID {
133
- background-color: $CAP_WHITE;
134
132
  position: absolute;
135
133
  display: flex;
136
134
  justify-content: center;
137
- bottom: 2.5%;
138
- width: 16.571rem;
139
- left: 21%;
140
- background-color: $CAP_WHITE;
135
+ bottom: 1.5%;
136
+ width: 200px;
137
+ left: 28%;
141
138
 
142
139
  .inapp-title-FOOTER-ANDROID {
143
- width: 6.429rem;
140
+ width: 90px;
144
141
  height: 12px;
145
142
  text-align: left;
146
143
  left: 34%;
147
144
  justify-content: center;
148
145
  position: relative;
149
146
  right: 33%;
150
- bottom: -1.429rem;
147
+ bottom: -22px;
151
148
  font-size: 10px;
152
149
  text-overflow: ellipsis;
153
150
  overflow: hidden;
@@ -204,12 +201,10 @@
204
201
  }
205
202
 
206
203
  .inapp-message-container-FULLSCREEN-ANDROID {
207
- background-color: $CAP_WHITE;
208
204
  position: absolute;
209
205
  top: 10%;
210
206
  display: flex;
211
- left: 20%;
212
- width: 16.643rem;
207
+ left: 29%;
213
208
  .inapp-title-FULLSCREEN-ANDROID {
214
209
  text-overflow: ellipsis;
215
210
  overflow: hidden;
@@ -243,11 +238,10 @@
243
238
  }
244
239
 
245
240
  .inapp-message-container-POPUP-iOS {
246
- background-color: $CAP_WHITE;
247
241
  position: absolute;
248
- top: 30%;
242
+ top: 20%;
249
243
  display: flex;
250
- width: 14.286rem;
244
+ width: 200px;
251
245
  left: 28%;
252
246
 
253
247
  .inapp-title-POPUP-iOS {
@@ -284,19 +278,18 @@
284
278
  }
285
279
 
286
280
  .inapp-message-container-HEADER-iOS {
287
- background-color: $CAP_WHITE;
288
281
  position: absolute;
289
282
  display: flex;
290
- width: 16.571rem;
291
- left: 20%;
292
- top: 10%;
283
+ width: 200px;
284
+ left: 28%;
285
+ top: 3%;
293
286
 
294
287
  .inapp-title-HEADER-iOS {
295
288
  left: 34%;
296
289
  top: 15%;
297
290
  position: relative;
298
291
  font-size: 10px;
299
- width: 6.429rem;
292
+ width: 90px;
300
293
  height: 12px;
301
294
  text-overflow: ellipsis;
302
295
  overflow: hidden;
@@ -307,7 +300,7 @@
307
300
 
308
301
  .without-image-title-HEADER-ios {
309
302
  left: 26%;
310
- top: 1.286rem;
303
+ top: 18px;
311
304
  text-align: center;
312
305
  }
313
306
 
@@ -337,7 +330,7 @@
337
330
  .without-image-content-HEADER-ios {
338
331
  width: 92%;
339
332
  left: 6%;
340
- top: 1.5rem;
333
+ top: 21px;
341
334
  }
342
335
 
343
336
  .inapp-button-HEADER-iOS {
@@ -354,14 +347,12 @@
354
347
  }
355
348
 
356
349
  .inapp-message-container-FOOTER-iOS {
357
- background-color: $CAP_WHITE;
358
350
  position: absolute;
359
351
  display: flex;
360
352
  justify-content: center;
361
- width: 16.571rem;
362
- left: 20%;
363
- top: 42%;
364
- bottom: 3.5%;
353
+ width: 200px;
354
+ left: 28%;
355
+ top: 75%;
365
356
 
366
357
  .inapp-title-FOOTER-iOS {
367
358
  width: 90px;
@@ -429,12 +420,10 @@
429
420
  }
430
421
 
431
422
  .inapp-message-container-FULLSCREEN-iOS {
432
- background-color: $CAP_WHITE;
433
423
  position: absolute;
434
424
  top: 10%;
435
425
  display: flex;
436
- left: 20%;
437
- width: 16.643rem;
426
+ left: 29%;
438
427
  .inapp-title-FULLSCREEN-iOS {
439
428
  text-overflow: ellipsis;
440
429
  overflow: hidden;
@@ -466,15 +455,6 @@
466
455
  bottom: -1%;
467
456
  }
468
457
  }
469
-
470
- .inapp-message-container-MODAL-ANDROID, .inapp-message-container-MODAL-iOS {
471
- background-color: $CAP_WHITE;
472
- position: absolute;
473
- top: 30%;
474
- display: flex;
475
- width: 14.286rem;
476
- left: 28%;
477
- }
478
458
  }
479
459
 
480
460
 
@@ -37,8 +37,14 @@ import {
37
37
  import { VIBER, FACEBOOK } from '../../v2Containers/App/constants';
38
38
  import Carousel from '../Carousel';
39
39
  import whatsappMobileAndroid from './assets/images/whatsapp_mobile_android.svg';
40
- import inAppMobileDeviceAndroid from '../../assets/Android.png';
41
- import inAppMobileDeviceIos from '../../assets/iOS.png';
40
+ import inAppMobileAndroidModal from './assets/images/inapp_mobile_android_modal.svg';
41
+ import inAppMobileAndroidTop from './assets/images/inapp_mobile_android_top.svg';
42
+ import inAppMobileAndroidBottom from './assets/images/inapp_mobile_android_bottom.svg';
43
+ import inAppMobileAndroidFull from './assets/images/inapp_mobile_android_full.svg';
44
+ import inAppMobileIOSModal from './assets/images/inapp_mobile_ios_modal.svg';
45
+ import inAppMobileIOSTop from './assets/images/inapp_mobile_ios_top.svg';
46
+ import inAppMobileIOSBottom from './assets/images/inapp_mobile_ios_bottom.svg';
47
+ import inAppMobileIOSFull from './assets/images/inapp_mobile_ios_full.svg';
42
48
  import whatsappImageEmptyPreview from './assets/images/empty_image_preview.svg';
43
49
  import whatsappVideoEmptyPreview from './assets/images/empty_video_preview.svg';
44
50
  import videoPlay from '../../assets/videoPlay.svg';
@@ -233,7 +239,7 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
233
239
  } = this.props;
234
240
  let content = channel && channel.toLowerCase() === 'sms' ? [this.props.content] : this.props.content;
235
241
  const { formatMessage } = intl;
236
- const { rcsPreviewContent, inAppPreviewContent, viberPreviewContent, isBeeFreeTemplate } = content || {};
242
+ const { rcsPreviewContent, inAppPreviewContent, viberPreviewContent } = content || {};
237
243
  const { rcsImageSrc, rcsVideoSrc, rcsTitle, rcsDesc, rcsSuggestions } = rcsPreviewContent || {};
238
244
  const {
239
245
  videoParams,
@@ -241,11 +247,7 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
241
247
  buttonText: viberButtonText,
242
248
  messageContent: viberMessageContent,
243
249
  } = viberPreviewContent || {};
244
- let isHTMLContent = true;
245
250
  const {mediaPreview = {}, templateTitle = "", templateMsg = "", ctaData} = inAppPreviewContent || {};
246
- if(templateTitle !== undefined && ctaData !== undefined && templateMsg !== undefined) {
247
- isHTMLContent = false;
248
- }
249
251
  let smsDetails = {};
250
252
  // let smsText = '';
251
253
  if (this.props.content && this.props.charCounterEnabled) {
@@ -462,9 +464,27 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
462
464
 
463
465
  const getPreviewImage = () => {
464
466
  if (this.props.device === ANDROID) {
465
- return inAppMobileDeviceAndroid;
467
+ switch (templateLayoutType) {
468
+ case INAPP_MESSAGE_LAYOUT_TYPES.MODAL:
469
+ return inAppMobileAndroidModal;
470
+ case INAPP_MESSAGE_LAYOUT_TYPES.TOPBANNER:
471
+ return inAppMobileAndroidTop;
472
+ case INAPP_MESSAGE_LAYOUT_TYPES.BOTTOMBANNER:
473
+ return inAppMobileAndroidBottom;
474
+ default:
475
+ return inAppMobileAndroidFull;
476
+ }
466
477
  } else {
467
- return inAppMobileDeviceIos;
478
+ switch (templateLayoutType) {
479
+ case INAPP_MESSAGE_LAYOUT_TYPES.MODAL:
480
+ return inAppMobileIOSModal;
481
+ case INAPP_MESSAGE_LAYOUT_TYPES.TOPBANNER:
482
+ return inAppMobileIOSTop;
483
+ case INAPP_MESSAGE_LAYOUT_TYPES.BOTTOMBANNER:
484
+ return inAppMobileIOSBottom;
485
+ default:
486
+ return inAppMobileIOSFull;
487
+ }
468
488
  }
469
489
  };
470
490
 
@@ -1386,34 +1406,7 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
1386
1406
  </div>
1387
1407
  )}
1388
1408
  {channel?.toUpperCase() === INAPP && (
1389
- isBeeFreeTemplate ? (
1390
- <div className="shell-v2 align-center">
1391
- <div style={{ position: 'relative', display: 'inline-block', width: '100%', height: '100%' }}>
1392
- <CapImage
1393
- className="preview-image"
1394
- src={this.props.device === ANDROID ? inAppMobileDeviceAndroid : inAppMobileDeviceIos}
1395
- alt={formatMessage(messages.previewGenerated)}
1396
- />
1397
- <iframe
1398
- srcDoc={inAppPreviewContent?.value}
1399
- title={formatMessage(messages.inappPreview)}
1400
- style={{
1401
- position: 'absolute',
1402
- top: '3rem',
1403
- left: '5rem',
1404
- width: '60%',
1405
- height: '89%',
1406
- zIndex: 1,
1407
- pointerEvents: 'none',
1408
- backgroundColor: 'white',
1409
- borderRadius: `${CAP_SPACE_08}`,
1410
- }}
1411
- frameBorder="0"
1412
- />
1413
- </div>
1414
- </div>
1415
- ): (
1416
- <div className="shell-v2 align-center">
1409
+ <div className="shell-v2 align-center">
1417
1410
  <CapImage
1418
1411
  className="preview-image"
1419
1412
  src={getPreviewImage()}
@@ -1421,15 +1414,9 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
1421
1414
  />
1422
1415
  <div className="preview-image">
1423
1416
  <div
1424
- className={`inapp-message-container-${templateLayoutType}-${device} inapp`}
1417
+ className={`inapp-message-container-${templateLayoutType}-${device} sms`}
1425
1418
  >
1426
- {isHTMLContent ? (
1427
- <div
1428
- className="inapp-html-content"
1429
- dangerouslySetInnerHTML={{ __html: templateMsg }}
1430
- />
1431
- ) : (
1432
- <div className="preview-inapp-screen">
1419
+ <div className="preview-inapp-screen">
1433
1420
  {
1434
1421
  <CapLabel
1435
1422
  type="label15"
@@ -1494,11 +1481,9 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
1494
1481
  </CapButton>
1495
1482
  )}
1496
1483
  </div>
1497
- )}
1498
1484
  </div>
1499
1485
  </div>
1500
1486
  </div>
1501
- )
1502
1487
  )}
1503
1488
  </CapRow>
1504
1489
  </CapColumn>
@@ -94,8 +94,4 @@ export default defineMessages({
94
94
  id: 'creatives.componentsV2.TemplatePreview.videoNotSupported',
95
95
  defaultMessage: 'Your browser does not support the video tag.',
96
96
  },
97
- inappPreview: {
98
- id: 'creatives.componentsV2.TemplatePreview.inappPreview',
99
- defaultMessage: 'Inapp Preview',
100
- },
101
97
  });
@@ -92,12 +92,9 @@ const TestAndPreviewSlidebox = (props) => {
92
92
  const activeTab = currentTabData?.activeTab;
93
93
  const templateContent = currentTabData?.[activeTab]?.['template-content'];
94
94
 
95
- // Use templateContent or fall back to content prop
96
- const initialContent = templateContent || content;
97
-
98
- if (initialContent) {
95
+ if (templateContent) {
99
96
  return {
100
- resolvedBody: initialContent,
97
+ resolvedBody: templateContent,
101
98
  resolvedTitle: formData['template-subject'] || ''
102
99
  };
103
100
  }
@@ -115,14 +112,14 @@ const TestAndPreviewSlidebox = (props) => {
115
112
  const resolveTagsInText = (text, tagValues) => {
116
113
  if (!text) return text;
117
114
  let resolvedText = text;
118
-
115
+
119
116
  // Replace each tag with its custom value
120
117
  Object.keys(tagValues).forEach((tagPath) => {
121
118
  const tagName = tagPath.split('.').pop(); // Get the actual tag name from the path
122
119
  const tagRegex = new RegExp(`{{${tagName}}}`, 'g');
123
120
  resolvedText = resolvedText.replace(tagRegex, tagValues[tagPath] || `{{${tagName}}}`);
124
121
  });
125
-
122
+
126
123
  return resolvedText;
127
124
  };
128
125
 
@@ -131,7 +128,7 @@ const TestAndPreviewSlidebox = (props) => {
131
128
  const currentTabData = formData[currentTab - 1];
132
129
  const activeTab = currentTabData?.activeTab;
133
130
  const isDragDrop = currentTabData?.[activeTab]?.is_drag_drop;
134
-
131
+
135
132
  if (isDragDrop && beeContent) {
136
133
  return beeContent; // Use BEE content if available
137
134
  }
@@ -233,7 +230,7 @@ const TestAndPreviewSlidebox = (props) => {
233
230
  actions.extractTagsRequested(formData['template-subject'] || '', payloadContent);
234
231
  }
235
232
  }
236
-
233
+
237
234
  actions.fetchTestCustomersRequested();
238
235
  actions.fetchTestGroupsRequested();
239
236
  }
@@ -245,20 +242,17 @@ const TestAndPreviewSlidebox = (props) => {
245
242
  const activeTab = currentTabData?.activeTab;
246
243
  const isDragDrop = currentTabData?.[activeTab]?.is_drag_drop;
247
244
  const templateContent = currentTabData?.[activeTab]?.['template-content'];
248
-
249
- // Fallback to content prop if templateContent is missing (for HTML editor)
250
- const contentToUse = templateContent || content;
251
-
252
- if (contentToUse && (typeof contentToUse === 'string' && contentToUse.trim() !== '')) {
245
+
246
+ if (templateContent && templateContent.trim() !== '') {
253
247
  // Common function to handle content update
254
- const handleContentUpdate = (newContent) => {
248
+ const handleContentUpdate = (content) => {
255
249
  setPreviewDataHtml({
256
- resolvedBody: newContent,
250
+ resolvedBody: content,
257
251
  resolvedTitle: formData['template-subject'] || ''
258
252
  });
259
253
 
260
254
  // Extract tags from content
261
- const payloadContent = convert(newContent, GLOBAL_CONVERT_OPTIONS);
255
+ const payloadContent = convert(content, GLOBAL_CONVERT_OPTIONS);
262
256
  actions.extractTagsRequested(formData['template-subject'] || '', payloadContent);
263
257
  };
264
258
 
@@ -270,13 +264,13 @@ const TestAndPreviewSlidebox = (props) => {
270
264
  handleContentUpdate(templateContent);
271
265
  }
272
266
  } else {
273
- // For CKEditor/HTML, only update if content changed
274
- if (contentToUse !== previewDataHtml?.resolvedBody) {
275
- handleContentUpdate(contentToUse);
267
+ // For CKEditor, only update if content changed
268
+ if (templateContent !== previewDataHtml?.resolvedBody) {
269
+ handleContentUpdate(templateContent);
276
270
  }
277
271
  }
278
272
  }
279
- }, [formData, currentTab, content]);
273
+ }, [formData, currentTab]);
280
274
 
281
275
  // Cleanup effect to reset ref when slidebox closes
282
276
  useEffect(() => {
@@ -372,10 +366,10 @@ const TestAndPreviewSlidebox = (props) => {
372
366
  useEffect(() => {
373
367
  if (selectedCustomer) {
374
368
  setTagsExtracted(true); // Auto-open custom values editor
375
-
369
+
376
370
  // Get all available tags
377
371
  const allTags = [...requiredTags, ...optionalTags];
378
-
372
+
379
373
  if (allTags.length > 0) {
380
374
  const payload = {
381
375
  channel: EMAIL,
@@ -397,7 +391,7 @@ const TestAndPreviewSlidebox = (props) => {
397
391
  updatedValues[tag?.fullPath] = prefilledValues[tag?.fullPath] || '';
398
392
  });
399
393
 
400
-
394
+
401
395
  setCustomValues(updatedValues);
402
396
 
403
397
  // Update preview with prefilled values
@@ -445,10 +439,10 @@ const TestAndPreviewSlidebox = (props) => {
445
439
  setSelectedTestEntities([]);
446
440
  setBeeContent('');
447
441
  previousBeeContentRef.current = '';
448
-
442
+
449
443
  // Clear any pending actions
450
444
  actions.clearPrefilledValues();
451
-
445
+
452
446
  // Call parent's onClose if provided
453
447
  if (onClose) {
454
448
  onClose();
@@ -463,7 +457,7 @@ const TestAndPreviewSlidebox = (props) => {
463
457
  const handleCustomerSelect = (customer) => {
464
458
  setSelectedCustomer(customer);
465
459
  setTagsExtracted(true); // Auto-open custom values editor
466
-
460
+
467
461
  // Clear any existing values while waiting for prefilled values
468
462
  const emptyValues = {};
469
463
  [...requiredTags, ...optionalTags].forEach((tag) => {
@@ -474,7 +468,7 @@ const TestAndPreviewSlidebox = (props) => {
474
468
 
475
469
  const handleClearSelection = () => {
476
470
  setSelectedCustomer(null);
477
-
471
+
478
472
  // Initialize empty values for all tags
479
473
  const emptyValues = {};
480
474
  [...requiredTags, ...optionalTags].forEach((tag) => {
@@ -565,12 +559,12 @@ const TestAndPreviewSlidebox = (props) => {
565
559
  const currentTabData = formData[currentTab - 1];
566
560
  const activeTab = currentTabData?.activeTab;
567
561
  const templateContent = currentTabData?.[activeTab]?.['template-content'];
568
-
562
+
569
563
  // Check for personalization tags (excluding unsubscribe)
570
564
  const content = templateContent || getCurrentContent;
571
565
  const tags = content.match(/{{[^}]+}}/g) || [];
572
566
  const hasPersonalizationTags = tags.some(tag => !tag.includes('unsubscribe'));
573
-
567
+
574
568
  if (!hasPersonalizationTags && tags.length === 1 && tags[0].includes('unsubscribe')) {
575
569
  // If only unsubscribe tag is present, show noTagsExtracted message
576
570
  setTagsExtracted(false);
@@ -579,7 +573,7 @@ const TestAndPreviewSlidebox = (props) => {
579
573
  setCustomValues({});
580
574
  return;
581
575
  }
582
-
576
+
583
577
  // Extract tags
584
578
  setTagsExtracted(true);
585
579
  if (templateContent) {
@@ -40,6 +40,7 @@ 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';
43
44
 
44
45
  export const CREATE = 'create';
45
46
  export const EDIT = 'edit';
@@ -54,6 +55,7 @@ export const EMAIL = 'email';
54
55
  export const ASSETS = 'assets';
55
56
  export const ZALO = 'zalo';
56
57
  export const INAPP = 'inapp';
58
+ export const WEBPUSH = 'webpush';
57
59
 
58
60
  export const JP_LOCALE_HIDE_FEATURE = 'JP_LOCALE_HIDE_FEATURE';
59
61
 
@@ -65,6 +67,7 @@ export const TRACK_EDIT_IMAGE = 'editImage';
65
67
  export const TRACK_EDIT_LINE = 'editLine';
66
68
  export const TRACK_EDIT_VIBER = 'editViber';
67
69
  export const TRACK_EDIT_FACEBOOK = 'editFacebook';
70
+ export const TRACK_EDIT_WEBPUSH = 'editWebPush';
68
71
 
69
72
  export const CHANNEL_CREATE_TRACK_MAPPING = {
70
73
  sms: TRACK_CREATE_SMS,
@@ -75,6 +78,7 @@ export const CHANNEL_CREATE_TRACK_MAPPING = {
75
78
  line: TRACK_CREATE_LINE,
76
79
  viber: TRACK_CREATE_VIBER,
77
80
  facebook: TRACK_CREATE_FACEBOOK,
81
+ webpush: TRACK_CREATE_WEBPUSH,
78
82
  };
79
83
 
80
84
  export const CHANNEL_EDIT_TRACK_MAPPING = {
@@ -86,6 +90,7 @@ export const CHANNEL_EDIT_TRACK_MAPPING = {
86
90
  line: TRACK_EDIT_LINE,
87
91
  viber: TRACK_EDIT_VIBER,
88
92
  facebook: TRACK_EDIT_FACEBOOK,
93
+ webpush: TRACK_EDIT_WEBPUSH,
89
94
  };
90
95
  export const GTM_TRACKING_ID = 'UA-110024621-2';
91
96
  export const BEE_PLUGIN = 'BEE_PLUGIN';