@capillarytech/creatives-library 8.0.242-alpha.10 → 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 (256) 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 +91 -220
  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 +45 -107
  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/_editorToolbar.scss +0 -9
  41. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +1 -1
  42. package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +0 -22
  43. package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +7 -4
  44. package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +45 -35
  45. package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +3 -1
  46. package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
  47. package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +6 -7
  48. package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +6 -3
  49. package/v2Components/HtmlEditor/components/PreviewPane/index.js +11 -10
  50. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
  51. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +72 -70
  52. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +31 -49
  53. package/v2Components/HtmlEditor/constants.js +20 -29
  54. package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +16 -373
  55. package/v2Components/HtmlEditor/hooks/useEditorContent.js +2 -5
  56. package/v2Components/HtmlEditor/hooks/useInAppContent.js +146 -88
  57. package/v2Components/HtmlEditor/index.js +1 -1
  58. package/v2Components/HtmlEditor/messages.js +85 -95
  59. package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +101 -99
  60. package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +25 -23
  61. package/v2Components/HtmlEditor/utils/validationAdapter.js +41 -34
  62. package/v2Components/MobilePushPreviewV2/index.js +7 -32
  63. package/v2Components/TemplatePreview/_templatePreview.scss +24 -44
  64. package/v2Components/TemplatePreview/index.js +32 -47
  65. package/v2Components/TemplatePreview/messages.js +0 -4
  66. package/v2Components/TestAndPreviewSlidebox/index.js +25 -31
  67. package/v2Containers/App/constants.js +5 -0
  68. package/v2Containers/BeeEditor/index.js +80 -82
  69. package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +4 -3
  70. package/v2Containers/CreativesContainer/SlideBoxContent.js +118 -148
  71. package/v2Containers/CreativesContainer/SlideBoxFooter.js +3 -9
  72. package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -2
  73. package/v2Containers/CreativesContainer/constants.js +2 -1
  74. package/v2Containers/CreativesContainer/index.js +41 -173
  75. package/v2Containers/CreativesContainer/messages.js +4 -4
  76. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +210 -0
  77. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +354 -38
  78. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -36
  79. package/v2Containers/Email/actions.js +0 -7
  80. package/v2Containers/Email/constants.js +1 -5
  81. package/v2Containers/Email/index.js +0 -13
  82. package/v2Containers/Email/messages.js +0 -32
  83. package/v2Containers/Email/reducer.js +1 -12
  84. package/v2Containers/Email/sagas.js +6 -41
  85. package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +0 -2
  86. package/v2Containers/EmailWrapper/components/EmailWrapperView.js +7 -193
  87. package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +74 -40
  88. package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +67 -2
  89. package/v2Containers/EmailWrapper/constants.js +0 -2
  90. package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +67 -436
  91. package/v2Containers/EmailWrapper/index.js +23 -99
  92. package/v2Containers/EmailWrapper/messages.js +1 -61
  93. package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +214 -0
  94. package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +77 -111
  95. package/v2Containers/InApp/actions.js +0 -7
  96. package/v2Containers/InApp/constants.js +4 -20
  97. package/v2Containers/InApp/index.js +357 -801
  98. package/v2Containers/InApp/index.scss +3 -4
  99. package/v2Containers/InApp/messages.js +3 -7
  100. package/v2Containers/InApp/reducer.js +3 -21
  101. package/v2Containers/InApp/sagas.js +9 -29
  102. package/v2Containers/InApp/selectors.js +5 -25
  103. package/v2Containers/InApp/tests/index.test.js +50 -154
  104. package/v2Containers/InApp/tests/reducer.test.js +0 -34
  105. package/v2Containers/InApp/tests/sagas.test.js +9 -61
  106. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +12 -12
  107. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +8 -8
  108. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +100 -77
  109. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +72 -63
  110. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +184 -150
  111. package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +16 -12
  112. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +32 -28
  113. package/v2Containers/TagList/index.js +1 -67
  114. package/v2Containers/Templates/ChannelTypeIllustration.js +13 -1
  115. package/v2Containers/Templates/_templates.scss +202 -56
  116. package/v2Containers/Templates/actions.js +2 -1
  117. package/v2Containers/Templates/constants.js +1 -0
  118. package/v2Containers/Templates/index.js +278 -128
  119. package/v2Containers/Templates/messages.js +24 -4
  120. package/v2Containers/Templates/reducer.js +2 -0
  121. package/v2Containers/Templates/tests/index.test.js +10 -0
  122. package/v2Containers/TemplatesV2/index.js +8 -1
  123. package/v2Containers/TemplatesV2/messages.js +4 -0
  124. package/v2Containers/WebPush/Create/components/BrandIconSection.js +108 -0
  125. package/v2Containers/WebPush/Create/components/ButtonForm.js +172 -0
  126. package/v2Containers/WebPush/Create/components/ButtonItem.js +101 -0
  127. package/v2Containers/WebPush/Create/components/ButtonList.js +145 -0
  128. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +164 -0
  129. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +463 -0
  130. package/v2Containers/WebPush/Create/components/FormActions.js +54 -0
  131. package/v2Containers/WebPush/Create/components/FormActions.test.js +163 -0
  132. package/v2Containers/WebPush/Create/components/MediaSection.js +142 -0
  133. package/v2Containers/WebPush/Create/components/MediaSection.test.js +341 -0
  134. package/v2Containers/WebPush/Create/components/MessageSection.js +103 -0
  135. package/v2Containers/WebPush/Create/components/MessageSection.test.js +268 -0
  136. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +87 -0
  137. package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +210 -0
  138. package/v2Containers/WebPush/Create/components/TemplateNameSection.js +54 -0
  139. package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +143 -0
  140. package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +86 -0
  141. package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +16 -0
  142. package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +41 -0
  143. package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +54 -0
  144. package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +37 -0
  145. package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +21 -0
  146. package/v2Containers/WebPush/Create/components/_buttons.scss +246 -0
  147. package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +554 -0
  148. package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +607 -0
  149. package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +633 -0
  150. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +666 -0
  151. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +74 -0
  152. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +78 -0
  153. package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +138 -0
  154. package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +406 -0
  155. package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +30 -0
  156. package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +151 -0
  157. package/v2Containers/WebPush/Create/hooks/useImageUpload.js +104 -0
  158. package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +538 -0
  159. package/v2Containers/WebPush/Create/hooks/useTagManagement.js +122 -0
  160. package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +633 -0
  161. package/v2Containers/WebPush/Create/index.js +1056 -0
  162. package/v2Containers/WebPush/Create/index.scss +134 -0
  163. package/v2Containers/WebPush/Create/messages.js +203 -0
  164. package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +228 -0
  165. package/v2Containers/WebPush/Create/preview/NotificationContainer.js +294 -0
  166. package/v2Containers/WebPush/Create/preview/PreviewContent.js +90 -0
  167. package/v2Containers/WebPush/Create/preview/PreviewControls.js +305 -0
  168. package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +23 -0
  169. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +150 -0
  170. package/v2Containers/WebPush/Create/preview/assets/Light.svg +53 -0
  171. package/v2Containers/WebPush/Create/preview/assets/Top.svg +5 -0
  172. package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +9 -0
  173. package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +9 -0
  174. package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
  175. package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
  176. package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +106 -0
  177. package/v2Containers/WebPush/Create/preview/assets/iOS.svg +26 -0
  178. package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +9 -0
  179. package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +9 -0
  180. package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +18 -0
  181. package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +29 -0
  182. package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +9 -0
  183. package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +9 -0
  184. package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +47 -0
  185. package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +141 -0
  186. package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +45 -0
  187. package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +68 -0
  188. package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +61 -0
  189. package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +99 -0
  190. package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +733 -0
  191. package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +571 -0
  192. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +81 -0
  193. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +81 -0
  194. package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +50 -0
  195. package/v2Containers/WebPush/Create/preview/constants.js +637 -0
  196. package/v2Containers/WebPush/Create/preview/notification-container.scss +79 -0
  197. package/v2Containers/WebPush/Create/preview/preview.scss +351 -0
  198. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +370 -0
  199. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +12 -0
  200. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +12 -0
  201. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +12 -0
  202. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +47 -0
  203. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +11 -0
  204. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +11 -0
  205. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +11 -0
  206. package/v2Containers/WebPush/Create/preview/styles/_base.scss +207 -0
  207. package/v2Containers/WebPush/Create/preview/styles/_ios.scss +153 -0
  208. package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +107 -0
  209. package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +101 -0
  210. package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +229 -0
  211. package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +909 -0
  212. package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +1081 -0
  213. package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +723 -0
  214. package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +943 -0
  215. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +131 -0
  216. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +112 -0
  217. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +144 -0
  218. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +129 -0
  219. package/v2Containers/WebPush/Create/utils/payloadBuilder.js +94 -0
  220. package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +390 -0
  221. package/v2Containers/WebPush/Create/utils/previewUtils.js +89 -0
  222. package/v2Containers/WebPush/Create/utils/urlValidation.js +115 -0
  223. package/v2Containers/WebPush/Create/utils/urlValidation.test.js +449 -0
  224. package/v2Containers/WebPush/Create/utils/validation.js +75 -0
  225. package/v2Containers/WebPush/Create/utils/validation.test.js +283 -0
  226. package/v2Containers/WebPush/actions.js +60 -0
  227. package/v2Containers/WebPush/constants.js +128 -0
  228. package/v2Containers/WebPush/index.js +2 -0
  229. package/v2Containers/WebPush/reducer.js +104 -0
  230. package/v2Containers/WebPush/sagas.js +119 -0
  231. package/v2Containers/WebPush/selectors.js +65 -0
  232. package/v2Containers/WebPush/tests/reducer.test.js +863 -0
  233. package/v2Containers/WebPush/tests/sagas.test.js +566 -0
  234. package/v2Containers/WebPush/tests/selectors.test.js +843 -0
  235. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +528 -431
  236. package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +0 -254
  237. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +0 -362
  238. package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +0 -51
  239. package/v2Containers/BeePopupEditor/constants.js +0 -10
  240. package/v2Containers/BeePopupEditor/index.js +0 -193
  241. package/v2Containers/BeePopupEditor/tests/index.test.js +0 -627
  242. package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +0 -1046
  243. package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +0 -376
  244. package/v2Containers/InApp/__tests__/sagas.test.js +0 -363
  245. package/v2Containers/InApp/tests/selectors.test.js +0 -612
  246. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +0 -162
  247. package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +0 -267
  248. package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +0 -9
  249. package/v2Containers/InAppWrapper/constants.js +0 -16
  250. package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +0 -473
  251. package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +0 -198
  252. package/v2Containers/InAppWrapper/index.js +0 -148
  253. package/v2Containers/InAppWrapper/messages.js +0 -49
  254. package/v2Containers/InappAdvance/index.js +0 -1099
  255. package/v2Containers/InappAdvance/index.scss +0 -10
  256. package/v2Containers/InappAdvance/tests/index.test.js +0 -448
@@ -31,9 +31,8 @@ function SlideBoxFooter(props) {
31
31
  showTestAndPreviewButton,
32
32
  shouldShowDoneFooter,
33
33
  shouldShowContinueFooter,
34
- isContinueButtonDisabled,
35
- continueButtonLabel,
36
34
  } = props;
35
+
37
36
  return (
38
37
  <div className='template-footer-width'>
39
38
  {isLiquidValidationError && (<ErrorInfoNote errorMessages={errorMessages} currentTab={currentTab?.toUpperCase()} />)}
@@ -71,11 +70,8 @@ function SlideBoxFooter(props) {
71
70
  </div>
72
71
  )}
73
72
  {shouldShowContinueFooter() && (
74
- <CapButton
75
- onClick={onCreateNextStep}
76
- disabled={isContinueButtonDisabled || false}
77
- >
78
- <FormattedMessage {...(continueButtonLabel || messages.continue)} />
73
+ <CapButton onClick={onCreateNextStep}>
74
+ <FormattedMessage {...messages.continue} />
79
75
  </CapButton>
80
76
  )}
81
77
  {slidBoxContent === PREVIEW && (
@@ -103,7 +99,5 @@ SlideBoxFooter.propTypes = {
103
99
  onTestAndPreview: PropTypes.func,
104
100
  isEmptyContent: PropTypes.bool,
105
101
  showTestAndPreviewButton: PropTypes.bool,
106
- isContinueButtonDisabled: PropTypes.bool,
107
- continueButtonLabel: PropTypes.object,
108
102
  };
109
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,6 +71,7 @@ export function SlideBoxHeader(props) {
72
71
  rcs: <FormattedMessage {...messages.rcsCreative} />,
73
72
  zalo: <FormattedMessage {...messages.zaloTemplate} />,
74
73
  viber: <FormattedMessage {...messages.viberTemplate} />,
74
+ webpush: <FormattedMessage {...messages.webPushTemplate} />,
75
75
  };
76
76
  return labels[currentChannel.toLowerCase()];
77
77
  };
@@ -110,7 +110,7 @@ export function SlideBoxHeader(props) {
110
110
  }
111
111
  />
112
112
  )}
113
- {!showTemplateNameHeader && slidBoxContent === 'editTemplate' && (shouldShowInAppEditHeader || !isInAppCreate) && (
113
+ {!showTemplateNameHeader && slidBoxContent === 'editTemplate' && (
114
114
  <CapHeader
115
115
  className="support-video-elements"
116
116
  title={<FormattedMessage {...headerMessage} values={{ channel: getChannelLabel(channel) }} />}
@@ -21,10 +21,11 @@ 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";
24
26
  export const PREVIEW = "preview";
25
27
  export const EDIT_TEMPLATE = "editTemplate";
26
28
  export const JOURNEY = "journey";
27
- export const HTML = "HTML";
28
29
 
29
30
  export const LOYALTY_SUPPORTED_ACTION = "SEND_COMMUNICATION_ACTION";
30
31
 
@@ -43,7 +43,7 @@ import {
43
43
  IMAGE as LINE_IMAGE, IMAGE_MAP, IMAGE_CAROUSEL, VIDEO as LINE_VIDEO, TEMPLATE, STICKER,
44
44
  } from '../Line/Container/constants';
45
45
  import { IMAGE, VIDEO } from '../Facebook/Advertisement/constant';
46
- import { RCS_STATUSES } from '../Rcs/constants';
46
+ import {RCS_STATUSES} from '../Rcs/constants';
47
47
  import { CREATIVE } from '../Facebook/constants';
48
48
  import { LOYALTY } from '../App/constants';
49
49
  import {
@@ -64,7 +64,6 @@ import {
64
64
  // getTemplateDiffState
65
65
  } from "../../utils/transformerUtils";
66
66
  import { MANUAL_CAROUSEL } from '../MobilePushNew/constants';
67
- import { BIG_HTML } from '../InApp/constants';
68
67
 
69
68
  const classPrefix = 'add-creatives-section';
70
69
  const CREATIVES_CONTAINER = 'creativesContainer';
@@ -96,7 +95,6 @@ export class Creatives extends React.Component {
96
95
  currentChannel: this.props.channel || 'sms',
97
96
  weChatTemplateType: '',
98
97
  weChatMaptemplateStep: 0,
99
- inAppEditorType: null,
100
98
  isLiquidValidationError: false,
101
99
  errorMessages: [],
102
100
  liquidErrorMessage: {
@@ -109,8 +107,6 @@ export class Creatives extends React.Component {
109
107
  isTestAndPreviewMode: false, // Add flag to track Test & Preview mode
110
108
  // Performance optimization: Local template name for immediate UI feedback
111
109
  localTemplateName: '',
112
- // Track selected email create mode for new flow (HTML Editor vs Drag & Drop)
113
- selectedEmailCreateMode: null,
114
110
  };
115
111
  this.liquidFlow = Boolean(commonUtil.hasLiquidSupportFeature());
116
112
  this.creativesTemplateSteps = {
@@ -140,7 +136,7 @@ export class Creatives extends React.Component {
140
136
  if (!this.props?.isFullMode) {
141
137
  this.props?.templateActions.getCdnTransformationConfig();
142
138
  }
143
-
139
+
144
140
  // Store loyalty tag props if loyaltyTagFetchingDependencies is provided
145
141
  const { loyaltyTagFetchingDependencies } = this.props;
146
142
  if (loyaltyTagFetchingDependencies) {
@@ -166,9 +162,9 @@ export class Creatives extends React.Component {
166
162
  const isEmptyTemplateName = !value.trim();
167
163
 
168
164
  // 1. IMMEDIATE: Update local state for instant UI feedback
169
- this.setState({
165
+ this.setState({
170
166
  isTemplateNameEmpty: isEmptyTemplateName,
171
- localTemplateName: value
167
+ localTemplateName: value
172
168
  });
173
169
 
174
170
  // 2. DEBOUNCED: Only debounce the expensive onFormDataChange call
@@ -247,19 +243,8 @@ export class Creatives extends React.Component {
247
243
  onCreateNextStep = () => {
248
244
  this.setState((prevState) => {
249
245
  let templateStep = prevState.templateStep + 1;
250
- const { emailCreateMode, currentChannel, selectedEmailCreateMode } = prevState;
251
-
252
- // Check if we should skip template selection for HTML Editor
253
- const supportCKEditor = commonUtil.hasSupportCKEditor();
254
- const shouldSkipTemplateSelection = !supportCKEditor
255
- && selectedEmailCreateMode === 'html_editor'
256
- && currentChannel.toUpperCase() === constants.EMAIL
257
- && prevState.templateStep === 1; // Only skip if we're at modeSelection step
258
-
259
- if (shouldSkipTemplateSelection) {
260
- // Skip template selection (step 2), go directly to createTemplateContent (step 3)
261
- templateStep = prevState.templateStep + 2;
262
- } else if ((currentChannel.toUpperCase() === constants.EMAIL && emailCreateMode === "upload") || [constants.MOBILE_PUSH, constants.WECHAT, constants.INAPP].includes(currentChannel.toUpperCase())) {
246
+ const { emailCreateMode, currentChannel } = prevState;
247
+ if ((currentChannel.toUpperCase() === constants.EMAIL && emailCreateMode === "upload") || [constants.MOBILE_PUSH, constants.WECHAT, constants.INAPP].includes(currentChannel.toUpperCase())) {
263
248
  templateStep = prevState.templateStep + 2;
264
249
  }
265
250
  return {
@@ -268,21 +253,14 @@ export class Creatives extends React.Component {
268
253
  });
269
254
  }
270
255
 
271
- onEmailModeChange = (mode, selectedMode = null) => {
272
- this.setState({
273
- emailCreateMode: mode,
274
- selectedEmailCreateMode: selectedMode || mode, // Store the selected mode for new flow
275
- });
256
+ onEmailModeChange = (mode) => {
257
+ this.setState({ emailCreateMode: mode });
276
258
  }
277
259
 
278
260
  onInAppModeChange = (mode) => {
279
261
  this.setState({ inAppCreateMode: mode });
280
262
  }
281
263
 
282
- onInAppEditorTypeChange = (editorType) => {
283
- this.setState({ inAppEditorType: editorType });
284
- }
285
-
286
264
  onMobilepushModeChange = (mode) => {
287
265
  this.setState({ mobilePushCreateMode: mode });
288
266
  }
@@ -326,7 +304,7 @@ export class Creatives extends React.Component {
326
304
  }
327
305
  return buttonObj;
328
306
  });
329
- const { url, previewUrl } = media || {};
307
+ const {url, previewUrl} = media || {};
330
308
  return {
331
309
  bodyText: bodyTemplate,
332
310
  varMap: cardVarMapped,
@@ -455,35 +433,14 @@ export class Creatives extends React.Component {
455
433
  }
456
434
  case constants.INAPP: {
457
435
  const mode = get(templateData, 'androidContent.type') || get(templateData, 'iosContent.type') || '';
458
-
459
- // Check if this is a BEE editor template (identified by special title 'bee free template')
460
- const isAndroidBeeEditor = templateData?.androidContent?.type === constants.HTML
461
- && templateData?.androidContent?.title?.toLowerCase() === 'bee free template';
462
- const isIosBeeEditor = templateData?.iosContent?.type === constants.HTML
463
- && templateData?.iosContent?.title?.toLowerCase() === 'bee free template';
464
-
465
436
  creativesTemplateData = {
466
437
  type: channel,
467
438
  name: templateData.messageSubject,
468
439
  versions: {
469
440
  base: {
470
441
  content: {
471
- ANDROID: isAndroidBeeEditor ? {
472
- type: templateData?.androidContent?.type,
473
- bodyType: templateData?.androidContent?.bodyType,
474
- deviceType: constants.ANDROID,
475
- beeHtml: { value: templateData?.androidContent?.message },
476
- beeJson: templateData?.androidContent?.expandableDetails?.message,
477
- isBEEeditor: true,
478
- } : templateData?.androidContent,
479
- IOS: isIosBeeEditor ? {
480
- type: templateData?.iosContent?.type,
481
- bodyType: templateData?.iosContent?.bodyType,
482
- deviceType: constants.IOS,
483
- beeHtml: { value: templateData?.iosContent?.message },
484
- beeJson: templateData?.iosContent?.expandableDetails?.message,
485
- isBEEeditor: true,
486
- } : templateData?.iosContent,
442
+ ANDROID: templateData?.androidContent,
443
+ IOS: templateData?.iosContent,
487
444
  },
488
445
  },
489
446
  },
@@ -718,7 +675,7 @@ export class Creatives extends React.Component {
718
675
  } = templateData || {};
719
676
  const cardContent = (rcsContent.cardContent && rcsContent.cardContent[0]) || {};
720
677
  const Status = RCS_STATUSES.approved || '';
721
-
678
+
722
679
  creativesTemplateData = {
723
680
  type: channel,
724
681
  edit: true,
@@ -803,7 +760,7 @@ export class Creatives extends React.Component {
803
760
  });
804
761
 
805
762
  getMobilePushCarouselData = (expandableDetails = []) => {
806
- const newExpandableDetails = { ...expandableDetails };
763
+ const newExpandableDetails = {...expandableDetails};
807
764
  newExpandableDetails.style = expandableDetails.style || MANUAL_CAROUSEL;
808
765
  newExpandableDetails.message = expandableDetails.message || '';
809
766
  newExpandableDetails.ctas = expandableDetails.ctas || [];
@@ -898,24 +855,11 @@ export class Creatives extends React.Component {
898
855
  androidContent.custom = custom;
899
856
  }
900
857
  if (channel === constants.MOBILE_PUSH && androidContent?.expandableDetails?.carouselData?.length) {
901
- androidContent.expandableDetails = this.getMobilePushCarouselData({ ...androidContent?.expandableDetails });
902
- }
903
- if (androidContent?.isBEEeditor && androidContent?.beeHtml?.value) {
904
- templateData.androidContent = {};
905
- templateData.androidContent.type = constants.HTML;
906
- templateData.androidContent.message = androidContent?.beeHtml?.value || '';
907
- templateData.androidContent.title = 'bee free template';
908
- templateData.androidContent.bodyType = androidContent?.bodyType;
909
- templateData.androidContent.deviceType = constants.ANDROID;
910
- templateData.androidContent.expandableDetails = {
911
- style: BIG_HTML,
912
- message: androidContent?.beeJson || '',
913
- };
914
- } else if (!androidContent?.isBEEeditor) {
915
- templateData.androidContent = androidContent;
916
- templateData.androidContent.type = androidContent?.type || get(channelTemplate, 'definition.mode', '')?.toUpperCase() || constants.TEXT;
917
- templateData.androidContent.deviceType = constants.ANDROID;
858
+ androidContent.expandableDetails = this.getMobilePushCarouselData({...androidContent?.expandableDetails});
918
859
  }
860
+ templateData.androidContent = androidContent;
861
+ templateData.androidContent.type = androidContent?.type || get(channelTemplate, 'definition.mode', '')?.toUpperCase() || constants.TEXT;
862
+ templateData.androidContent.deviceType = constants.ANDROID;
919
863
  }
920
864
  const iosContent = channel === constants.INAPP ? get(channelTemplate, 'versions.base.content.IOS') : get(channelTemplate, 'versions.base.IOS');
921
865
  if (!isEmpty(iosContent)) {
@@ -933,24 +877,11 @@ export class Creatives extends React.Component {
933
877
  iosContent.custom = custom;
934
878
  }
935
879
  if (channel === constants.MOBILE_PUSH && iosContent?.expandableDetails?.carouselData?.length) {
936
- iosContent.expandableDetails = this.getMobilePushCarouselData({ ...iosContent?.expandableDetails });
937
- }
938
- if (iosContent?.isBEEeditor && iosContent?.beeHtml?.value) {
939
- templateData.iosContent = {};
940
- templateData.iosContent.type = constants.HTML;
941
- templateData.iosContent.message = iosContent?.beeHtml?.value || '';
942
- templateData.iosContent.title = 'bee free template';
943
- templateData.iosContent.bodyType = iosContent?.bodyType;
944
- templateData.iosContent.deviceType = constants.IOS;
945
- templateData.iosContent.expandableDetails = {
946
- style: BIG_HTML,
947
- message: iosContent?.beeJson || '',
948
- };
949
- } else if (!iosContent?.isBEEeditor) {
950
- templateData.iosContent = iosContent;
951
- templateData.iosContent.type = iosContent?.type || get(channelTemplate, 'definition.mode', '')?.toUpperCase() || 'TEXT';
952
- templateData.iosContent.deviceType = constants.IOS;
880
+ iosContent.expandableDetails = this.getMobilePushCarouselData({...iosContent?.expandableDetails});
953
881
  }
882
+ templateData.iosContent = iosContent;
883
+ templateData.iosContent.type = iosContent?.type || get(channelTemplate, 'definition.mode', '')?.toUpperCase() || 'TEXT';
884
+ templateData.iosContent.deviceType = constants.IOS;
954
885
  }
955
886
  templateData.messageSubject = channelTemplate?.name ? channelTemplate?.name : "messageSubject";
956
887
  }
@@ -1165,7 +1096,7 @@ export class Creatives extends React.Component {
1165
1096
  contentType = "",
1166
1097
  cardType = "",
1167
1098
  cardSettings = {},
1168
- } = get(versions, 'base.content.RCS.rcsContent', {});
1099
+ } = get(versions, 'base.content.RCS.rcsContent',{});
1169
1100
  const rcsContent = {
1170
1101
  contentType,
1171
1102
  cardType,
@@ -1303,7 +1234,7 @@ export class Creatives extends React.Component {
1303
1234
  processCentralCommsMetaId = (channel, creativesData) => {
1304
1235
  // Create the payload for the centralcommnsmetaId API call
1305
1236
  const { isLoyaltyModule = false, loyaltyMetaData = {} } = this.props;
1306
- const { actionName, setMetaData = () => { } } = loyaltyMetaData;
1237
+ const { actionName, setMetaData = () => {} } = loyaltyMetaData;
1307
1238
 
1308
1239
  // const isTemplateModified = getTemplateDiffState(
1309
1240
  // channel,
@@ -1353,9 +1284,6 @@ export class Creatives extends React.Component {
1353
1284
  if (prevState.currentChannel.toUpperCase() === constants.EMAIL) {
1354
1285
  newState = { ...newState, emailCreateMode: null };
1355
1286
  }
1356
- if (prevState.currentChannel.toUpperCase() === constants.INAPP) {
1357
- newState = { ...newState, inAppEditorType: null };
1358
- }
1359
1287
  return newState;
1360
1288
  });
1361
1289
  }
@@ -1401,7 +1329,7 @@ export class Creatives extends React.Component {
1401
1329
  shouldShowFooter = () => {
1402
1330
  const { isFullMode } = this.props;
1403
1331
  const {
1404
- slidBoxContent, currentChannel, emailCreateMode, templateNameExists, templateStep, mobilePushCreateMode, weChatTemplateType, templateData, inAppCreateMode,
1332
+ slidBoxContent, currentChannel, emailCreateMode, templateNameExists, templateStep, mobilePushCreateMode, weChatTemplateType, templateData,
1405
1333
  } = this.state;
1406
1334
  const channel = currentChannel.toUpperCase();
1407
1335
  const currentStep = this.creativesTemplateSteps[templateStep];
@@ -1409,13 +1337,6 @@ export class Creatives extends React.Component {
1409
1337
  showFooter = isFullMode && slidBoxContent === "preview";
1410
1338
  const isMobilepush = channel === constants.MOBILE_PUSH;
1411
1339
 
1412
- const supportCKEditor = commonUtil.hasSupportCKEditor();
1413
- if (!supportCKEditor && channel === constants.EMAIL && currentStep === 'modeSelection' && slidBoxContent === 'createTemplate') {
1414
- return true;
1415
- }
1416
- if (!supportCKEditor && channel === constants.EMAIL && currentStep === 'createTemplateContent' && slidBoxContent === 'createTemplate') {
1417
- showFooter = true;
1418
- }
1419
1340
 
1420
1341
  if (!isFullMode) {
1421
1342
  const isEmailCreate = slidBoxContent === 'createTemplate' && channel === constants.EMAIL && currentStep !== 'createTemplateContent';
@@ -1451,7 +1372,6 @@ export class Creatives extends React.Component {
1451
1372
  showFooter = true;
1452
1373
  }
1453
1374
 
1454
-
1455
1375
  if (showFooter) {
1456
1376
  if (slidBoxContent === "createTemplate" && ((channel === constants.EMAIL && currentStep === 'createTemplateContent')
1457
1377
  || ([constants.SMS, constants.WECHAT].includes(channel) && currentStep === 'modeSelection'))) {
@@ -1474,7 +1394,7 @@ export class Creatives extends React.Component {
1474
1394
 
1475
1395
  shouldShowDoneFooter = () => {
1476
1396
  const {
1477
- slidBoxContent, templateStep, currentChannel, templateData, inAppCreateMode,
1397
+ slidBoxContent, templateStep, currentChannel, templateData,
1478
1398
  } = this.state;
1479
1399
  const { isFullMode } = this.props;
1480
1400
  const currentStep = this.creativesTemplateSteps[templateStep];
@@ -1482,17 +1402,10 @@ export class Creatives extends React.Component {
1482
1402
  const channelName = !isFullMode && templateData ? templateData.type : currentChannel;
1483
1403
  const channel = channelName?.toUpperCase();
1484
1404
 
1485
- // Check supportCKEditor flag for new HTML editor flow
1486
- const supportCKEditor = commonUtil.hasSupportCKEditor();
1405
+
1487
1406
  if (channel === constants.EMAIL || channel === constants.SMS) {
1488
1407
  const isEmailCreate = slidBoxContent === 'createTemplate' && channel === constants.EMAIL && currentStep !== 'createTemplateContent';
1489
-
1490
- // For new HTML editor flow (when supportCKEditor is false), show Done footer when in createTemplateContent step
1491
- if (!supportCKEditor && channel === constants.EMAIL && slidBoxContent === 'createTemplate' && currentStep === 'createTemplateContent') {
1492
- showDone = true;
1493
- } else {
1494
- showDone = (slidBoxContent === 'editTemplate' || slidBoxContent === 'createTemplate') && !isEmailCreate;
1495
- }
1408
+ showDone = (slidBoxContent === 'editTemplate' || slidBoxContent === 'createTemplate') && !isEmailCreate;
1496
1409
  } else if ([constants.WECHAT, constants.MOBILE_PUSH].includes(channel)) {
1497
1410
  showDone = currentStep === "createTemplateContent" || slidBoxContent === "editTemplate";
1498
1411
 
@@ -1502,6 +1415,7 @@ export class Creatives extends React.Component {
1502
1415
  }
1503
1416
  }
1504
1417
 
1418
+
1505
1419
  return showDone;
1506
1420
  }
1507
1421
 
@@ -1521,18 +1435,18 @@ export class Creatives extends React.Component {
1521
1435
  templateNameComponentInput = ({ formData, onFormDataChange, name }) => {
1522
1436
  // Use local state for immediate UI feedback, fallback to prop value
1523
1437
  const displayValue = this.state.localTemplateName !== '' ? this.state.localTemplateName : name;
1524
-
1438
+
1525
1439
  return (
1526
1440
  <CapInput
1527
1441
  value={displayValue}
1528
1442
  suffix={<span />}
1529
- onBlur={() => {
1530
- this.setState({
1443
+ onBlur={() => {
1444
+ this.setState({
1531
1445
  isEditName: false,
1532
1446
  localTemplateName: '' // Clear local state on blur
1533
- }, () => {
1534
- this.showTemplateName({ formData, onFormDataChange });
1535
- });
1447
+ }, () => {
1448
+ this.showTemplateName({ formData, onFormDataChange });
1449
+ });
1536
1450
  }}
1537
1451
  onChange={(ev) => {
1538
1452
  const { value } = ev.currentTarget;
@@ -1544,16 +1458,10 @@ export class Creatives extends React.Component {
1544
1458
  }
1545
1459
 
1546
1460
  showTemplateName = ({ formData, onFormDataChange }) => { //gets called from email/index after template data is fetched
1547
- const { slidBoxContent, currentChannel, isEditName, templateStep } = this.state;
1461
+ const { slidBoxContent, currentChannel, isEditName } = this.state;
1548
1462
  const channel = currentChannel.toUpperCase();
1549
1463
  if ([constants.EMAIL, constants.MOBILE_PUSH, constants.INAPP].includes(channel) && (slidBoxContent === 'editTemplate' || slidBoxContent === 'createTemplate')) {
1550
1464
  const name = get(formData, 'template-name');
1551
-
1552
- const isModeSelectionStep = templateStep === 'modeSelection' || this.creativesTemplateSteps[templateStep] === 'modeSelection';
1553
- const isCreateMode = slidBoxContent === 'createTemplate';
1554
- if (isCreateMode && isModeSelectionStep) {
1555
- return;
1556
- }
1557
1465
  if (channel === constants.EMAIL && !name && slidBoxContent === 'createTemplate') {
1558
1466
  this.setState({ isTemplateNameEmpty: true });
1559
1467
  }
@@ -1561,7 +1469,7 @@ export class Creatives extends React.Component {
1561
1469
  if (name && !isEditName) {
1562
1470
  this.setState({ showTemplateNameComponentEdit: false });
1563
1471
  } else if (isEditName) {
1564
- this.setState({
1472
+ this.setState({
1565
1473
  showTemplateNameComponentEdit: true,
1566
1474
  localTemplateName: name || '' // Initialize local state with current value
1567
1475
  });
@@ -1579,22 +1487,13 @@ export class Creatives extends React.Component {
1579
1487
 
1580
1488
  shouldShowContinueFooter = () => { // only for email for now, has to be modified according to channel
1581
1489
  const {
1582
- slidBoxContent, templateStep, currentChannel, emailCreateMode, mobilePushCreateMode, inAppEditorType, weChatTemplateType,
1490
+ slidBoxContent, templateStep, currentChannel, emailCreateMode, mobilePushCreateMode, inAppCreateMode, weChatTemplateType,
1583
1491
  } = this.state;
1584
1492
  let isShowContinueFooter = false;
1585
1493
  const currentStep = this.creativesTemplateSteps[templateStep];
1586
1494
  const channel = currentChannel.toUpperCase();
1587
- // Check if supportCKEditor is false (new flow)
1588
- const supportCKEditor = commonUtil.hasSupportCKEditor(); // Default to legacy flow
1589
1495
  if (channel === constants.EMAIL || channel === constants.SMS) {
1590
- // New flow: Show Continue button when supportCKEditor is false and in modeSelection
1591
- // Always show it (even if disabled) - visibility is separate from enabled state
1592
- if (!supportCKEditor && currentStep === 'modeSelection' && slidBoxContent === 'createTemplate') {
1593
- return true; // Return early to ensure visibility
1594
- }
1595
-
1596
- // Legacy flow: Original logic (only when supportCKEditor is true)
1597
- if (supportCKEditor && ((emailCreateMode === "upload" && !isEmpty(this.props.EmailLayout)) || emailCreateMode === "editor")) {
1496
+ if ((emailCreateMode === "upload" && !isEmpty(this.props.EmailLayout)) || emailCreateMode === "editor") {
1598
1497
  let isEmailCreate = slidBoxContent === 'createTemplate';
1599
1498
  isEmailCreate = currentChannel.toUpperCase() === constants.EMAIL && ((emailCreateMode === "upload" && currentStep !== 'createTemplateContent') || (emailCreateMode === "editor" && currentStep !== 'createTemplateContent' && currentStep !== "templateSelection"));
1600
1499
  isShowContinueFooter = isEmailCreate && emailCreateMode;
@@ -1603,6 +1502,8 @@ export class Creatives extends React.Component {
1603
1502
  isShowContinueFooter = !isEmpty(mobilePushCreateMode) && currentStep === "modeSelection";
1604
1503
  } else if (currentChannel.toUpperCase() === constants.WECHAT) {
1605
1504
  isShowContinueFooter = !isEmpty(weChatTemplateType) && currentStep === "modeSelection";
1505
+ } else if (currentChannel.toUpperCase() === constants.INAPP) {
1506
+ isShowContinueFooter = !isEmpty(inAppCreateMode) && currentChannel === "modeSelection";
1606
1507
  }
1607
1508
 
1608
1509
  return isShowContinueFooter;
@@ -1628,28 +1529,6 @@ export class Creatives extends React.Component {
1628
1529
  return true;
1629
1530
  }
1630
1531
 
1631
- // Check if Continue button should be disabled (for new flow only)
1632
- isContinueButtonDisabled = () => {
1633
- const { currentChannel, emailCreateMode, templateNameExists } = this.state;
1634
- const { isFullMode } = this.props;
1635
- const supportCKEditor = commonUtil.hasSupportCKEditor();
1636
- if (supportCKEditor) {
1637
- return false;
1638
- }
1639
- if (currentChannel.toUpperCase() === constants.EMAIL) {
1640
- const isEditorSelected = !!emailCreateMode && emailCreateMode !== 'upload';
1641
- // In full mode: require both template name AND editor selection
1642
- // In library mode: require only editor selection (template name not needed)
1643
- if (isFullMode) {
1644
- const isTemplateNameValid = templateNameExists;
1645
- return !(isTemplateNameValid && isEditorSelected);
1646
- }
1647
- // Library mode: only editor selection is required
1648
- return !isEditorSelected;
1649
- }
1650
- return true;
1651
- }
1652
-
1653
1532
  render() {
1654
1533
  const {
1655
1534
  slidBoxContent,
@@ -1670,7 +1549,6 @@ export class Creatives extends React.Component {
1670
1549
  activeFormBuilderTab,
1671
1550
  showTestAndPreviewSlidebox,
1672
1551
  isTestAndPreviewMode,
1673
- inAppEditorType,
1674
1552
  } = this.state;
1675
1553
  const {
1676
1554
  isFullMode,
@@ -1693,10 +1571,6 @@ export class Creatives extends React.Component {
1693
1571
  isLoyaltyModule,
1694
1572
  loyaltyMetaData = {},
1695
1573
  } = this.props;
1696
- // Compute Continue button label
1697
- const supportCKEditor = commonUtil.hasSupportCKEditor();
1698
- const continueButtonLabel = supportCKEditor ? messages.continue : messages.next;
1699
-
1700
1574
  const mapTemplateCreate = slidBoxContent === "createTemplate"
1701
1575
  && weChatTemplateType === MAP_TEMPLATE
1702
1576
  && templateStep !== "modeSelection";
@@ -1758,8 +1632,6 @@ export class Creatives extends React.Component {
1758
1632
  onChannelChange={this.onChannelChange}
1759
1633
  onEmailModeChange={this.onEmailModeChange}//used when create is clicked in email
1760
1634
  emailCreateMode={emailCreateMode}// upload zip || use editor are values
1761
- onInAppEditorTypeChange={this.onInAppEditorTypeChange}//used when create is clicked in inapp
1762
- inAppEditorType={inAppEditorType}// htmlEditor || dragDropEditor are values
1763
1635
  templateStep={this.creativesTemplateSteps[templateStep]}
1764
1636
  onCreateNextStep={this.onCreateNextStep}
1765
1637
  onEnterTemplateName={this.onEnterTemplateName}
@@ -1769,8 +1641,6 @@ export class Creatives extends React.Component {
1769
1641
  cap={cap}
1770
1642
  setIsLoadingContent={this.setIsLoadingContent}
1771
1643
  onMobilepushModeChange={this.onMobilepushModeChange}
1772
- inAppCreateMode={this.state.inAppCreateMode}
1773
- onInAppModeChange={this.onInAppModeChange}
1774
1644
  mobilePushCreateMode={mobilePushCreateMode}
1775
1645
  showTemplateName={this.showTemplateName}
1776
1646
  onValidationFail={this.onValidationFail}
@@ -1831,8 +1701,6 @@ export class Creatives extends React.Component {
1831
1701
  errorMessages={liquidErrorMessage}
1832
1702
  currentTab={activeFormBuilderTab}
1833
1703
  onTestAndPreview={this.handleTestAndPreview}
1834
- isContinueButtonDisabled={this.isContinueButtonDisabled()}
1835
- continueButtonLabel={continueButtonLabel}
1836
1704
  showTestAndPreviewButton={(() => {
1837
1705
  const showButton = currentChannel.toUpperCase() === constants.EMAIL && (slidBoxContent === 'editTemplate' || slidBoxContent === 'createTemplate');
1838
1706
  return showButton;
@@ -1843,7 +1711,7 @@ export class Creatives extends React.Component {
1843
1711
  {(() => {
1844
1712
  const errorsToShow = get(liquidErrorMessage, constants.LIQUID_ERROR_MSG, []);
1845
1713
  const standardErrorsToShow = get(liquidErrorMessage, constants.STANDARD_ERROR_MSG, []);
1846
- return <ErrorInfoNote currentTab={activeFormBuilderTab?.toUpperCase()} errorMessages={{ LIQUID_ERROR_MSG: errorsToShow, STANDARD_ERROR_MSG: standardErrorsToShow }} />;
1714
+ return <ErrorInfoNote currentTab={activeFormBuilderTab?.toUpperCase()} errorMessages={{LIQUID_ERROR_MSG: errorsToShow, STANDARD_ERROR_MSG: standardErrorsToShow}} />;
1847
1715
  })()}
1848
1716
  </CapRow>
1849
1717
  )}
@@ -338,6 +338,10 @@ export default defineMessages({
338
338
  id: `${scope}.rcsCreative`,
339
339
  defaultMessage: `RCS creative`,
340
340
  },
341
+ "webPushTemplate": {
342
+ id: `${scope}.webPushTemplate`,
343
+ defaultMessage: `Web Push Template`,
344
+ },
341
345
  "templateNameEmpty": {
342
346
  id: `${scope}.templateNameEmpty`,
343
347
  defaultMessage: `Template name cannot be empty`
@@ -366,8 +370,4 @@ export default defineMessages({
366
370
  id: `${scope}.testAndPreview`,
367
371
  defaultMessage: `Preview and Test`,
368
372
  },
369
- "next": {
370
- id: `${scope}.next`,
371
- defaultMessage: `Next`,
372
- },
373
373
  });