@capillarytech/creatives-library 7.18.0-beta.0 → 8.0.0

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 (334) hide show
  1. package/app.js +27 -54
  2. package/assets/Line_Preview_English.svg +24 -0
  3. package/assets/Line_Preview_Japanese.svg +24 -0
  4. package/components/CapTagList/index.js +2 -2
  5. package/components/CapTagList/messages.js +8 -0
  6. package/components/Ckeditor/index.js +4 -2
  7. package/components/Ckeditor/style.scss +3 -0
  8. package/components/FormBuilder/_formBuilder.scss +4 -16
  9. package/components/FormBuilder/index.js +4 -3
  10. package/components/FormBuilder/messages.js +4 -0
  11. package/components/Sidebar/index.js +4 -4
  12. package/config/path.js +1 -1
  13. package/containers/App/constants.js +95 -0
  14. package/containers/App/index.js +52 -0
  15. package/containers/App/sagas.js +8 -3
  16. package/containers/Assets/Gallery/index.js +17 -3
  17. package/containers/Assets/Gallery/messages.js +4 -0
  18. package/containers/Assets/Gallery/sagas.js +14 -14
  19. package/containers/Cap/index.js +84 -50
  20. package/containers/Cap/sagas.js +20 -12
  21. package/containers/Cap/selectors.js +13 -13
  22. package/containers/Cap/tests/__snapshots__/index.test.js.snap +1 -1
  23. package/containers/Cap/tests/saga.test.js +81 -1
  24. package/containers/Dashboard/index.js +34 -17
  25. package/containers/Dashboard/sagas.js +7 -1
  26. package/containers/Ebill/index.js +16 -3
  27. package/containers/Ebill/sagas.js +18 -11
  28. package/containers/Email/index.js +20 -3
  29. package/containers/Email/sagas.js +34 -23
  30. package/containers/LanguageProvider/index.js +49 -31
  31. package/containers/LanguageProvider/tests/index.test.js +5 -3
  32. package/containers/Line/Create/index.js +15 -2
  33. package/containers/Line/Create/sagas.js +26 -17
  34. package/containers/Line/Edit/sagas.js +12 -13
  35. package/containers/Login/index.js +36 -11
  36. package/containers/MobilePush/Create/index.js +17 -2
  37. package/containers/MobilePush/Create/sagas.js +18 -12
  38. package/containers/MobilePush/Edit/index.js +20 -3
  39. package/containers/MobilePush/Edit/sagas.js +30 -20
  40. package/containers/Sms/Create/index.js +15 -2
  41. package/containers/Sms/Create/sagas.js +8 -6
  42. package/containers/Sms/Edit/index.js +15 -3
  43. package/containers/Sms/Edit/sagas.js +14 -8
  44. package/containers/TagList/constants.js +23 -0
  45. package/containers/Templates/actions.js +0 -5
  46. package/containers/Templates/index.js +47 -14
  47. package/containers/Templates/sagas.js +20 -23
  48. package/containers/WeChat/MapTemplates/index.js +19 -2
  49. package/containers/WeChat/MapTemplates/sagas.js +17 -17
  50. package/containers/WeChat/RichmediaTemplates/Create/index.js +18 -2
  51. package/containers/WeChat/RichmediaTemplates/Create/sagas.js +11 -8
  52. package/containers/WeChat/RichmediaTemplates/Edit/index.js +21 -2
  53. package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +9 -5
  54. package/entry.js +2 -0
  55. package/global-styles.js +2 -2
  56. package/gtm/eventDefinitionsMap.js +1 -1
  57. package/helpers/intl-enzym-test-helpers.js +1 -1
  58. package/hoc/withReactRouterV3Compatibility.js +66 -0
  59. package/index.js +12 -0
  60. package/initialReducer.js +32 -0
  61. package/initialState.js +1 -0
  62. package/mfe-exposed-components.js +8 -0
  63. package/package.json +16 -11
  64. package/routes.js +206 -749
  65. package/services/api.js +62 -17
  66. package/services/tests/api.test.js +248 -1
  67. package/styles/components/navigation/_leftnav.scss +13 -0
  68. package/styles/containers/layout/_layoutPage.scss +14 -0
  69. package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +21 -16
  70. package/tests/store.test.js +5 -3
  71. package/translations/en.json +1 -9
  72. package/translations/ja-JP.json +0 -8
  73. package/translations/zh.json +0 -8
  74. package/utils/authWrapper.js +43 -17
  75. package/utils/cdnTransformation.js +73 -44
  76. package/utils/checkStore.js +21 -0
  77. package/utils/common.js +198 -8
  78. package/utils/commonUtils.js +17 -1
  79. package/utils/customAuthWrapper.js +62 -0
  80. package/utils/customConnectedAuthWrapper.js +26 -0
  81. package/utils/history.js +8 -0
  82. package/utils/injectReducer.js +2 -0
  83. package/utils/injectSaga.js +2 -0
  84. package/utils/tagValidations.js +2 -2
  85. package/utils/tests/cdnTransformation.test.js +6 -4
  86. package/utils/tests/common.mockdata.js +623 -0
  87. package/utils/tests/common.test.js +273 -0
  88. package/utils/tests/commonUtil.test.js +79 -0
  89. package/v2Components/CapDeviceContent/index.js +330 -0
  90. package/v2Components/CapDeviceContent/index.scss +115 -0
  91. package/v2Components/CapDeviceContent/messages.js +94 -0
  92. package/v2Components/CapDeviceContent/tests/index.test.js +89 -0
  93. package/v2Components/CapImageUpload/constants.js +6 -0
  94. package/v2Components/CapImageUpload/index.js +23 -15
  95. package/v2Components/CapImageUpload/index.scss +6 -0
  96. package/v2Components/CapImageUpload/messages.js +7 -7
  97. package/v2Components/CapInAppCTA/constants.js +25 -0
  98. package/v2Components/CapInAppCTA/index.js +279 -0
  99. package/v2Components/CapInAppCTA/index.scss +99 -0
  100. package/v2Components/CapInAppCTA/messages.js +85 -0
  101. package/v2Components/CapTagList/index.js +149 -26
  102. package/v2Components/CapTagList/messages.js +12 -0
  103. package/v2Components/CapTagList/style.scss +26 -0
  104. package/v2Components/CapVideoUpload/constants.js +6 -0
  105. package/v2Components/CapVideoUpload/index.js +48 -22
  106. package/v2Components/CapVideoUpload/index.scss +4 -2
  107. package/v2Components/CapVideoUpload/messages.js +10 -6
  108. package/v2Components/CapWhatsappQuickReply/index.js +255 -0
  109. package/v2Components/CapWhatsappQuickReply/index.scss +54 -0
  110. package/v2Components/CapWhatsappQuickReply/messages.js +32 -0
  111. package/v2Components/Ckeditor/index.js +56 -22
  112. package/v2Components/Ckeditor/style.scss +3 -0
  113. package/v2Components/Ckeditor/tests/index.test.js +44 -0
  114. package/v2Components/CmsTemplatesComponent/index.js +1 -0
  115. package/v2Components/CmsTemplatesComponent/messages.js +4 -0
  116. package/v2Components/EmailMobilePreview/index.js +4 -2
  117. package/v2Components/EmailPreviewV2/index.js +6 -4
  118. package/v2Components/EmailPreviewV2/tests/__snapshots__/index.test.js.snap +0 -3
  119. package/v2Components/FormBuilder/_formBuilder.scss +1 -0
  120. package/v2Components/FormBuilder/constants.js +1 -1
  121. package/v2Components/FormBuilder/index.js +111 -29
  122. package/v2Components/FormBuilder/messages.js +4 -0
  123. package/v2Components/FormBuilder/tests/index.test.js +5 -2
  124. package/v2Components/MobilePushPreviewV2/index.js +57 -22
  125. package/v2Components/NavigationBar/constants.js +1 -0
  126. package/v2Components/NavigationBar/index.js +84 -113
  127. package/v2Components/NavigationBar/messages.js +8 -0
  128. package/v2Components/NavigationBar/style.js +9 -0
  129. package/v2Components/NavigationBar/tests/index.test.js +32 -9
  130. package/v2Components/NavigationBar/tests/mockData.js +1 -0
  131. package/v2Components/NewCallTask/tests/index.test.js +5 -3
  132. package/v2Components/Pagination/index.js +2 -1
  133. package/v2Components/RenderRoute/RenderRoute.js +11 -0
  134. package/v2Components/RenderRoute/index.js +1 -0
  135. package/v2Components/TemplatePreview/_templatePreview.scss +535 -0
  136. package/v2Components/TemplatePreview/assets/images/inapp_mobile_android_bottom.svg +11 -0
  137. package/v2Components/TemplatePreview/assets/images/inapp_mobile_android_full.svg +11 -0
  138. package/v2Components/TemplatePreview/assets/images/inapp_mobile_android_modal.svg +11 -0
  139. package/v2Components/TemplatePreview/assets/images/inapp_mobile_android_top.svg +11 -0
  140. package/v2Components/TemplatePreview/assets/images/inapp_mobile_ios_bottom.svg +6 -0
  141. package/v2Components/TemplatePreview/assets/images/inapp_mobile_ios_full.svg +18 -0
  142. package/v2Components/TemplatePreview/assets/images/inapp_mobile_ios_modal.svg +7 -0
  143. package/v2Components/TemplatePreview/assets/images/inapp_mobile_ios_top.svg +13 -0
  144. package/v2Components/TemplatePreview/index.js +745 -362
  145. package/v2Components/TemplatePreview/messages.js +8 -0
  146. package/v2Components/TemplatePreview/tests/__snapshots__/index.test.js.snap +47 -14
  147. package/v2Components/TemplatePreview/tests/index.test.js +9 -0
  148. package/v2Components/WhatsappStatusContainer/_whatsappStatusContainer.scss +8 -1
  149. package/v2Containers/App/constants.js +12 -6
  150. package/v2Containers/App/sagas.js +0 -1
  151. package/v2Containers/Assets/Gallery/index.js +1 -0
  152. package/v2Containers/Assets/Gallery/sagas.js +15 -14
  153. package/v2Containers/BeeEditor/index.js +3 -1
  154. package/v2Containers/BeeEditor/sagas.js +8 -5
  155. package/v2Containers/CallTask/sagas.js +7 -1
  156. package/v2Containers/Cap/actions.js +4 -0
  157. package/v2Containers/Cap/constants.js +20 -1
  158. package/v2Containers/Cap/index.js +116 -17
  159. package/v2Containers/Cap/messages.js +8 -0
  160. package/v2Containers/Cap/reducer.js +18 -3
  161. package/v2Containers/Cap/sagas.js +64 -9
  162. package/v2Containers/Cap/selectors.js +27 -13
  163. package/v2Containers/Cap/tests/Cap.test.js +164 -0
  164. package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +2 -1
  165. package/v2Containers/Cap/tests/actions.test.js +11 -0
  166. package/v2Containers/Cap/tests/reducer.test.js +59 -0
  167. package/v2Containers/Cap/tests/saga.test.js +181 -2
  168. package/v2Containers/Cap/tests/selectors.test.js +42 -18
  169. package/v2Containers/CapFacebookPreview/sagas.js +7 -5
  170. package/v2Containers/CreativesContainer/SlideBoxContent.js +86 -4
  171. package/v2Containers/CreativesContainer/SlideBoxFooter.js +4 -3
  172. package/v2Containers/CreativesContainer/SlideBoxHeader.js +30 -14
  173. package/v2Containers/CreativesContainer/constants.js +5 -0
  174. package/v2Containers/CreativesContainer/index.js +157 -38
  175. package/v2Containers/CreativesContainer/index.scss +12 -0
  176. package/v2Containers/CreativesContainer/messages.js +33 -1
  177. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +11 -0
  178. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +5 -2
  179. package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +7 -1
  180. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +227 -0
  181. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +73 -0
  182. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +80 -0
  183. package/v2Containers/CreativesContainer/tests/index.test.js +16 -0
  184. package/v2Containers/Ebill/sagas.js +3 -10
  185. package/v2Containers/Email/index.js +38 -19
  186. package/v2Containers/Email/initialSchema.js +1 -1
  187. package/v2Containers/Email/sagas.js +22 -26
  188. package/v2Containers/EmailWrapper/index.js +18 -8
  189. package/v2Containers/FTP/index.js +2 -2
  190. package/v2Containers/FTP/sagas.js +3 -4
  191. package/v2Containers/Facebook/sagas.js +26 -17
  192. package/v2Containers/InApp/actions.js +64 -0
  193. package/v2Containers/InApp/constants.js +160 -0
  194. package/v2Containers/InApp/index.js +792 -0
  195. package/v2Containers/InApp/index.scss +50 -0
  196. package/v2Containers/InApp/messages.js +114 -0
  197. package/v2Containers/InApp/reducer.js +109 -0
  198. package/v2Containers/InApp/sagas.js +151 -0
  199. package/v2Containers/InApp/selectors.js +12 -0
  200. package/v2Containers/InApp/tests/action.test.js +53 -0
  201. package/v2Containers/InApp/tests/index.test.js +165 -0
  202. package/v2Containers/InApp/tests/mockData.js +898 -0
  203. package/v2Containers/InApp/tests/reducer.test.js +177 -0
  204. package/v2Containers/InApp/tests/sagas.test.js +391 -0
  205. package/v2Containers/InApp/utils.js +12 -0
  206. package/v2Containers/LanguageProvider/index.js +17 -5
  207. package/v2Containers/LanguageProvider/reducer.js +3 -2
  208. package/v2Containers/LanguageProvider/sagas.js +7 -8
  209. package/v2Containers/LanguageProvider/selectors.js +2 -1
  210. package/v2Containers/LanguageProvider/tests/index.test.js +5 -2
  211. package/v2Containers/LanguageProvider/tests/reducer.test.js +6 -3
  212. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +28 -16
  213. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +2 -2
  214. package/v2Containers/Line/Container/ImageCarousel/tests/content.test.js +5 -3
  215. package/v2Containers/Line/Container/ImageCarousel/tests/index.test.js +5 -3
  216. package/v2Containers/Line/Container/ImageMap/index.js +1 -1
  217. package/v2Containers/Line/Container/Text/index.js +16 -1
  218. package/v2Containers/Line/Container/Video/index.js +2 -1
  219. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +18134 -107
  220. package/v2Containers/Line/Container/Wrapper/tests/index.test.js +5 -3
  221. package/v2Containers/Line/Container/Wrapper/utils.js +1 -1
  222. package/v2Containers/Line/Container/index.js +4 -0
  223. package/v2Containers/Line/Container/sagas.js +30 -20
  224. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +123 -81
  225. package/v2Containers/Line/Container/tests/index.test.js +5 -2
  226. package/v2Containers/Login/index.js +1 -2
  227. package/v2Containers/MobilePush/Create/index.js +40 -17
  228. package/v2Containers/MobilePush/Create/sagas.js +18 -12
  229. package/v2Containers/MobilePush/Edit/index.js +16 -7
  230. package/v2Containers/MobilePush/Edit/sagas.js +30 -20
  231. package/v2Containers/MobilepushWrapper/index.js +3 -0
  232. package/v2Containers/Rcs/sagas.js +14 -14
  233. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +123 -87
  234. package/v2Containers/Rcs/tests/index.test.js +5 -3
  235. package/v2Containers/Sms/Create/sagas.js +10 -6
  236. package/v2Containers/Sms/Edit/sagas.js +14 -8
  237. package/v2Containers/SmsTrai/Create/sagas.js +9 -10
  238. package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +4 -4
  239. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +12 -8
  240. package/v2Containers/SmsTrai/Edit/tests/index.test.js +5 -3
  241. package/v2Containers/TagList/_tagList.scss +18 -0
  242. package/v2Containers/TagList/index.js +81 -42
  243. package/v2Containers/TagList/tests/TagList.test.js +6 -7
  244. package/v2Containers/TagList/tests/mockdata.js +10 -166
  245. package/v2Containers/TagList/tests/utils.test.js +17 -0
  246. package/v2Containers/TagList/utils.js +15 -0
  247. package/v2Containers/Templates/_templates.scss +60 -5
  248. package/v2Containers/Templates/actions.js +6 -5
  249. package/v2Containers/Templates/constants.js +2 -1
  250. package/v2Containers/Templates/index.js +576 -181
  251. package/v2Containers/Templates/messages.js +52 -8
  252. package/v2Containers/Templates/reducer.js +3 -1
  253. package/v2Containers/Templates/sagas.js +54 -38
  254. package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +669 -43
  255. package/v2Containers/Templates/tests/actions.test.js +19 -0
  256. package/v2Containers/Templates/tests/index.test.js +53 -1
  257. package/v2Containers/Templates/tests/mockData.js +45 -1
  258. package/v2Containers/Templates/tests/reducer.test.js +50 -0
  259. package/v2Containers/Templates/tests/sagas.test.js +116 -3
  260. package/v2Containers/Templates/tests/selector.test.js +17 -0
  261. package/v2Containers/TemplatesV2/index.js +180 -8
  262. package/v2Containers/TemplatesV2/messages.js +8 -0
  263. package/v2Containers/TemplatesV2/tests/index.test.js +104 -0
  264. package/v2Containers/TemplatesV2/tests/mockData.js +685 -0
  265. package/v2Containers/Viber/constants.js +58 -0
  266. package/v2Containers/Viber/index.js +404 -421
  267. package/v2Containers/Viber/index.scss +107 -0
  268. package/v2Containers/Viber/messages.js +70 -2
  269. package/v2Containers/Viber/sagas.js +22 -14
  270. package/v2Containers/Viber/style.js +20 -0
  271. package/v2Containers/Viber/tests/index.test.js +299 -0
  272. package/v2Containers/Viber/tests/mockData.js +134 -0
  273. package/v2Containers/WeChat/MapTemplates/sagas.js +22 -14
  274. package/v2Containers/WeChat/RichmediaTemplates/Create/sagas.js +12 -11
  275. package/v2Containers/WeChat/RichmediaTemplates/Edit/sagas.js +9 -5
  276. package/v2Containers/Whatsapp/actions.js +16 -0
  277. package/v2Containers/Whatsapp/constants.js +24 -0
  278. package/v2Containers/Whatsapp/index.js +892 -222
  279. package/v2Containers/Whatsapp/index.scss +91 -1
  280. package/v2Containers/Whatsapp/messages.js +98 -1
  281. package/v2Containers/Whatsapp/reducer.js +19 -0
  282. package/v2Containers/Whatsapp/sagas.js +67 -12
  283. package/v2Containers/Whatsapp/styles.scss +35 -0
  284. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +34983 -24886
  285. package/v2Containers/Whatsapp/tests/__snapshots__/utils.test.js.snap +12 -0
  286. package/v2Containers/Whatsapp/tests/actions.test.js +21 -0
  287. package/v2Containers/Whatsapp/tests/index.test.js +17 -4
  288. package/v2Containers/Whatsapp/tests/mockData.js +77 -0
  289. package/v2Containers/Whatsapp/tests/reducer.test.js +67 -0
  290. package/v2Containers/Whatsapp/tests/saga.test.js +201 -0
  291. package/v2Containers/Whatsapp/tests/utils.test.js +18 -0
  292. package/v2Containers/Whatsapp/utils.js +65 -4
  293. package/v2Containers/Zalo/actions.js +24 -0
  294. package/v2Containers/Zalo/constants.js +59 -0
  295. package/v2Containers/Zalo/index.js +548 -0
  296. package/v2Containers/Zalo/index.scss +75 -0
  297. package/v2Containers/Zalo/messages.js +86 -0
  298. package/v2Containers/Zalo/reducer.js +63 -0
  299. package/v2Containers/Zalo/saga.js +45 -0
  300. package/v2Containers/Zalo/selectors.js +19 -0
  301. package/v2Containers/Zalo/tests/actions.test.js +26 -0
  302. package/v2Containers/Zalo/tests/index.test.js +149 -0
  303. package/v2Containers/Zalo/tests/mockData.js +11527 -0
  304. package/v2Containers/Zalo/tests/reducer.test.js +96 -0
  305. package/v2Containers/Zalo/tests/saga.test.js +118 -0
  306. package/v2Containers/Zalo/tests/selector.test.js +51 -0
  307. package/v2Containers/mockdata.js +1531 -680
  308. package/containers/TestPage/constants.js +0 -7
  309. package/containers/TestPage/index.js +0 -31
  310. package/containers/TestPage/messages.js +0 -13
  311. package/containers/TestPage/reducer.js +0 -21
  312. package/containers/TestPage/sagas.js +0 -11
  313. package/containers/Testv2/actions.js +0 -15
  314. package/containers/Testv2/constants.js +0 -7
  315. package/containers/Testv2/index.js +0 -47
  316. package/containers/Testv2/messages.js +0 -21
  317. package/containers/Testv2/reducer.js +0 -23
  318. package/containers/Testv2/sagas.js +0 -11
  319. package/containers/Testv2/selectors.js +0 -25
  320. package/reducers.js +0 -73
  321. package/store.js +0 -61
  322. package/utils/tests/asyncInjectors.test.js +0 -173
  323. package/v2Containers/TestPage/constants.js +0 -7
  324. package/v2Containers/TestPage/index.js +0 -31
  325. package/v2Containers/TestPage/messages.js +0 -13
  326. package/v2Containers/TestPage/reducer.js +0 -21
  327. package/v2Containers/TestPage/sagas.js +0 -11
  328. package/v2Containers/Testv2/actions.js +0 -15
  329. package/v2Containers/Testv2/constants.js +0 -7
  330. package/v2Containers/Testv2/index.js +0 -47
  331. package/v2Containers/Testv2/messages.js +0 -21
  332. package/v2Containers/Testv2/reducer.js +0 -23
  333. package/v2Containers/Testv2/sagas.js +0 -11
  334. package/v2Containers/Testv2/selectors.js +0 -25
@@ -31,7 +31,7 @@ import { GA } from '@capillarytech/cap-ui-utils';
31
31
  import { CREATE, TRACK_CREATE_MPUSH } from '../../App/constants';
32
32
  import { MOBILE_PUSH } from '../../CreativesContainer/constants';
33
33
  import { getContent } from '../commonMethods';
34
- import { getCdnUrl } from '../../../utils/cdnTransformation'
34
+ import { getCdnUrl } from '../../../utils/cdnTransformation';
35
35
 
36
36
  const PrefixWrapper = styled.div`
37
37
  margin-right: 16px;
@@ -101,6 +101,8 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
101
101
  }
102
102
  if (nextProps.Create.createTemplateError && !isEqual(nextProps.Create.createTemplateError, this.props.Create.createTemplateError)) {
103
103
  const message = getMessageObject('error', (nextProps.Create.createTemplateErrorMessage && nextProps.Create.createTemplateErrorMessage !== '') ? nextProps.Create.createTemplateErrorMessage : this.props.intl.formatMessage(messages.somethingWentWrong), true);
104
+ this.props.onValidationFail();
105
+ this.setState({showModal: false, startValidation: false});
104
106
  this.props.globalActions.addMessageToQueue(message);
105
107
  }
106
108
  if (nextProps.iosCtasData && isEmpty(this.state.templateCta)) {
@@ -147,6 +149,8 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
147
149
  onFormDataChange = (formData, tabCount, currentTab, inputField) => {
148
150
  const newFormData = cloneDeep(formData);
149
151
  const {templateCta} = this.state;
152
+ const { defaultData = {}, isFullMode, showTemplateName} = this.props;
153
+
150
154
  if (!isEmpty(templateCta)) {
151
155
  newFormData[this.state.currentTab - 1][`secondary-cta-${this.state.currentTab - 1}-label`] = get(templateCta, 'name');
152
156
  newFormData[this.state.currentTab - 1][`secondary-cta-${this.state.currentTab - 1}-action`] = get(templateCta, 'ctaTemplateDetails[0].buttonText');
@@ -156,6 +160,11 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
156
160
  }
157
161
  }
158
162
 
163
+
164
+ const templateName = formData['template-name'];
165
+ const defaultTemplateName = get(defaultData, 'template-name', '');
166
+
167
+
159
168
  // copy content code
160
169
  // if (newFormData[0]['copy-iphone-content'] === "") {
161
170
  //
@@ -177,17 +186,19 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
177
186
  // newFormData[1]['copy-android-content'] = "";
178
187
  // }
179
188
  // }
180
- if (this.props.isFullMode && this.props.defaultData && isEmpty(formData['template-name'])) {
181
- newFormData['template-name'] = get(this.props, "defaultData['template-name']");
189
+ //assign newFormData['template-name'] to default name only once in inital render, if edited use latest form data
190
+ if (isFullMode && defaultData && isEmpty(templateName) && !formData?.isTemplateNameEdited) {
191
+ newFormData['template-name'] = defaultTemplateName;
182
192
  }
193
+
183
194
  if (inputField && inputField.id === "add-sec-cta") {
184
195
  if (!newFormData[0]["add-sec-cta"]) {
185
196
  newFormData[0]["add-sec-cta-2"] = false;
186
197
  }
187
198
  }
188
199
  this.setState({formData: newFormData, tabCount, isSchemaChanged: !this.state.isSchemaChanged}, () => {
189
- if (this.props.isFullMode) {
190
- this.props.showTemplateName({formData: this.state.formData, onFormDataChange: this.onFormDataChange});
200
+ if (isFullMode && showTemplateName) {
201
+ showTemplateName({formData: this.state.formData, onFormDataChange: this.onFormDataChange});
191
202
  }
192
203
  });
193
204
  };
@@ -202,7 +213,7 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
202
213
  this.setState({currentTab: data});
203
214
  };
204
215
  onTemplateNameChange = () => {
205
- //
216
+ //
206
217
  };
207
218
 
208
219
 
@@ -366,11 +377,23 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
366
377
  };
367
378
  obj.type = 'MOBILEPUSH';
368
379
  obj.name = formData['template-name'];
369
- obj.definition = {
370
- accountId: this.props.Templates.selectedWeChatAccount.id,
371
- licenseCode: this.props.Templates.selectedWeChatAccount.sourceAccountIdentifier,
372
- mode: this.props.params.mode,
373
- };
380
+ if (this.props?.Templates?.selectedWeChatAccount?.sourceTypeName === 'MAPP_SDK') {
381
+ obj.definition = {
382
+ accountId: this.props.Templates.selectedWeChatAccount.id,
383
+ licenseCode: this.props.Templates.selectedWeChatAccount.sourceAccountIdentifier,
384
+ gatewayId: this.props.Templates.selectedWeChatAccount.configs.gatewayId,
385
+ gatewayAccountId: this.props.Templates.selectedWeChatAccount.configs.gatewayAccountId,
386
+ mode: this.props.params.mode,
387
+ sourceType: this.props.Templates.selectedWeChatAccount.sourceTypeName,
388
+ };
389
+ } else {
390
+ obj.definition = {
391
+ accountId: this.props.Templates.selectedWeChatAccount.id,
392
+ licenseCode: this.props.Templates.selectedWeChatAccount.sourceAccountIdentifier,
393
+ mode: this.props.params.mode,
394
+ sourceType: this.props.Templates.selectedWeChatAccount.sourceTypeName,
395
+ };
396
+ }
374
397
  const android = {};
375
398
  Object.keys(formData[0]).forEach((data) => {
376
399
  if (!!formData[0][data] && data !== "tabKey") {
@@ -1436,10 +1459,10 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
1436
1459
  //this function gets called from form bulder only when the form data is valid
1437
1460
  const obj = this.getTransformedData(formData);
1438
1461
  const content = getContent(obj);
1439
- const {
1462
+ const {
1440
1463
  definition: {
1441
- mode: definitionMode
1442
- }
1464
+ mode: definitionMode,
1465
+ },
1443
1466
  } = obj || {};
1444
1467
  const label = this.props.location.pathname.indexOf('image') >= 0 ? 'image' : 'text';
1445
1468
  this.props.actions.createTemplate(obj, (response) => {
@@ -1455,9 +1478,9 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
1455
1478
  timeTaken,
1456
1479
  content,
1457
1480
  mode: CREATE,
1458
- imageAdded: definitionMode === 'image'
1481
+ imageAdded: definitionMode === 'image',
1459
1482
  });
1460
-
1483
+
1461
1484
  this.discardValues();
1462
1485
  const message = this.props.intl.formatMessage(messages.messageCreateSuccess);
1463
1486
  CapNotification.success({message, key: 'createMpushSuccess'});
@@ -1879,4 +1902,4 @@ export default withCreatives({
1879
1902
  mapStateToProps,
1880
1903
  mapDispatchToProps,
1881
1904
  userAuth: false,
1882
- });
1905
+ });
@@ -1,6 +1,4 @@
1
- import { take, cancel, call, put, takeLatest } from 'redux-saga/effects';
2
- import { LOCATION_CHANGE } from 'react-router-redux';
3
- // import { LOCATION_CHANGE } from 'react-router-redux';
1
+ import { take, cancel, call, put, takeLatest, all } from 'redux-saga/effects';
4
2
  // import { schema, normalize } from 'normalizr';
5
3
  import * as Api from '../../../services/api';
6
4
  import * as types from './constants';
@@ -44,19 +42,19 @@ export function* getIosCtas(licenseCode) {
44
42
 
45
43
  function* watchCreateTemplate() {
46
44
 
47
- const watcher = yield takeLatest(types.CREATE_TEMPLATE_REQUEST, createTemplate);
48
- yield take(LOCATION_CHANGE);
49
- yield cancel(watcher);
45
+ yield takeLatest(types.CREATE_TEMPLATE_REQUEST, createTemplate);
46
+
47
+
50
48
  }
51
49
  function* watchUploadAsset() {
52
- const watcher = yield takeLatest(types.UPLOAD_ASSET_REQUEST, uploadAsset);
53
- yield take(LOCATION_CHANGE);
54
- yield cancel(watcher);
50
+ yield takeLatest(types.UPLOAD_ASSET_REQUEST, uploadAsset);
51
+
52
+
55
53
  }
56
54
  function* watchGetIosCtas() {
57
- const watcher = yield takeLatest(types.GET_IOS_CTAS, getIosCtas);
58
- yield take(LOCATION_CHANGE);
59
- yield cancel(watcher);
55
+ yield takeLatest(types.GET_IOS_CTAS, getIosCtas);
56
+
57
+
60
58
  }
61
59
  // All sagas to be loaded
62
60
  export default [
@@ -64,3 +62,11 @@ export default [
64
62
  watchUploadAsset,
65
63
  watchGetIosCtas,
66
64
  ];
65
+
66
+ export function* v2MobilePushCreateSagas() {
67
+ yield all([
68
+ watchCreateTemplate(),
69
+ watchUploadAsset(),
70
+ watchGetIosCtas(),
71
+ ]);
72
+ }
@@ -338,10 +338,21 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
338
338
  };
339
339
  obj.type = 'MOBILEPUSH';
340
340
  obj.name = formData['template-name'];
341
- obj.definition = {
342
- accountId: selectedWeChatAccount?.id,
343
- licenseCode: selectedWeChatAccount.sourceAccountIdentifier,
344
- };
341
+ if(this.props?.Templates?.selectedWeChatAccount?.sourceTypeName === 'MAPP_SDK') {
342
+ obj.definition = {
343
+ accountId: selectedWeChatAccount.id,
344
+ licenseCode: selectedWeChatAccount.sourceAccountIdentifier,
345
+ gatewayId: selectedWeChatAccount.configs.gatewayId,
346
+ gatewayAccountId: selectedWeChatAccount.configs.gatewayAccountId,
347
+ sourceType: selectedWeChatAccount.sourceTypeName,
348
+ };
349
+ } else {
350
+ obj.definition = {
351
+ accountId: selectedWeChatAccount?.id,
352
+ licenseCode: selectedWeChatAccount.sourceAccountIdentifier,
353
+ sourceType: selectedWeChatAccount.sourceTypeName,
354
+ };
355
+ }
345
356
  if (this.props.location.query && this.props.location.query.module !== 'dvs') {
346
357
  obj.definition.mode = get(this, 'props.Edit.templateDetails.mode', '') || get(this, 'props.Edit.templateDetails.definition.mode', '');
347
358
  }
@@ -768,10 +779,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
768
779
  formData[0].base = true;
769
780
  // formData[0].tabKey = '1';
770
781
  // formData[1].tabKey = '2';
771
-
772
782
  this.setState({templateCta}, () => {
773
783
  this.getSchemaForFormData(formData, schema);
774
- this.setState({tabCount, formData, editData: data, currentTab: 1}, () => {
784
+ this.setState({tabCount, formData, editData: data}, () => {
775
785
  this.props.showTemplateName({formData, onFormDataChange: this.onFormDataChange});
776
786
  });
777
787
  });
@@ -1469,7 +1479,6 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
1469
1479
  temp.content.appName = this.props.Templates.selectedWeChatAccount.name;
1470
1480
  }
1471
1481
  _.forEach(col.supportedEvents, (event) => {
1472
- console.log('injected event for ', col, event, this.getMappedEvent(col.id, event));
1473
1482
  temp.injectedEvents[event] = this.getMappedEvent(col.id, event);
1474
1483
  });
1475
1484
  return true;
@@ -1,5 +1,4 @@
1
- import { call, put, takeLatest, take, cancel } from 'redux-saga/effects';
2
- import { LOCATION_CHANGE } from 'react-router-redux';
1
+ import { call, put, takeLatest, take, cancel, all } from 'redux-saga/effects';
3
2
  // import { schema, normalize } from 'normalizr';
4
3
  import * as Api from '../../../services/api';
5
4
  import * as types from './constants';
@@ -79,36 +78,36 @@ export function* fetchWeCrmAccounts(action) {
79
78
  }
80
79
 
81
80
  function* watchFetchWeCrmAccounts() {
82
- const watcher = yield takeLatest(types.GET_WECRM_ACCOUNTS_REQUEST, fetchWeCrmAccounts);
83
- yield take(LOCATION_CHANGE);
84
- yield cancel(watcher);
81
+ yield takeLatest(types.GET_WECRM_ACCOUNTS_REQUEST, fetchWeCrmAccounts);
82
+
83
+
85
84
  }
86
85
 
87
86
  function* watchEditTemplate() {
88
- const watcher = yield takeLatest(types.EDIT_TEMPLATE_REQUEST, editTemplate);
89
- yield take(LOCATION_CHANGE);
90
- yield cancel(watcher);
87
+ yield takeLatest(types.EDIT_TEMPLATE_REQUEST, editTemplate);
88
+
89
+
91
90
  }
92
91
 
93
92
  function* watchGetTemplateDetails() {
94
- const watcher = yield takeLatest(types.GET_TEMPLATE_DETAILS_REQUEST, getTemplateDetails);
95
- yield take(LOCATION_CHANGE);
96
- yield cancel(watcher);
93
+ yield takeLatest(types.GET_TEMPLATE_DETAILS_REQUEST, getTemplateDetails);
94
+
95
+
97
96
  }
98
97
  function* watchUploadAsset() {
99
- const watcher = yield takeLatest(types.UPLOAD_ASSET_REQUEST, uploadAsset);
100
- yield take(LOCATION_CHANGE);
101
- yield cancel(watcher);
98
+ yield takeLatest(types.UPLOAD_ASSET_REQUEST, uploadAsset);
99
+
100
+
102
101
  }
103
102
  function* watchGetIosCtas() {
104
- const watcher = yield takeLatest(types.GET_IOS_CTAS, getIosCtas);
105
- yield take(LOCATION_CHANGE);
106
- yield cancel(watcher);
103
+ yield takeLatest(types.GET_IOS_CTAS, getIosCtas);
104
+
105
+
107
106
  }
108
107
  function* watchMobilepushTemplatesList() {
109
- const watcher = yield takeLatest(types.GET_MOBILEPUSH_TEMPLATES_LIST_REQUEST, getMobilepushTemplatesList);
110
- yield take(LOCATION_CHANGE);
111
- yield cancel(watcher);
108
+ yield takeLatest(types.GET_MOBILEPUSH_TEMPLATES_LIST_REQUEST, getMobilepushTemplatesList);
109
+
110
+
112
111
  }
113
112
 
114
113
  // All sagas to be loaded
@@ -117,3 +116,14 @@ export default [
117
116
  watchUploadAsset,
118
117
  watchGetIosCtas,
119
118
  ];
119
+
120
+ export function* v2MobilePushEditSagas() {
121
+ yield all([
122
+ watchEditTemplate(),
123
+ watchGetTemplateDetails(),
124
+ watchFetchWeCrmAccounts(),
125
+ watchMobilepushTemplatesList(),
126
+ watchUploadAsset(),
127
+ watchGetIosCtas(),
128
+ ]);
129
+ }
@@ -56,6 +56,8 @@ export class MobilepushWrapper extends React.Component { // eslint-disable-line
56
56
  templateName: "",
57
57
  };
58
58
  }
59
+
60
+
59
61
  onChange = (e) => {
60
62
  this.props.onMobilepushModeChange( e.target.value );
61
63
  };
@@ -68,6 +70,7 @@ export class MobilepushWrapper extends React.Component { // eslint-disable-line
68
70
  onRemoveTemplateName();
69
71
  }
70
72
  }
73
+
71
74
  render() {
72
75
  const {mobilePushCreateMode, step, getFormData, setIsLoadingContent, isGetFormData, query, isFullMode, showTemplateName, type, onValidationFail, onPreviewContentClicked, onTestContentClicked, templateData} = this.props;
73
76
  const {templateName} = this.state;
@@ -1,5 +1,4 @@
1
- import { take, cancel, call, put, takeLatest } from 'redux-saga/effects';
2
- import { LOCATION_CHANGE } from 'react-router-redux';
1
+ import { take, cancel, call, put, takeLatest, all } from 'redux-saga/effects';
3
2
  import * as Api from '../../services/api';
4
3
  import {
5
4
  RCS,
@@ -31,9 +30,7 @@ export function* uploadRcsAsset(file, assetType, fileParams) {
31
30
  }
32
31
  }
33
32
  function* watchUploadRcsAsset() {
34
- const watcher = yield takeLatest(UPLOAD_RCS_ASSET_REQUEST, uploadRcsAsset);
35
- yield take(LOCATION_CHANGE);
36
- yield cancel(watcher);
33
+ yield takeLatest(UPLOAD_RCS_ASSET_REQUEST, uploadRcsAsset);
37
34
  }
38
35
 
39
36
  export function* createRCSTemplate({ template, callback }) {
@@ -64,12 +61,10 @@ export function* createRCSTemplate({ template, callback }) {
64
61
  }
65
62
  }
66
63
  function* watchCreateTemplate() {
67
- const watcher = yield takeLatest(
64
+ yield takeLatest(
68
65
  CREATE_RCS_TEMPLATE_REQUEST,
69
66
  createRCSTemplate,
70
67
  );
71
- yield take(LOCATION_CHANGE);
72
- yield cancel(watcher);
73
68
  }
74
69
 
75
70
  // FOR EDIT
@@ -101,9 +96,7 @@ export function* editTemplate({ template, callback }) {
101
96
  }
102
97
  }
103
98
  function* watchEditTemplate() {
104
- const watcher = yield takeLatest(EDIT_RCS_TEMPLATE_REQUEST, editTemplate);
105
- yield take(LOCATION_CHANGE);
106
- yield cancel(watcher);
99
+ yield takeLatest(EDIT_RCS_TEMPLATE_REQUEST, editTemplate);
107
100
  }
108
101
 
109
102
  export function* getTemplateDetails({ id, callback }) {
@@ -124,12 +117,10 @@ export function* getTemplateDetails({ id, callback }) {
124
117
  }
125
118
  }
126
119
  function* watchGetTemplateDetails() {
127
- const watcher = yield takeLatest(
120
+ yield takeLatest(
128
121
  GET_RCS_TEMPLATE_DETAILS_REQUEST,
129
122
  getTemplateDetails,
130
123
  );
131
- yield take(LOCATION_CHANGE);
132
- yield cancel(watcher);
133
124
  }
134
125
 
135
126
  // All sagas to be loaded
@@ -139,3 +130,12 @@ export default [
139
130
  watchGetTemplateDetails,
140
131
  watchEditTemplate,
141
132
  ];
133
+
134
+ export function* v2RcsSagas() {
135
+ yield all([
136
+ watchUploadRcsAsset(),
137
+ watchCreateTemplate(),
138
+ watchGetTemplateDetails(),
139
+ watchEditTemplate(),
140
+ ]);
141
+ }