@capillarytech/creatives-library 8.0.263 → 8.0.265

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 (280) hide show
  1. package/assets/Android.png +0 -0
  2. package/assets/iOS.png +0 -0
  3. package/constants/unified.js +1 -3
  4. package/initialReducer.js +0 -2
  5. package/package.json +1 -1
  6. package/services/api.js +0 -15
  7. package/services/tests/api.test.js +0 -34
  8. package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +35 -17
  9. package/tests/integration/TemplateCreation/api-response.js +1 -31
  10. package/tests/integration/TemplateCreation/msw-handler.js +0 -2
  11. package/utils/common.js +0 -11
  12. package/utils/commonUtils.js +5 -28
  13. package/utils/tests/commonUtil.test.js +0 -224
  14. package/utils/tests/transformerUtils.test.js +0 -297
  15. package/utils/transformTemplateConfig.js +10 -0
  16. package/utils/transformerUtils.js +0 -40
  17. package/v2Components/CapDeviceContent/index.js +56 -61
  18. package/v2Components/CapImageUpload/constants.js +0 -2
  19. package/v2Components/CapImageUpload/index.js +16 -65
  20. package/v2Components/CapImageUpload/index.scss +1 -4
  21. package/v2Components/CapImageUpload/messages.js +1 -5
  22. package/v2Components/CapTagList/index.js +1 -6
  23. package/v2Components/CapTagListWithInput/index.js +1 -5
  24. package/v2Components/CapTagListWithInput/messages.js +1 -1
  25. package/v2Components/CapWhatsappCTA/tests/index.test.js +0 -5
  26. package/v2Components/ErrorInfoNote/index.js +72 -402
  27. package/v2Components/ErrorInfoNote/messages.js +6 -32
  28. package/v2Components/ErrorInfoNote/style.scss +6 -278
  29. package/v2Components/FormBuilder/tests/index.test.js +4 -13
  30. package/v2Components/HtmlEditor/HTMLEditor.js +99 -418
  31. package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +133 -1882
  32. package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +16 -27
  33. package/v2Components/HtmlEditor/_htmlEditor.scss +45 -108
  34. package/v2Components/HtmlEditor/_index.lazy.scss +1 -0
  35. package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +102 -23
  36. package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +140 -148
  37. package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +1 -2
  38. package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
  39. package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +1 -9
  40. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +6 -31
  41. package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +0 -22
  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 +10 -7
  48. package/v2Components/HtmlEditor/components/PreviewPane/index.js +43 -22
  49. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
  50. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +152 -0
  51. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/_validationErrorDisplay.scss +0 -18
  52. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +31 -36
  53. package/v2Components/HtmlEditor/components/ValidationPanel/_validationPanel.scss +34 -46
  54. package/v2Components/HtmlEditor/components/ValidationPanel/index.js +46 -52
  55. package/v2Components/HtmlEditor/constants.js +20 -45
  56. package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +16 -373
  57. package/v2Components/HtmlEditor/hooks/__tests__/useValidation.test.js +16 -351
  58. package/v2Components/HtmlEditor/hooks/useEditorContent.js +2 -5
  59. package/v2Components/HtmlEditor/hooks/useInAppContent.js +146 -88
  60. package/v2Components/HtmlEditor/hooks/useValidation.js +56 -213
  61. package/v2Components/HtmlEditor/index.js +1 -1
  62. package/v2Components/HtmlEditor/messages.js +94 -102
  63. package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +45 -214
  64. package/v2Components/HtmlEditor/utils/__tests__/validationAdapter.test.js +0 -134
  65. package/v2Components/HtmlEditor/utils/contentSanitizer.js +41 -40
  66. package/v2Components/HtmlEditor/utils/htmlValidator.js +72 -71
  67. package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +124 -158
  68. package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +25 -23
  69. package/v2Components/HtmlEditor/utils/validationAdapter.js +41 -66
  70. package/v2Components/MobilePushPreviewV2/index.js +7 -33
  71. package/v2Components/TemplatePreview/_templatePreview.scss +24 -55
  72. package/v2Components/TemplatePreview/index.js +32 -47
  73. package/v2Components/TemplatePreview/messages.js +0 -4
  74. package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +0 -1
  75. package/v2Containers/App/constants.js +0 -5
  76. package/v2Containers/BeeEditor/index.js +90 -172
  77. package/v2Containers/CreativesContainer/SlideBoxContent.js +53 -184
  78. package/v2Containers/CreativesContainer/SlideBoxFooter.js +13 -163
  79. package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -3
  80. package/v2Containers/CreativesContainer/constants.js +0 -4
  81. package/v2Containers/CreativesContainer/index.js +46 -408
  82. package/v2Containers/CreativesContainer/messages.js +0 -12
  83. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +0 -210
  84. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +2 -11
  85. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +50 -342
  86. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -103
  87. package/v2Containers/Email/actions.js +0 -7
  88. package/v2Containers/Email/constants.js +1 -5
  89. package/v2Containers/Email/index.js +36 -237
  90. package/v2Containers/Email/messages.js +0 -32
  91. package/v2Containers/Email/reducer.js +1 -12
  92. package/v2Containers/Email/sagas.js +7 -61
  93. package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +0 -2
  94. package/v2Containers/Email/tests/reducer.test.js +0 -46
  95. package/v2Containers/Email/tests/sagas.test.js +29 -320
  96. package/v2Containers/EmailWrapper/components/EmailWrapperView.js +21 -211
  97. package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +74 -40
  98. package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +67 -2
  99. package/v2Containers/EmailWrapper/constants.js +0 -2
  100. package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +77 -629
  101. package/v2Containers/EmailWrapper/index.js +23 -103
  102. package/v2Containers/EmailWrapper/messages.js +1 -65
  103. package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +214 -0
  104. package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +77 -594
  105. package/v2Containers/InApp/actions.js +0 -7
  106. package/v2Containers/InApp/constants.js +4 -20
  107. package/v2Containers/InApp/index.js +359 -802
  108. package/v2Containers/InApp/index.scss +3 -4
  109. package/v2Containers/InApp/messages.js +3 -7
  110. package/v2Containers/InApp/reducer.js +3 -21
  111. package/v2Containers/InApp/sagas.js +9 -29
  112. package/v2Containers/InApp/selectors.js +5 -25
  113. package/v2Containers/InApp/tests/index.test.js +50 -154
  114. package/v2Containers/InApp/tests/reducer.test.js +0 -34
  115. package/v2Containers/InApp/tests/sagas.test.js +9 -61
  116. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +0 -3
  117. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +0 -2
  118. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +0 -2
  119. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +0 -9
  120. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +0 -12
  121. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +0 -4
  122. package/v2Containers/TagList/index.js +19 -62
  123. package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
  124. package/v2Containers/Templates/_templates.scss +1 -265
  125. package/v2Containers/Templates/actions.js +1 -2
  126. package/v2Containers/Templates/constants.js +0 -1
  127. package/v2Containers/Templates/index.js +38 -363
  128. package/v2Containers/Templates/messages.js +0 -28
  129. package/v2Containers/Templates/reducer.js +0 -2
  130. package/v2Containers/Templates/tests/index.test.js +0 -10
  131. package/v2Containers/TemplatesV2/TemplatesV2.style.js +2 -4
  132. package/v2Containers/TemplatesV2/index.js +7 -15
  133. package/v2Containers/TemplatesV2/messages.js +0 -4
  134. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +0 -34
  135. package/utils/imageUrlUpload.js +0 -141
  136. package/v2Components/CapImageUrlUpload/constants.js +0 -26
  137. package/v2Components/CapImageUrlUpload/index.js +0 -365
  138. package/v2Components/CapImageUrlUpload/index.scss +0 -35
  139. package/v2Components/CapImageUrlUpload/messages.js +0 -47
  140. package/v2Components/ErrorInfoNote/constants.js +0 -1
  141. package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +0 -870
  142. package/v2Components/HtmlEditor/components/ValidationPanel/constants.js +0 -6
  143. package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +0 -281
  144. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +0 -295
  145. package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +0 -51
  146. package/v2Components/HtmlEditor/utils/validationConstants.js +0 -38
  147. package/v2Components/MobilePushPreviewV2/constants.js +0 -6
  148. package/v2Containers/BeePopupEditor/_beePopupEditor.scss +0 -14
  149. package/v2Containers/BeePopupEditor/constants.js +0 -10
  150. package/v2Containers/BeePopupEditor/index.js +0 -194
  151. package/v2Containers/BeePopupEditor/tests/index.test.js +0 -627
  152. package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +0 -1246
  153. package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +0 -2472
  154. package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +0 -520
  155. package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +0 -956
  156. package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +0 -376
  157. package/v2Containers/InApp/__tests__/sagas.test.js +0 -363
  158. package/v2Containers/InApp/tests/selectors.test.js +0 -612
  159. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +0 -151
  160. package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +0 -267
  161. package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +0 -23
  162. package/v2Containers/InAppWrapper/constants.js +0 -16
  163. package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +0 -473
  164. package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +0 -198
  165. package/v2Containers/InAppWrapper/index.js +0 -148
  166. package/v2Containers/InAppWrapper/messages.js +0 -49
  167. package/v2Containers/InappAdvance/index.js +0 -1099
  168. package/v2Containers/InappAdvance/index.scss +0 -10
  169. package/v2Containers/InappAdvance/tests/index.test.js +0 -448
  170. package/v2Containers/WebPush/Create/components/BrandIconSection.js +0 -108
  171. package/v2Containers/WebPush/Create/components/ButtonForm.js +0 -172
  172. package/v2Containers/WebPush/Create/components/ButtonItem.js +0 -101
  173. package/v2Containers/WebPush/Create/components/ButtonList.js +0 -145
  174. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +0 -164
  175. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +0 -463
  176. package/v2Containers/WebPush/Create/components/FormActions.js +0 -54
  177. package/v2Containers/WebPush/Create/components/FormActions.test.js +0 -163
  178. package/v2Containers/WebPush/Create/components/MediaSection.js +0 -142
  179. package/v2Containers/WebPush/Create/components/MediaSection.test.js +0 -341
  180. package/v2Containers/WebPush/Create/components/MessageSection.js +0 -103
  181. package/v2Containers/WebPush/Create/components/MessageSection.test.js +0 -268
  182. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +0 -87
  183. package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +0 -210
  184. package/v2Containers/WebPush/Create/components/TemplateNameSection.js +0 -54
  185. package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +0 -143
  186. package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +0 -86
  187. package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +0 -16
  188. package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +0 -41
  189. package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +0 -54
  190. package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +0 -37
  191. package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +0 -21
  192. package/v2Containers/WebPush/Create/components/_buttons.scss +0 -246
  193. package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +0 -554
  194. package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +0 -607
  195. package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +0 -633
  196. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +0 -666
  197. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +0 -74
  198. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +0 -78
  199. package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +0 -138
  200. package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +0 -406
  201. package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +0 -30
  202. package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +0 -151
  203. package/v2Containers/WebPush/Create/hooks/useImageUpload.js +0 -104
  204. package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +0 -538
  205. package/v2Containers/WebPush/Create/hooks/useTagManagement.js +0 -122
  206. package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +0 -633
  207. package/v2Containers/WebPush/Create/index.js +0 -1148
  208. package/v2Containers/WebPush/Create/index.scss +0 -134
  209. package/v2Containers/WebPush/Create/messages.js +0 -211
  210. package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +0 -228
  211. package/v2Containers/WebPush/Create/preview/NotificationContainer.js +0 -294
  212. package/v2Containers/WebPush/Create/preview/PreviewContent.js +0 -90
  213. package/v2Containers/WebPush/Create/preview/PreviewControls.js +0 -305
  214. package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +0 -25
  215. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +0 -155
  216. package/v2Containers/WebPush/Create/preview/assets/Light.svg +0 -53
  217. package/v2Containers/WebPush/Create/preview/assets/Top.svg +0 -5
  218. package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +0 -9
  219. package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +0 -9
  220. package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
  221. package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
  222. package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +0 -106
  223. package/v2Containers/WebPush/Create/preview/assets/iOS.svg +0 -26
  224. package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +0 -9
  225. package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +0 -9
  226. package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +0 -18
  227. package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +0 -29
  228. package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +0 -9
  229. package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +0 -9
  230. package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +0 -51
  231. package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -145
  232. package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +0 -45
  233. package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +0 -68
  234. package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +0 -61
  235. package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +0 -99
  236. package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +0 -733
  237. package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +0 -571
  238. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +0 -85
  239. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +0 -81
  240. package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +0 -50
  241. package/v2Containers/WebPush/Create/preview/constants.js +0 -637
  242. package/v2Containers/WebPush/Create/preview/notification-container.scss +0 -79
  243. package/v2Containers/WebPush/Create/preview/preview.scss +0 -358
  244. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +0 -370
  245. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +0 -12
  246. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +0 -12
  247. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +0 -12
  248. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +0 -47
  249. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +0 -11
  250. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +0 -11
  251. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +0 -11
  252. package/v2Containers/WebPush/Create/preview/styles/_base.scss +0 -207
  253. package/v2Containers/WebPush/Create/preview/styles/_ios.scss +0 -153
  254. package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +0 -107
  255. package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +0 -101
  256. package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +0 -229
  257. package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +0 -909
  258. package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +0 -1081
  259. package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +0 -723
  260. package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +0 -1327
  261. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +0 -131
  262. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +0 -112
  263. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +0 -144
  264. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +0 -129
  265. package/v2Containers/WebPush/Create/utils/payloadBuilder.js +0 -96
  266. package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +0 -396
  267. package/v2Containers/WebPush/Create/utils/previewUtils.js +0 -89
  268. package/v2Containers/WebPush/Create/utils/urlValidation.js +0 -115
  269. package/v2Containers/WebPush/Create/utils/urlValidation.test.js +0 -449
  270. package/v2Containers/WebPush/Create/utils/validation.js +0 -75
  271. package/v2Containers/WebPush/Create/utils/validation.test.js +0 -283
  272. package/v2Containers/WebPush/actions.js +0 -60
  273. package/v2Containers/WebPush/constants.js +0 -132
  274. package/v2Containers/WebPush/index.js +0 -2
  275. package/v2Containers/WebPush/reducer.js +0 -104
  276. package/v2Containers/WebPush/sagas.js +0 -119
  277. package/v2Containers/WebPush/selectors.js +0 -65
  278. package/v2Containers/WebPush/tests/reducer.test.js +0 -863
  279. package/v2Containers/WebPush/tests/sagas.test.js +0 -566
  280. package/v2Containers/WebPush/tests/selectors.test.js +0 -960
@@ -10,7 +10,6 @@ import SmsWrapper from '../SmsWrapper';
10
10
  import Email from '../Email';
11
11
  import EmailWrapper from '../EmailWrapper';
12
12
  import MobilepushWrapper from '../MobilepushWrapper';
13
- import InAppWrapper from '../InAppWrapper';
14
13
  import EmailPreviewV2 from '../../v2Components/EmailPreviewV2';
15
14
  import MobilePushPreview from '../../v2Components/MobilePushPreviewV2';
16
15
  import WechatWrapper from '../WeChat/Wrapper';
@@ -29,10 +28,6 @@ import { getWhatsappContent } from '../Whatsapp/utils';
29
28
  import * as commonUtil from '../../utils/common';
30
29
  import Zalo from '../Zalo';
31
30
  import MobilePushNew from '../MobilePushNew';
32
- import WebPush from '../WebPush';
33
- import DevicePreviewContent from '../WebPush/Create/preview/DevicePreviewContent';
34
- import { LAYOUT_MODE } from '../WebPush/Create/preview/constants';
35
- import { WEBPUSH_CONTENT_FIELDS, WEBPUSH_TEMPLATE_PATHS } from '../WebPush/constants';
36
31
  const CreativesWrapper = styled.div`
37
32
  .ant-popover,
38
33
  .ant-notification,
@@ -120,11 +115,7 @@ export function SlideBoxContent(props) {
120
115
  emailCreateMode,
121
116
  onMobilepushModeChange,
122
117
  mobilePushCreateMode,
123
- onInAppEditorTypeChange,
124
- inAppEditorType,
125
118
  templateStep,
126
- inAppCreateMode,
127
- onInAppModeChange,
128
119
  onEnterTemplateName,
129
120
  onRemoveTemplateName,
130
121
  onCreateNextStep,
@@ -138,7 +129,6 @@ export function SlideBoxContent(props) {
138
129
  onValidationFail,
139
130
  channelsToHide,
140
131
  forwardedTags,
141
- supportedTags = [],
142
132
  selectedOfferDetails,
143
133
  channelsToDisable,
144
134
  weChatTemplateType,
@@ -174,7 +164,6 @@ export function SlideBoxContent(props) {
174
164
  handleTestAndPreview,
175
165
  handleCloseTestAndPreview,
176
166
  isTestAndPreviewMode,
177
- onHtmlEditorValidationStateChange,
178
167
  } = props;
179
168
  const type = (messageDetails.type || '').toLowerCase(); // type is context in get tags values : outbound | dvs | referral | loyalty | coupons
180
169
  const query = { type: !isFullMode && 'embedded', module: isFullMode ? 'default' : 'library', isEditFromCampaigns: (templateData || {}).isEditFromCampaigns};
@@ -211,7 +200,6 @@ export function SlideBoxContent(props) {
211
200
  const isCreateRcs = isCreate && channel === constants.RCS;
212
201
  const isCreateMPush = isCreate && channel === constants.MOBILE_PUSH;
213
202
  const isCreateCallTask = isCreate && channel === constants.CALL_TASK;
214
- const isCreateWebPush = isCreate && channel === constants.WEBPUSH;
215
203
  let isEditSms = false;
216
204
  let isEditEmailWithId = false;
217
205
  let isEmailEditWithContent = false;
@@ -219,14 +207,12 @@ export function SlideBoxContent(props) {
219
207
  let isEmailPreview = false;
220
208
  let isMpushPreview = false;
221
209
  let isInappPreview = false;
222
- let isWebPushPreview = false;
223
210
  let isEditCallTask = false;
224
211
  let isEditMPush = false;
225
212
  let isEditFacebook = false;
226
213
  let isEditFTP = false;
227
214
  let isEditWhatsapp = false;
228
215
  let isEditInApp = false;
229
- let isEditWebPush = false;
230
216
  let isEditRcs = false;
231
217
  let isEditZalo = false;
232
218
  const isEmailCreate = isCreate && channel === constants.EMAIL;
@@ -240,12 +226,10 @@ export function SlideBoxContent(props) {
240
226
  isEditFacebook = isEdit && channel === constants.FACEBOOK;
241
227
  isEditWhatsapp = isEdit && channel === constants.WHATSAPP;
242
228
  isEditRcs = isEdit && channel === constants.RCS;
243
- isEditWebPush = isEdit && channel === constants.WEBPUSH;
244
229
  isPreview = slidBoxContent === 'preview' && [constants.SMS, constants.LINE, constants.WHATSAPP, constants.FACEBOOK, constants.VIBER, constants.RCS].includes(channel);
245
230
  isEmailPreview = slidBoxContent === 'preview' && channel === constants.EMAIL;
246
231
  isMpushPreview = slidBoxContent === 'preview' && channel === constants.MOBILE_PUSH;
247
232
  isInappPreview = slidBoxContent === 'preview' && channel === constants.INAPP;
248
- isWebPushPreview = slidBoxContent === 'preview' && channel === constants.WEBPUSH;
249
233
  isEditFTP = isEdit && [constants.NO_COMMUNICATION, constants.FTP].includes(channel);
250
234
  isEditZalo = isEdit && channel?.toUpperCase() === constants.ZALO;
251
235
  isEditInApp = isEdit && channel === constants.INAPP;
@@ -493,30 +477,8 @@ export function SlideBoxContent(props) {
493
477
  templateData={templateData}
494
478
  channel={channel}
495
479
  forwardedTags={forwardedTags}
496
- />
480
+ />
497
481
  )}
498
- {isWebPushPreview && (() => {
499
- const webpushContent = get(templateData, WEBPUSH_TEMPLATE_PATHS.CONTENT, {});
500
- const notificationTitle = webpushContent?.[WEBPUSH_CONTENT_FIELDS.TITLE] || '';
501
- const notificationBody = webpushContent?.[WEBPUSH_CONTENT_FIELDS.MESSAGE] || '';
502
- const imageSrc = webpushContent?.[WEBPUSH_CONTENT_FIELDS.IMAGE] || '';
503
- const brandIconSrc = webpushContent?.[WEBPUSH_CONTENT_FIELDS.BRAND_ICON] || '';
504
- // Extract URL from onClickAction or use empty string
505
- const url = webpushContent?.[WEBPUSH_CONTENT_FIELDS.ON_CLICK_ACTION]?.url || '';
506
-
507
- return (
508
- <div className="webpush-preview-container">
509
- <DevicePreviewContent
510
- notificationTitle={notificationTitle}
511
- notificationBody={notificationBody}
512
- url={url}
513
- imageSrc={imageSrc}
514
- brandIconSrc={brandIconSrc}
515
- layoutMode={LAYOUT_MODE.COMPACT}
516
- />
517
- </div>
518
- );
519
- })()}
520
482
 
521
483
  {
522
484
  (currentChannel === constants.WECHAT && !!slidBoxContent) && <WechatWrapper
@@ -674,95 +636,44 @@ export function SlideBoxContent(props) {
674
636
  handleTestAndPreview={handleTestAndPreview}
675
637
  handleCloseTestAndPreview={handleCloseTestAndPreview}
676
638
  isTestAndPreviewMode={isTestAndPreviewMode}
677
- location={location}
678
- onHtmlEditorValidationStateChange={onHtmlEditorValidationStateChange}
679
639
  />
680
640
  )}
681
641
  {(isEditEmailWithId || isEmailEditWithContent) && (
682
- (() => {
683
- const supportCKEditor = commonUtil.hasSupportCKEditor();
684
- // When supportCKEditor is true: Always use Email component (legacy flow)
685
- if (supportCKEditor || templateData?.is_drag_drop) {
686
- return (
687
- <Email
688
- key="cretives-container-email-edit"
689
- setIsLoadingContent={setIsLoadingContent}
690
- location={{
691
- pathname: `/email/edit`,
692
- query: { type: 'embedded', module: 'library'},
693
- }}
694
- route={{ name: 'email' }}
695
- isGetFormData={isGetFormData}
696
- getFormdata={getFormData}
697
- params={{ id: templateData._id }}
698
- templateData={templateData}
699
- getFormSubscriptionData={getFormData}
700
- getDefaultTags={type}
701
- isFullMode={isFullMode}
702
- editor={editor}
703
- cap={cap}
704
- showTemplateName={showTemplateName}
705
- onValidationFail={onValidationFail}
706
- forwardedTags={forwardedTags}
707
- selectedOfferDetails={selectedOfferDetails}
708
- onPreviewContentClicked={onPreviewContentClicked}
709
- onTestContentClicked={onTestContentClicked}
710
- moduleType={moduleType}
711
- showLiquidErrorInFooter={showLiquidErrorInFooter}
712
- eventContextTags={eventContextTags}
713
- isLoyaltyModule={isLoyaltyModule}
714
- showTestAndPreviewSlidebox={showTestAndPreviewSlidebox}
715
- handleTestAndPreview={handleTestAndPreview}
716
- handleCloseTestAndPreview={handleCloseTestAndPreview}
717
- isTestAndPreviewMode={isTestAndPreviewMode}
718
- onHtmlEditorValidationStateChange={onHtmlEditorValidationStateChange}
719
- />
720
- );
721
- }
722
- // HTML template: Use EmailWrapper component (which uses EmailWithoutSaga)
723
- return (
724
- <EmailWrapper
725
- key="cretives-container-email-edit-wrapper"
726
- setIsLoadingContent={setIsLoadingContent}
727
- onEmailModeChange={onEmailModeChange}
728
- emailCreateMode="editor"
729
- isGetFormData={isGetFormData}
730
- getFormdata={getFormData}
731
- templateData={templateData}
732
- type={type}
733
- step="createTemplateContent"
734
- showNextStep={onCreateNextStep}
735
- isFullMode={isFullMode}
736
- editor={editor}
737
- cap={cap}
738
- onResetStep={onResetStep}
739
- showTemplateName={showTemplateName}
740
- onEnterTemplateName={onEnterTemplateName}
741
- onRemoveTemplateName={onRemoveTemplateName}
742
- onValidationFail={onValidationFail}
743
- forwardedTags={forwardedTags}
744
- selectedOfferDetails={selectedOfferDetails}
745
- onPreviewContentClicked={onPreviewContentClicked}
746
- onTestContentClicked={onTestContentClicked}
747
- getCmsTemplatesInProgress={getCmsTemplatesInProgress}
748
- moduleType={moduleType}
749
- showLiquidErrorInFooter={showLiquidErrorInFooter}
750
- eventContextTags={eventContextTags}
751
- isLoyaltyModule={isLoyaltyModule}
752
- showTestAndPreviewSlidebox={showTestAndPreviewSlidebox}
753
- handleTestAndPreview={handleTestAndPreview}
754
- handleCloseTestAndPreview={handleCloseTestAndPreview}
755
- isTestAndPreviewMode={isTestAndPreviewMode}
756
- onHtmlEditorValidationStateChange={onHtmlEditorValidationStateChange}
757
- location={{
758
- pathname: `/email/edit/${templateData._id}`,
759
- query: { type: 'embedded', module: 'library', id: templateData._id },
760
- }}
761
- params={{ id: templateData._id }}
762
- />
763
- );
764
- })()
765
- )}
642
+ <Email
643
+ key="cretives-container-email-edit"
644
+ setIsLoadingContent={setIsLoadingContent}
645
+ location={{
646
+ pathname: `/email/edit`,
647
+ query: { type: 'embedded', module: 'library'},
648
+ }}
649
+ route={{ name: 'email' }}
650
+ isGetFormData={isGetFormData}
651
+ getFormdata={getFormData}
652
+ params={{ id: templateData._id }}
653
+ templateData={templateData}
654
+ getFormSubscriptionData={getFormData}
655
+ getDefaultTags={type}
656
+ isFullMode={isFullMode}
657
+ editor={editor}
658
+ cap={cap}
659
+ showTemplateName={showTemplateName}
660
+ onValidationFail={onValidationFail}
661
+ forwardedTags={forwardedTags}
662
+ selectedOfferDetails={selectedOfferDetails}
663
+ onPreviewContentClicked={onPreviewContentClicked}
664
+ onTestContentClicked={onTestContentClicked}
665
+ moduleType={moduleType}
666
+ showLiquidErrorInFooter={showLiquidErrorInFooter}
667
+ eventContextTags={eventContextTags}
668
+ isLoyaltyModule={isLoyaltyModule}
669
+ showTestAndPreviewSlidebox={showTestAndPreviewSlidebox}
670
+ handleTestAndPreview={handleTestAndPreview}
671
+ handleCloseTestAndPreview={handleCloseTestAndPreview}
672
+ isTestAndPreviewMode={(() => {
673
+ return isTestAndPreviewMode;
674
+ })()}
675
+ />
676
+ )}
766
677
  {isEditMPush && (
767
678
  (isFullMode && !commonUtil.hasNewMobilePushFeatureEnabled()) ||
768
679
  (!isFullMode && isLoyaltyModule) ||
@@ -1056,39 +967,22 @@ export function SlideBoxContent(props) {
1056
967
  />
1057
968
  )}
1058
969
 
1059
- {isCreateInApp && (
1060
- <InAppWrapper
1061
- key="creatives-inapp-wrapper"
1062
- date={new Date().getMilliseconds()}
1063
- setIsLoadingContent={setIsLoadingContent}
1064
- onInAppEditorTypeChange={onInAppEditorTypeChange}
1065
- inAppEditorType={inAppEditorType}
1066
- isGetFormData={isGetFormData}
1067
- getFormdata={getFormData}
1068
- templateData={templateData}
1069
- type={type}
1070
- step={templateStep}
1071
- showNextStep={onCreateNextStep}
1072
- isFullMode={isFullMode}
1073
- cap={cap}
1074
- onResetStep={onResetStep}
1075
- showTemplateName={showTemplateName}
1076
- onEnterTemplateName={onEnterTemplateName}
1077
- onRemoveTemplateName={onRemoveTemplateName}
1078
- onValidationFail={onValidationFail}
1079
- forwardedTags={forwardedTags}
1080
- selectedOfferDetails={selectedOfferDetails}
1081
- onPreviewContentClicked={onPreviewContentClicked}
1082
- onTestContentClicked={onTestContentClicked}
1083
- moduleType={moduleType}
1084
- showLiquidErrorInFooter={showLiquidErrorInFooter}
1085
- eventContextTags={eventContextTags}
1086
- onCreateComplete={onCreateComplete}
1087
- handleClose={handleClose}
1088
- getDefaultTags={type}
1089
- onInAppModeChange={onInAppModeChange}
1090
- inAppCreateMode={inAppCreateMode}
1091
- showTestAndPreviewSlidebox={showTestAndPreviewSlidebox}
970
+ {isCreateInApp && (<InApp
971
+ isFullMode={isFullMode}
972
+ onCreateComplete={onCreateComplete}
973
+ handleClose={handleClose}
974
+ location={{
975
+ pathname: `/inapp/create`,
976
+ query,
977
+ search: '',
978
+ }}
979
+ getFormData={getFormData}
980
+ isGetFormData={isGetFormData}
981
+ templateData={templateData}
982
+ getDefaultTags={type}
983
+ eventContextTags={eventContextTags}
984
+ showLiquidErrorInFooter={showLiquidErrorInFooter}
985
+ showTestAndPreviewSlidebox={showTestAndPreviewSlidebox}
1092
986
  handleTestAndPreview={handleTestAndPreview}
1093
987
  handleCloseTestAndPreview={handleCloseTestAndPreview}
1094
988
  isTestAndPreviewMode={isTestAndPreviewMode}
@@ -1120,28 +1014,6 @@ export function SlideBoxContent(props) {
1120
1014
  />
1121
1015
  )}
1122
1016
 
1123
- {(isCreateWebPush || isEditWebPush) && (
1124
- <WebPush
1125
- isFullMode={isFullMode}
1126
- handleClose={handleClose}
1127
- onCreateComplete={onCreateComplete}
1128
- getFormData={getFormData}
1129
- isGetFormData={isGetFormData}
1130
- templateData={isEditWebPush ? templateData : undefined}
1131
- creativesMode={creativesMode}
1132
- params={isEditWebPush && templateData ? { id: templateData._id } : undefined}
1133
- location={{
1134
- pathname: isEditWebPush ? '/webpush/edit' : '/webpush/create',
1135
- query,
1136
- search: '',
1137
- }}
1138
- getDefaultTags={type}
1139
- forwardedTags={forwardedTags}
1140
- supportedTags={supportedTags}
1141
- selectedOfferDetails={selectedOfferDetails}
1142
- eventContextTags={eventContextTags}
1143
- />
1144
- )}
1145
1017
  {isCreateRcs && (<Rcs
1146
1018
  {...rcsCommonProps}
1147
1019
  showLiquidErrorInFooter={showLiquidErrorInFooter}
@@ -1179,8 +1051,6 @@ SlideBoxContent.propTypes = {
1179
1051
  onSelectTemplate: PropTypes.func,
1180
1052
  onPreviewTemplate: PropTypes.func,
1181
1053
  templateData: PropTypes.object,
1182
- onInAppEditorTypeChange: PropTypes.func,
1183
- inAppEditorType: PropTypes.object,
1184
1054
  location: PropTypes.object,
1185
1055
  isGetFormData: PropTypes.bool,
1186
1056
  getFormData: PropTypes.func,
@@ -1206,7 +1076,6 @@ SlideBoxContent.propTypes = {
1206
1076
  onValidationFail: PropTypes.func,
1207
1077
  channelsToHide: PropTypes.array,
1208
1078
  forwardedTags: PropTypes.object,
1209
- supportedTags: PropTypes.array,
1210
1079
  selectedOfferDetails: PropTypes.array,
1211
1080
  channelsToDisable: PropTypes.array,
1212
1081
  weChatTemplateType: PropTypes.string,
@@ -1222,7 +1091,7 @@ SlideBoxContent.propTypes = {
1222
1091
  onFTPSubmit: PropTypes.func,
1223
1092
  messageStrategy: PropTypes.string,
1224
1093
  fbAdManager: PropTypes.string,
1225
- showDisabledFBInfo: PropTypes.bool,
1094
+ showDisabledFBInfo: PropTypes.boolean,
1226
1095
  orgUnitId: PropTypes.any,
1227
1096
  smsRegister: PropTypes.any,
1228
1097
  getCmsTemplatesInProgress: PropTypes.bool,
@@ -7,15 +7,12 @@ import PropTypes from 'prop-types';
7
7
  import messages from './messages';
8
8
  import ErrorInfoNote from '../../v2Components/ErrorInfoNote';
9
9
  import { PREVIEW } from './constants';
10
- import { EMAIL_CREATE_MODES } from '../EmailWrapper/constants';
11
10
 
12
- function getFullModeSaveBtn(slidBoxContent, isCreatingTemplate) {
13
- if (isCreatingTemplate) {
14
- return <FormattedMessage {...messages.creativesTemplatesDone} />;
15
- }
16
- return slidBoxContent === "editTemplate"
17
- ? <FormattedMessage {...messages.creativesTemplatesUpdate} />
18
- : <FormattedMessage {...messages.creativesTemplatesSaveFullMode} />;
11
+ function getFullModeSaveBtn(slidBoxContent) {
12
+ return slidBoxContent === "editTemplate" ?
13
+ <FormattedMessage {...messages.creativesTemplatesUpdate}/>
14
+ :
15
+ <FormattedMessage {...messages.creativesTemplatesSaveFullMode}/>;
19
16
  }
20
17
  function SlideBoxFooter(props) {
21
18
  const {
@@ -27,119 +24,18 @@ function SlideBoxFooter(props) {
27
24
  fetchingCmsData,
28
25
  isTemplateNameEmpty,
29
26
  errorMessages,
30
- // eslint-disable-next-line no-unused-vars
31
- isLiquidValidationError, // Legacy prop, kept for PropTypes compatibility
27
+ isLiquidValidationError,
32
28
  currentTab,
33
29
  onTestAndPreview,
34
30
  // isEmptyContent,
35
31
  showTestAndPreviewButton,
36
32
  shouldShowDoneFooter,
37
33
  shouldShowContinueFooter,
38
- isContinueButtonDisabled,
39
- continueButtonLabel,
40
- htmlEditorValidationState,
41
- isCreatingTemplate,
42
- currentChannel,
43
- emailCreateMode,
44
- selectedEmailCreateMode,
45
34
  } = props;
46
35
 
47
- // Calculate if buttons should be disabled
48
- // Only apply validation state checks for EMAIL channel in HTML Editor mode (not BEE/DragDrop)
49
- // For other channels, BEE editor, or when htmlEditorValidationState is not provided, don't disable based on validation
50
- const isEmailChannel = currentChannel?.toUpperCase() === 'EMAIL';
51
- const isEditMode = slidBoxContent === 'editTemplate';
52
-
53
- // Use selectedEmailCreateMode for accurate mode detection in create mode (emailCreateMode is mapped for backwards compatibility)
54
- // In edit mode: htmlEditorValidationState is initialized as {} but only updated by HTML Editor
55
- // If it's still in initial state (validationComplete === false, issueCounts.total === 0), it's BEE editor
56
- // Upload mode also uses HTML Editor, so include it in HTML Editor mode check
57
- const isUploadMode = emailCreateMode === EMAIL_CREATE_MODES.UPLOAD;
58
- const isHTMLEditorModeInCreate = selectedEmailCreateMode === EMAIL_CREATE_MODES.HTML_EDITOR || isUploadMode;
59
- // In edit mode: Check if htmlEditorValidationState has been updated by HTML Editor
60
- // HTML Editor will call updateHtmlEditorValidationState, setting validationComplete to true at some point
61
- // If validationComplete is false and issueCounts.total === 0, it's likely still in initial state (BEE editor)
62
- const isHtmlEditorValidationStateActive = htmlEditorValidationState && (
63
- htmlEditorValidationState.validationComplete === true
64
- || (htmlEditorValidationState.issueCounts && htmlEditorValidationState.issueCounts.total > 0)
65
- || htmlEditorValidationState.hasErrors === true
66
- );
67
- const isHTMLEditorModeInEdit = isEditMode && isHtmlEditorValidationStateActive;
68
- const isHTMLEditorMode = isHTMLEditorModeInCreate || isHTMLEditorModeInEdit;
69
- console.log('***isHTMLEditorMode', isHTMLEditorMode, 'isHTMLEditorModeInCreate', isHTMLEditorModeInCreate, 'isHTMLEditorModeInEdit', isHTMLEditorModeInEdit, 'isHtmlEditorValidationStateActive', isHtmlEditorValidationStateActive);
70
-
71
- // BEE editor detection: drag_drop mode OR (editor mode AND not HTML Editor)
72
- // In edit mode: if htmlEditorValidationState is in initial state (not updated by HTML Editor), it's BEE editor
73
- const isBEEEditor = selectedEmailCreateMode === EMAIL_CREATE_MODES.DRAG_DROP
74
- || (emailCreateMode === EMAIL_CREATE_MODES.EDITOR && !isHTMLEditorMode)
75
- || (isEditMode && !isHtmlEditorValidationStateActive);
76
- // Only check validation for HTML Editor mode, not for BEE/DragDrop editor
77
- const shouldCheckValidation = isEmailChannel && htmlEditorValidationState && isHTMLEditorMode && !isBEEEditor;
78
- const isContentEmpty = shouldCheckValidation ? (htmlEditorValidationState?.isContentEmpty ?? true) : false;
79
- // Check if validation has completed
80
- const validationComplete = shouldCheckValidation ? (htmlEditorValidationState?.validationComplete ?? false) : true;
81
- // Only Rule Group #1 (Input & Sanitization) blocks; hasErrors is set by HTMLEditor from hasBlockingErrors.
82
- // hasErrors should always be set (defaults to false), so we only check for explicit true value.
83
- // Warnings (label issues, HTML/CSS compatibility) do NOT block buttons.
84
- const hasValidationErrors = shouldCheckValidation && htmlEditorValidationState?.hasErrors === true;
85
- console.log('***hasValidationErrors', hasValidationErrors);
86
- const errorsAcknowledged = shouldCheckValidation ? (htmlEditorValidationState?.errorsAcknowledged ?? false) : true;
87
- console.log('***errorsAcknowledged', errorsAcknowledged);
88
-
89
- // IMPORTANT: In both modes, if validation finds errors, buttons must stay disabled until user acknowledges by clicking redirection icon
90
- let shouldDisableButtons = false;
91
- if (shouldCheckValidation) {
92
- if (isEditMode) {
93
- // Edit mode: Disable if validation has completed AND found errors AND errors not acknowledged
94
- shouldDisableButtons = validationComplete && hasValidationErrors && !errorsAcknowledged;
95
- } else {
96
- // Create mode:
97
- // 1. Disable until validation completes
98
- // 2. Disable if content is empty
99
- // 3. Disable if validation finds errors AND errors not acknowledged (user must click redirection icon)
100
- shouldDisableButtons = !validationComplete || isContentEmpty || (hasValidationErrors && !errorsAcknowledged);
101
- }
102
- }
103
-
104
- // Show ErrorInfoNote for API validation errors (from validateLiquidTemplateContent)
105
- // For HTML Editor: API validation errors are shown in ValidationErrorDisplay (inside CodeEditorPane), not here
106
- const hasStandardErrors = errorMessages && errorMessages.STANDARD_ERROR_MSG && errorMessages.STANDARD_ERROR_MSG.length > 0;
107
- const hasLiquidErrors = errorMessages && errorMessages.LIQUID_ERROR_MSG && errorMessages.LIQUID_ERROR_MSG.length > 0;
108
-
109
- // Check if htmlEditorValidationState has actual validation errors
110
- // If htmlEditorValidationState exists but has no errors (total === 0), and we have STANDARD/LIQUID errors,
111
- // then those errors are from BEE editor (FormBuilder validation), not HTML Editor
112
- const htmlEditorHasErrors = htmlEditorValidationState && htmlEditorValidationState.issueCounts && htmlEditorValidationState.issueCounts.total > 0;
113
-
114
- // BEE editor errors: We have STANDARD/LIQUID errors AND either:
115
- // 1. No htmlEditorValidationState exists, OR
116
- // 2. htmlEditorValidationState exists but has no actual errors (meaning errors are from FormBuilder/BEE editor)
117
- // IMPORTANT: Only check for BEE editor errors when NOT in HTML Editor mode (upload or html_editor)
118
- // Upload mode uses HTML Editor, so BEE editor errors don't apply
119
- // IMPORTANT: BEE editor doesn't have real-time content updates,
120
- // so we should NOT disable buttons based on validation errors
121
- // In edit mode: Check if htmlEditorValidationState is in initial state (not updated by HTML Editor)
122
- // In edit mode with BEE editor, htmlEditorValidationState will remain in initial state
123
- // In create mode, check selectedEmailCreateMode or emailCreateMode
124
- const isBEEEditorModeInEdit = isEditMode && !isHtmlEditorValidationStateActive;
125
- console.log('***isBEEEditorModeInEdit', isBEEEditorModeInEdit, 'isHtmlEditorValidationStateActive', isHtmlEditorValidationStateActive);
126
- const isBEEEditorModeInCreate = !isHTMLEditorMode && !isEditMode;
127
- console.log('***isBEEEditorModeInCreate', isBEEEditorModeInCreate);
128
- const isBEEEditorMode = isBEEEditorModeInEdit || isBEEEditorModeInCreate;
129
- console.log('***isBEEEditorMode', isBEEEditorMode);
130
- const hasBEEEditorErrors = isEmailChannel && isBEEEditorMode && (hasStandardErrors || hasLiquidErrors) && (!htmlEditorValidationState || !htmlEditorHasErrors);
131
- console.log('***hasBEEEditorErrors', hasBEEEditorErrors);
132
-
133
- const shouldShowErrorInfoNote = hasBEEEditorErrors;
134
36
  return (
135
- <div className="template-footer-width">
136
- {shouldShowErrorInfoNote && (
137
- <ErrorInfoNote
138
- errorMessages={errorMessages}
139
- currentTab={currentTab?.toUpperCase()}
140
- useLegacyDisplay // Use simple list display for BEE Editor (not tabbed interface)
141
- />
142
- )}
37
+ <div className='template-footer-width'>
38
+ {isLiquidValidationError && (<ErrorInfoNote errorMessages={errorMessages} currentTab={currentTab?.toUpperCase()} />)}
143
39
  <div>
144
40
  {shouldShowDoneFooter() && (
145
41
  <div>
@@ -151,10 +47,10 @@ function SlideBoxFooter(props) {
151
47
  <CapRow>
152
48
  <CapButton
153
49
  onClick={onSave}
154
- disabled={isTemplateNameEmpty || fetchingCmsData || shouldDisableButtons}
50
+ disabled={isTemplateNameEmpty || fetchingCmsData || false}
155
51
  >
156
52
  {isFullMode ? (
157
- getFullModeSaveBtn(slidBoxContent, isCreatingTemplate)
53
+ getFullModeSaveBtn(slidBoxContent)
158
54
  ) : (
159
55
  <FormattedMessage {...messages.creativesTemplatesSave} />
160
56
  )}
@@ -163,7 +59,7 @@ function SlideBoxFooter(props) {
163
59
  <CapButton
164
60
  type="secondary"
165
61
  onClick={onTestAndPreview}
166
- disabled={shouldDisableButtons}
62
+ // disabled={isEmptyContent || false}
167
63
  style={{ marginLeft: '8px' }}
168
64
  >
169
65
  <FormattedMessage {...messages.testAndPreview} />
@@ -174,11 +70,8 @@ function SlideBoxFooter(props) {
174
70
  </div>
175
71
  )}
176
72
  {shouldShowContinueFooter() && (
177
- <CapButton
178
- onClick={onCreateNextStep}
179
- disabled={isContinueButtonDisabled || false}
180
- >
181
- <FormattedMessage {...(continueButtonLabel || messages.continue)} />
73
+ <CapButton onClick={onCreateNextStep}>
74
+ <FormattedMessage {...messages.continue} />
182
75
  </CapButton>
183
76
  )}
184
77
  {slidBoxContent === PREVIEW && (
@@ -206,48 +99,5 @@ SlideBoxFooter.propTypes = {
206
99
  onTestAndPreview: PropTypes.func,
207
100
  isEmptyContent: PropTypes.bool,
208
101
  showTestAndPreviewButton: PropTypes.bool,
209
- isContinueButtonDisabled: PropTypes.bool,
210
- continueButtonLabel: PropTypes.object,
211
- htmlEditorValidationState: PropTypes.shape({
212
- isContentEmpty: PropTypes.bool,
213
- issueCounts: PropTypes.shape({
214
- html: PropTypes.number,
215
- label: PropTypes.number,
216
- liquid: PropTypes.number,
217
- total: PropTypes.number,
218
- }),
219
- validationComplete: PropTypes.bool,
220
- /** Only Rule Group #1 (Input & Sanitization) blocks; warnings do not block */
221
- hasErrors: PropTypes.bool,
222
- }),
223
- isCreatingTemplate: PropTypes.bool,
224
- currentChannel: PropTypes.string,
225
- emailCreateMode: PropTypes.string,
226
- selectedEmailCreateMode: PropTypes.string,
227
- };
228
-
229
- SlideBoxFooter.defaultProps = {
230
- slidBoxContent: '',
231
- onSave: () => {},
232
- onEditTemplate: () => {},
233
- onCreateNextStep: () => {},
234
- shouldShowContinueFooter: () => {},
235
- shouldShowDoneFooter: () => {},
236
- isFullMode: false,
237
- fetchingCmsData: false,
238
- isTemplateNameEmpty: false,
239
- errorMessages: [],
240
- isLiquidValidationError: false,
241
- currentTab: '',
242
- onTestAndPreview: () => {},
243
- isEmptyContent: false,
244
- showTestAndPreviewButton: false,
245
- isContinueButtonDisabled: false,
246
- continueButtonLabel: {},
247
- htmlEditorValidationState: {},
248
- isCreatingTemplate: false,
249
- currentChannel: '',
250
- emailCreateMode: '',
251
- selectedEmailCreateMode: '',
252
102
  };
253
103
  export default SlideBoxFooter;
@@ -45,7 +45,6 @@ export function SlideBoxHeader(props) {
45
45
  const isZaloEdit = channel.toLowerCase() === ZALO && slidBoxContent === 'editTemplate';
46
46
  const zaloOverview = isZaloEdit && isFullMode;
47
47
  const whatsappOverview = isWhatsappEdit && isFullMode;
48
- const shouldShowInAppEditHeader = isInAppEdit && !isFullMode;
49
48
  const headerMessage = whatsappOverview ? messages.whatsappOverview : zaloOverview ? messages.zaloOverview : messages.editMessageContent;
50
49
  const {
51
50
  whatsappTemplateName,
@@ -72,7 +71,6 @@ export function SlideBoxHeader(props) {
72
71
  rcs: <FormattedMessage {...messages.rcsCreative} />,
73
72
  zalo: <FormattedMessage {...messages.zaloTemplate} />,
74
73
  viber: <FormattedMessage {...messages.viberTemplate} />,
75
- webpush: <FormattedMessage {...messages.webPushTemplate} />,
76
74
  };
77
75
  return labels[currentChannel.toLowerCase()];
78
76
  };
@@ -111,7 +109,7 @@ export function SlideBoxHeader(props) {
111
109
  }
112
110
  />
113
111
  )}
114
- {!showTemplateNameHeader && slidBoxContent === 'editTemplate' && (shouldShowInAppEditHeader || !isInAppCreate) && (
112
+ {!showTemplateNameHeader && slidBoxContent === 'editTemplate' && (
115
113
  <CapHeader
116
114
  className="support-video-elements"
117
115
  title={<FormattedMessage {...headerMessage} values={{ channel: getChannelLabel(channel) }} />}
@@ -21,12 +21,9 @@ 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";
29
- export const HTML = "HTML";
30
27
 
31
28
  export const LOYALTY_SUPPORTED_ACTION = "SEND_COMMUNICATION_ACTION";
32
29
 
@@ -51,4 +48,3 @@ export const BIG_TEXT = "BIG_TEXT";
51
48
  export const GENERIC = "GENERIC";
52
49
  export const LIQUID_ERROR_MSG = "LIQUID_ERROR_MSG";
53
50
  export const STANDARD_ERROR_MSG = "STANDARD_ERROR_MSG";
54
- export const COMMON_CHANNELS = ['sms', 'email', 'wechat', 'mobilepush', 'webpush', 'line', 'viber', 'facebook', 'call_task', 'ftp', 'assets'];