@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
@@ -72,6 +72,24 @@
72
72
  color: $FONT_COLOR_04;
73
73
  }
74
74
 
75
+ .whatsapp-footer-edit-container {
76
+ background-color: $CAP_G10;
77
+ margin: $CAP_SPACE_08 0;
78
+ padding: $CAP_SPACE_12;
79
+ .whatsapp-footer-edit-text {
80
+ overflow: hidden;
81
+ text-overflow: ellipsis;
82
+ color: $FONT_COLOR_04;
83
+ }
84
+ }
85
+
86
+ .whatsapp-create-mode-heading {
87
+ margin-top: $CAP_SPACE_16;
88
+ margin-bottom: $CAP_SPACE_06;
89
+ display: flex;
90
+ text-align: center;
91
+ }
92
+
75
93
  .whatsapp-edit-disabled {
76
94
  cursor: not-allowed;
77
95
  opacity: 0.5;
@@ -111,6 +129,8 @@
111
129
 
112
130
  .whatsapp-button-quick-reply {
113
131
  display: inline-grid;
132
+ margin-top: $CAP_SPACE_24;
133
+ margin-bottom: 0.75rem;
114
134
  }
115
135
 
116
136
  .whatsapp-optional-label {
@@ -148,5 +168,75 @@
148
168
  left: 525px;
149
169
  color: $FONT_COLOR_05;
150
170
  }
151
- }
171
+ }
172
+
173
+ .whatsapp-optional-label1 {
174
+ margin-left: $CAP_SPACE_04;
175
+ color: $FONT_COLOR_03;
176
+ font-weight: normal;
177
+ font-size: $CAP_SPACE_12;
178
+ }
179
+
180
+ .whatsapp-create-template-header-input {
181
+ margin-bottom: $CAP_SPACE_20;
182
+ }
183
+
184
+ .whatsapp-template-header-preview {
185
+ color: $CAP_G01;
186
+ font-weight: $FONT_WEIGHT_MEDIUM;
187
+ font-size: $FONT_SIZE_VS;
188
+ margin-bottom: $CAP_SPACE_08;
189
+ }
190
+
191
+ .whatsapp-template-footer-preview {
192
+ color: $CAP_G04;
193
+ font-weight: $FONT_WEIGHT_REGULAR;
194
+ font-size: 0.5rem;
195
+ margin-top: $CAP_SPACE_08;
196
+ }
197
+
198
+ .whatsapp-text-field_spacing {
199
+ margin-left: $CAP_SPACE_04;
200
+ }
201
+
202
+ .whatsapp-render-url-preview-text {
203
+ color: $CAP_G01;
204
+ font-size: $FONT_SIZE_M;
205
+ font-weight: $FONT_WEIGHT_MEDIUM;
206
+ }
207
+ .whatsapp-extra-security-footer {
208
+ margin-bottom: 1rem;
209
+ display: flex;
210
+ justify-content: flex-start;
211
+ flex-direction: column;
212
+ padding-left: $CAP_SPACE_16;
213
+ gap: $CAP_SPACE_08;
214
+
215
+ .whatsapp-extra-security-footer-note {
216
+ font-size: small;
217
+ margin-top: $CAP_SPACE_04;
218
+ display: inline-flex;
219
+ padding-left: $CAP_SPACE_12;
220
+ border-radius: $CAP_SPACE_04 0px 0px 0px;
221
+ background: #D4E1FC;
222
+ align-items: center;
223
+ justify-content: space-between;
224
+
225
+ .add-btn {
226
+ display: flex;
227
+ background-color: inherit;
228
+ align-items: center;
229
+ }
230
+ }
231
+
232
+ .whatsapp-extra-security-footer-input {
233
+ display: inline-flex;
234
+ align-items: center;
235
+ gap: $CAP_SPACE_04;
236
+ }
237
+ }
238
+
239
+ }
240
+ .whatsapp-tooltip-header{
241
+ color: $CAP_G10;
152
242
  }
@@ -15,6 +15,10 @@ export default defineMessages({
15
15
  defaultMessage:
16
16
  'Template name can only contain lowercase alphanumeric characters and underscores',
17
17
  },
18
+ templateNameMinCharacters: {
19
+ id: `${prefix}.templateNameMinCharacters`,
20
+ defaultMessage: 'Template name should contain atleast 3 characters',
21
+ },
18
22
  templateCategoryLabel: {
19
23
  id: `${prefix}.templateCategoryLabel`,
20
24
  defaultMessage: 'Template category',
@@ -180,6 +184,11 @@ export default defineMessages({
180
184
  defaultMessage:
181
185
  'Variable name should be numeric value from {one} to {nineteen}',
182
186
  },
187
+ headerUnknownVars: {
188
+ id: `${prefix}.headerUnknownVars`,
189
+ defaultMessage:
190
+ 'Variable name should be numeric value and its always {{1}}',
191
+ },
183
192
  removeMultinewlineChars: {
184
193
  id: `${prefix}.removeMultinewlineChars`,
185
194
  defaultMessage:
@@ -189,6 +198,10 @@ export default defineMessages({
189
198
  id: `${prefix}.noContentBetweenVars`,
190
199
  defaultMessage: 'Add atleast 1 character between 2 variables',
191
200
  },
201
+ noPercentSign: {
202
+ id: `${prefix}.noPercentSign`,
203
+ defaultMessage: 'Please remove % sign from the message content',
204
+ },
192
205
  sequenceVars: {
193
206
  id: `${prefix}.sequenceVars`,
194
207
  defaultMessage:
@@ -292,7 +305,7 @@ export default defineMessages({
292
305
  },
293
306
  btnDesc: {
294
307
  id: `${prefix}.btnDesc`,
295
- defaultMessage: 'These will be show clickable buttons below your message.',
308
+ defaultMessage: 'These will be clickable buttons below your message.',
296
309
  },
297
310
  btnTypeNone: {
298
311
  id: `${prefix}.btnTypeNone`,
@@ -619,4 +632,88 @@ export default defineMessages({
619
632
  id: `${prefix}.zulu`,
620
633
  defaultMessage: 'Zulu',
621
634
  },
635
+ templateHeaderLabel: {
636
+ id: `${prefix}.templateHeaderLabel`,
637
+ defaultMessage: 'Header',
638
+ },
639
+ templateFooterLabel: {
640
+ id: `${prefix}.templateFooterLabel`,
641
+ defaultMessage: 'Footer',
642
+ },
643
+ templateHeaderTooltip: {
644
+ id: `${prefix}.templateHeaderTooltip`,
645
+ defaultMessage: 'Header can usually include information such as the business name or a brief identifier to let the recipient know the source of the message',
646
+ },
647
+ templateFooterTooltip: {
648
+ id: `${prefix}.templateFooterTooltip`,
649
+ defaultMessage: 'Footer is optional text-only component that appears immediately after the body component',
650
+ },
651
+ templateHeaderLengthError: {
652
+ id: `${prefix}.templateHeaderLengthError`,
653
+ defaultMessage: 'Template header length cannot exceed 60',
654
+ },
655
+ templateFooterLengthError: {
656
+ id: `${prefix}.templateHeaderLengthError`,
657
+ defaultMessage: 'Template footer length cannot exceed 60',
658
+ },
659
+ quickReplyButtons: {
660
+ id: `${prefix}.quickReplyButtons`,
661
+ defaultMessage: 'Quick reply buttons',
662
+ },
663
+ showUrlPreview: {
664
+ id: `${prefix}.showUrlPreview`,
665
+ defaultMessage: 'Show URL preview',
666
+ },
667
+ templateSecurityDisclaimer: {
668
+ id: `${prefix}.templateSecurityDisclaimer`,
669
+ defaultMessage: 'Add security disclaimer to your message',
670
+ },
671
+ expirationWarning: {
672
+ id: `${prefix}.expirationWarning`,
673
+ defaultMessage: 'Add expiry warning for code',
674
+ },
675
+ checkExpiryCode: {
676
+ id: `${prefix}.checkExpiryCode`,
677
+ defaultMessage: 'OTP settings',
678
+ },
679
+ expiryCodeNote:{
680
+ id: `${prefix}.expiryCodeNote`,
681
+ defaultMessage: 'We suggest using the same expiry time as specified in the OTP settings.',
682
+ },
683
+ codeExpiresIn:{
684
+ id: `${prefix}.codeExpiresIn`,
685
+ defaultMessage: 'This code expires in',
686
+ },
687
+ minutes:{
688
+ id: `${prefix}.minutes`,
689
+ defaultMessage: 'minutes',
690
+ },
691
+ codeExpiryNumMinutes:{
692
+ id: `${prefix}.codeExpiryNumMinutes`,
693
+ defaultMessage: 'This code expires in <num_minutes> minutes.',
694
+ },
695
+ authenticationMsg:{
696
+ id: `${prefix}.authenticationMsg`,
697
+ defaultMessage: "{{verification_code}} is your verification code.",
698
+ },
699
+ securitySuffix:{
700
+ id: `${prefix}.securitySuffix`,
701
+ defaultMessage: 'For your security, do not share this code.',
702
+ },
703
+ numMinutes:{
704
+ id: `${prefix}.numMinutes`,
705
+ defaultMessage: '<num_minutes>',
706
+ },
707
+ enterExpiryTime:{
708
+ id: `${prefix}.enterExpiryTime`,
709
+ defaultMessage: "Enter expiry time"
710
+ },
711
+ checkExpiryTooltipHeader: {
712
+ id: `${prefix}.checkExpiryTooltipHeader`,
713
+ defaultMessage: 'Open OTP settings in new tab',
714
+ },
715
+ checkExpiryTooltipDesc: {
716
+ id: `${prefix}.checkExpiryTooltipDesc`,
717
+ defaultMessage: 'To check the configured expiry time that is same for all OTPs',
718
+ },
622
719
  });
@@ -12,11 +12,18 @@ import {
12
12
  UPLOAD_WHATSAPP_ASSET_SUCCESS,
13
13
  UPLOAD_WHATSAPP_ASSET_FAILURE,
14
14
  CLEAR_WHATSAPP_ASSET,
15
+ URL_META_TAGS_REQUEST,
16
+ URL_META_TAGS_SUCCESS,
17
+ URL_META_TAGS_FAILURE,
18
+ URL_META_TAGS_RESET,
15
19
  } from './constants';
16
20
 
17
21
  const initialState = fromJS({
18
22
  uploadedAssetData: {},
19
23
  createTemplateInProgress: false,
24
+ getMetaTagsRequest: false,
25
+ metaTagsDetails: {},
26
+ getMetaTagsError: '',
20
27
  });
21
28
 
22
29
  function whatsappReducer(state = initialState, action) {
@@ -51,6 +58,18 @@ function whatsappReducer(state = initialState, action) {
51
58
  .set('templateDetails', action.data);
52
59
  case GET_TEMPLATE_DETAILS_FAILURE:
53
60
  return state.set('getTemplateDetailsInProgress', false);
61
+ case URL_META_TAGS_REQUEST:
62
+ return state.set('getMetaTagsRequest', true)
63
+ .set('metaTagsDetails', {});
64
+ case URL_META_TAGS_SUCCESS:
65
+ return state.set('getMetaTagsRequest', false)
66
+ .set('metaTagsDetails', action?.data);
67
+ case URL_META_TAGS_FAILURE:
68
+ return state.set('getMetaTagsRequest', false)
69
+ .set('getMetaTagsError', action?.error)
70
+ .set('metaTagsDetails', {});
71
+ case URL_META_TAGS_RESET:
72
+ return state.set('metaTagsDetails', {});
54
73
  case RESET_EDIT_TEMPLATE:
55
74
  return state.set('templateDetails', {});
56
75
  case UPLOAD_WHATSAPP_ASSET_REQUEST:
@@ -1,5 +1,6 @@
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';
2
+ import isEmpty from 'lodash/isEmpty';
3
+ import get from 'lodash/get';
3
4
  import * as Api from '../../services/api';
4
5
  import {
5
6
  TEMPLATE_CREATE_REQUEST,
@@ -12,6 +13,9 @@ import {
12
13
  UPLOAD_WHATSAPP_ASSET_REQUEST,
13
14
  UPLOAD_WHATSAPP_ASSET_SUCCESS,
14
15
  UPLOAD_WHATSAPP_ASSET_FAILURE,
16
+ URL_META_TAGS_REQUEST,
17
+ URL_META_TAGS_SUCCESS,
18
+ URL_META_TAGS_FAILURE,
15
19
  } from './constants';
16
20
 
17
21
  export function* uploadWhatsappAsset(params) {
@@ -28,12 +32,10 @@ export function* uploadWhatsappAsset(params) {
28
32
  }
29
33
  }
30
34
  function* watchUploadWhatsappAsset() {
31
- const watcher = yield takeLatest(
35
+ yield takeLatest(
32
36
  UPLOAD_WHATSAPP_ASSET_REQUEST,
33
37
  uploadWhatsappAsset,
34
38
  );
35
- yield take(LOCATION_CHANGE);
36
- yield cancel(watcher);
37
39
  }
38
40
 
39
41
  export function* sendForApprovalCreate({ payload, callback, gupshupMediaFile }) {
@@ -41,7 +43,19 @@ export function* sendForApprovalCreate({ payload, callback, gupshupMediaFile })
41
43
  try {
42
44
  const result = yield call(Api.createWhatsappTemplate, { payload, gupshupMediaFile });
43
45
  if (result?.status?.code && result.status.code >= 400) {
44
- errorMsg = result?.message || result.status.code;
46
+ const { message, status } = result || {};
47
+ const errorMessageObj = get(message?.error, 'errorMessage', {});
48
+ if (!isEmpty(errorMessageObj)) {
49
+ try {
50
+ // If the errorMessageObj is plain JS and JSON.parse fails, catch block will assign the error msg
51
+ const parsedErrorMsgObj = JSON.parse(errorMessageObj);
52
+ errorMsg = parsedErrorMsgObj?.error?.message;
53
+ } catch (error) {
54
+ errorMsg = message;
55
+ }
56
+ } else {
57
+ errorMsg = message || status.code;
58
+ }
45
59
  throw errorMsg;
46
60
  }
47
61
  yield put({
@@ -66,12 +80,10 @@ export function* sendForApprovalCreate({ payload, callback, gupshupMediaFile })
66
80
  }
67
81
 
68
82
  function* watchCreateTemplate() {
69
- const watcher = yield takeLatest(
83
+ yield takeLatest(
70
84
  TEMPLATE_CREATE_REQUEST,
71
85
  sendForApprovalCreate,
72
86
  );
73
- yield take(LOCATION_CHANGE);
74
- yield cancel(watcher);
75
87
  }
76
88
 
77
89
  // FOR EDIT
@@ -90,17 +102,60 @@ export function* getTemplateDetails({ id }) {
90
102
  }
91
103
  }
92
104
 
105
+ //For getMetaTags
106
+ export function* getMetaTagsDetails({ previewUrl, callBack }) {
107
+ try {
108
+ const result = yield call(Api.getMetaTags, {
109
+ previewUrl,
110
+ });
111
+ if (result?.success) {
112
+ yield put({
113
+ type: URL_META_TAGS_SUCCESS,
114
+ data: result?.response,
115
+ });
116
+ } else {
117
+ if (callBack) {
118
+ callBack({errorMessage: result?.message});
119
+ }
120
+ yield put({
121
+ type: URL_META_TAGS_FAILURE,
122
+ error: result?.message,
123
+ });
124
+ }
125
+ } catch (error) {
126
+ if (callBack) {
127
+ callBack({errorMessage: error});
128
+ }
129
+ yield put({ type: URL_META_TAGS_FAILURE, error });
130
+ }
131
+ }
132
+
93
133
  function* watchGetTemplateDetails() {
94
- const watcher = yield takeLatest(
134
+ yield takeLatest(
95
135
  GET_TEMPLATE_DETAILS_REQUEST,
96
136
  getTemplateDetails,
97
137
  );
98
- yield take(LOCATION_CHANGE);
99
- yield cancel(watcher);
138
+ }
139
+
140
+ export function* watchGetMetaTagsDetails() {
141
+ yield takeLatest(
142
+ URL_META_TAGS_REQUEST,
143
+ getMetaTagsDetails,
144
+ );
100
145
  }
101
146
 
102
147
  export default [
103
148
  watchCreateTemplate,
104
149
  watchGetTemplateDetails,
105
150
  watchUploadWhatsappAsset,
151
+ watchGetMetaTagsDetails,
106
152
  ];
153
+
154
+ export function* v2WhatsappSagas() {
155
+ yield all([
156
+ watchCreateTemplate(),
157
+ watchGetTemplateDetails(),
158
+ watchUploadWhatsappAsset(),
159
+ watchGetMetaTagsDetails(),
160
+ ]);
161
+ }
@@ -39,4 +39,39 @@
39
39
  }
40
40
  }
41
41
  }
42
+ }
43
+
44
+ .whatsapp-template-list-header-preview {
45
+ color: $CAP_G01;
46
+ font-weight: $FONT_WEIGHT_MEDIUM;
47
+ font-size: $FONT_SIZE_M;
48
+ margin-bottom: $CAP_SPACE_08;
49
+ }
50
+
51
+ .whatsapp-template-list-footer-preview {
52
+ color: $CAP_G04;
53
+ font-weight: $FONT_WEIGHT_REGULAR;
54
+ font-size: $FONT_SIZE_VS;
55
+ margin-top: $CAP_SPACE_08;
56
+ margin-bottom: $CAP_SPACE_08;
57
+ }
58
+
59
+ .whatsapp-list-quick-reply-preview {
60
+ margin: $CAP_SPACE_12 0;
61
+ display: flex;
62
+ justify-content: center;
63
+ font-size: $FONT_SIZE_M;
64
+ align-items: center;
65
+ svg {
66
+ margin-right: $CAP_SPACE_04;
67
+ }
68
+ }
69
+
70
+ .whatsapp-list-view-divider {
71
+ margin: 0;
72
+ }
73
+
74
+ .whatsapp-autofill-btn {
75
+ text-align: center;
76
+ margin-top: $CAP_SPACE_12;
42
77
  }