@capillarytech/creatives-library 8.0.125-alpha.6 → 8.0.126

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 (105) hide show
  1. package/config/app.js +6 -0
  2. package/containers/App/constants.js +0 -1
  3. package/containers/Email/index.js +5 -5
  4. package/containers/WeChat/RichmediaTemplates/Create/index.js +1 -1
  5. package/initialReducer.js +2 -0
  6. package/package.json +1 -1
  7. package/services/api.js +94 -1
  8. package/services/tests/api.test.js +191 -0
  9. package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +3 -8
  10. package/tests/integration/TemplateCreation/api-response.js +0 -5
  11. package/tests/integration/TemplateCreation/msw-handler.js +63 -42
  12. package/utils/common.js +0 -7
  13. package/utils/commonUtils.js +6 -2
  14. package/v2Components/CapImageUpload/index.js +45 -51
  15. package/v2Components/CapInAppCTA/index.js +0 -1
  16. package/v2Components/CapTagList/index.js +120 -177
  17. package/v2Components/CapVideoUpload/constants.js +0 -3
  18. package/v2Components/CapVideoUpload/index.js +110 -167
  19. package/v2Components/CapVideoUpload/messages.js +0 -16
  20. package/v2Components/Carousel/index.js +13 -15
  21. package/v2Components/CustomerSearchSection/_customerSearch.scss +309 -0
  22. package/v2Components/CustomerSearchSection/constants.js +5 -0
  23. package/v2Components/CustomerSearchSection/index.js +362 -0
  24. package/v2Components/CustomerSearchSection/messages.js +20 -0
  25. package/v2Components/CustomerSearchSection/tests/utils.test.js +334 -0
  26. package/v2Components/CustomerSearchSection/utils.js +49 -0
  27. package/v2Components/ErrorInfoNote/style.scss +0 -1
  28. package/v2Components/MobilePushPreviewV2/index.js +5 -37
  29. package/v2Components/TemplatePreview/_templatePreview.scss +72 -114
  30. package/v2Components/TemplatePreview/index.js +50 -178
  31. package/v2Components/TemplatePreview/messages.js +0 -4
  32. package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +543 -0
  33. package/v2Components/TestAndPreviewSlidebox/actions.js +67 -0
  34. package/v2Components/TestAndPreviewSlidebox/constants.js +67 -0
  35. package/v2Components/TestAndPreviewSlidebox/index.js +771 -0
  36. package/v2Components/TestAndPreviewSlidebox/messages.js +147 -0
  37. package/v2Components/TestAndPreviewSlidebox/reducer.js +233 -0
  38. package/v2Components/TestAndPreviewSlidebox/sagas.js +258 -0
  39. package/v2Components/TestAndPreviewSlidebox/selectors.js +142 -0
  40. package/v2Components/TestAndPreviewSlidebox/tests/actions.test.js +80 -0
  41. package/v2Components/TestAndPreviewSlidebox/tests/reducer.test.js +367 -0
  42. package/v2Components/TestAndPreviewSlidebox/tests/saga.rtl.test.js +192 -0
  43. package/v2Components/TestAndPreviewSlidebox/tests/saga.test.js +652 -0
  44. package/v2Components/TestAndPreviewSlidebox/tests/selector.test.js +182 -0
  45. package/v2Containers/CreativesContainer/SlideBoxContent.js +21 -9
  46. package/v2Containers/CreativesContainer/SlideBoxFooter.js +23 -2
  47. package/v2Containers/CreativesContainer/index.js +160 -195
  48. package/v2Containers/CreativesContainer/messages.js +4 -0
  49. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +21 -0
  50. package/v2Containers/Email/index.js +18 -6
  51. package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +10 -0
  52. package/v2Containers/EmailWrapper/index.js +6 -0
  53. package/v2Containers/InApp/constants.js +0 -1
  54. package/v2Containers/InApp/index.js +13 -13
  55. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +3 -0
  56. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +2 -0
  57. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +2 -0
  58. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +9 -0
  59. package/v2Containers/MobilePush/Create/index.js +0 -1
  60. package/v2Containers/MobilePush/commonMethods.js +14 -7
  61. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +23 -5
  62. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +4 -0
  63. package/v2Containers/TagList/index.js +10 -56
  64. package/v2Containers/Templates/_templates.scss +1 -101
  65. package/v2Containers/Templates/index.js +35 -147
  66. package/v2Containers/Templates/messages.js +0 -8
  67. package/v2Containers/Templates/sagas.js +0 -2
  68. package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +1 -1
  69. package/v2Containers/Whatsapp/constants.js +0 -1
  70. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +35 -0
  71. package/utils/createPayload.js +0 -270
  72. package/utils/tests/createPayload.test.js +0 -761
  73. package/v2Components/CapMpushCTA/constants.js +0 -25
  74. package/v2Components/CapMpushCTA/index.js +0 -332
  75. package/v2Components/CapMpushCTA/index.scss +0 -95
  76. package/v2Components/CapMpushCTA/messages.js +0 -89
  77. package/v2Components/TemplatePreview/assets/images/Android _ With date and time.svg +0 -29
  78. package/v2Components/TemplatePreview/assets/images/android.svg +0 -9
  79. package/v2Components/TemplatePreview/assets/images/iOS _ With date and time.svg +0 -26
  80. package/v2Components/TemplatePreview/assets/images/ios.svg +0 -9
  81. package/v2Containers/Email/tests/index.test.js +0 -35
  82. package/v2Containers/MobilePushNew/actions.js +0 -116
  83. package/v2Containers/MobilePushNew/components/CtaButtons.js +0 -170
  84. package/v2Containers/MobilePushNew/components/MediaUploaders.js +0 -686
  85. package/v2Containers/MobilePushNew/components/PlatformContentFields.js +0 -279
  86. package/v2Containers/MobilePushNew/components/index.js +0 -5
  87. package/v2Containers/MobilePushNew/components/tests/CtaButtons.test.js +0 -779
  88. package/v2Containers/MobilePushNew/components/tests/MediaUploaders.test.js +0 -2114
  89. package/v2Containers/MobilePushNew/components/tests/PlatformContentFields.test.js +0 -343
  90. package/v2Containers/MobilePushNew/constants.js +0 -115
  91. package/v2Containers/MobilePushNew/hooks/tests/usePlatformSync.test.js +0 -1299
  92. package/v2Containers/MobilePushNew/hooks/tests/useUpload.test.js +0 -1223
  93. package/v2Containers/MobilePushNew/hooks/usePlatformSync.js +0 -246
  94. package/v2Containers/MobilePushNew/hooks/useUpload.js +0 -709
  95. package/v2Containers/MobilePushNew/index.js +0 -2170
  96. package/v2Containers/MobilePushNew/index.scss +0 -308
  97. package/v2Containers/MobilePushNew/messages.js +0 -226
  98. package/v2Containers/MobilePushNew/reducer.js +0 -160
  99. package/v2Containers/MobilePushNew/sagas.js +0 -198
  100. package/v2Containers/MobilePushNew/selectors.js +0 -55
  101. package/v2Containers/MobilePushNew/tests/reducer.test.js +0 -741
  102. package/v2Containers/MobilePushNew/tests/sagas.test.js +0 -863
  103. package/v2Containers/MobilePushNew/tests/selectors.test.js +0 -425
  104. package/v2Containers/MobilePushNew/tests/utils.test.js +0 -322
  105. package/v2Containers/MobilePushNew/utils.js +0 -33
@@ -1,198 +0,0 @@
1
- import {
2
- call, put, takeLatest, all,
3
- } from "redux-saga/effects";
4
- // import { schema, normalize } from 'normalizr';
5
- import * as Api from "../../services/api";
6
- import * as types from "./constants";
7
-
8
- // Individual exports for testing
9
- export function* createTemplate({template, callback}) {
10
- let errorMsg;
11
- try {
12
- const result = yield call(Api.createMobilePushTemplate, template);
13
- if (result.message) {
14
- errorMsg = result.message;
15
- if (result.status && result.status.code >= 400) {
16
- throw errorMsg;
17
- }
18
- }
19
- if (callback) {
20
- yield call(callback, result.response);
21
- }
22
- yield put({
23
- type: types.CREATE_TEMPLATE_SUCCESS,
24
- data: result.response,
25
- statusCode: result.status ? result.status.code : "",
26
- errorMsg,
27
- });
28
- } catch (error) {
29
- yield put({ type: types.CREATE_TEMPLATE_FAILURE, error, errorMsg });
30
- }
31
- }
32
- export function* uploadAsset(action) {
33
- try {
34
- const {
35
- file, assetType, fileParams, index, mobilePushParams = {},
36
- } = action;
37
- const uploadParams = {
38
- file,
39
- assetType,
40
- fileParams,
41
- ...mobilePushParams,
42
- };
43
- const result = yield call(Api.uploadFile, uploadParams);
44
-
45
- yield put({
46
- type: types.UPLOAD_ASSET_SUCCESS,
47
- data: result.response.asset,
48
- statusCode: result.status ? result.status.code : "",
49
- index,
50
- });
51
- } catch (error) {
52
- yield put({ type: types.UPLOAD_ASSET_FAILURE, error });
53
- }
54
- }
55
-
56
- export function* watchCreateTemplate() {
57
- yield takeLatest(types.CREATE_TEMPLATE_REQUEST, createTemplate);
58
- }
59
- export function* watchUploadAsset() {
60
- yield takeLatest(types.UPLOAD_ASSET_REQUEST, uploadAsset);
61
- }
62
- export function* watchGetIosCtas() {
63
- yield takeLatest(types.GET_IOS_CTAS, getIosCtas);
64
- }
65
-
66
- // Individual exports for testing
67
- export function* editTemplate({ template, callback }) {
68
- let errorMsg;
69
- try {
70
- // Use the same API endpoint as create - backend determines create vs edit based on _id presence
71
- const result = yield call(Api.createMobilePushTemplate, template);
72
- // Check for error status codes (400+)
73
- if (result.status.code >= 400) {
74
- errorMsg = result.message || `HTTP Error ${result.status.code}`;
75
- throw errorMsg;
76
- }
77
-
78
- // For edit operations, we need to structure the response similar to create
79
- // The Templates container expects a templateId field
80
- const editResponseData = {
81
- ...result.response,
82
- templateId: result?.response?.templateId?._id || result?.response?._id || template._id,
83
- };
84
-
85
- yield put({
86
- type: types.EDIT_TEMPLATE_SUCCESS,
87
- data: editResponseData,
88
- statusCode: result.status ? result.status.code : "",
89
- errorMsg,
90
- });
91
-
92
- // Call callback with proper response structure
93
- if (callback) {
94
- yield call(callback, editResponseData);
95
- }
96
- } catch (error) {
97
- yield put({ type: types.EDIT_TEMPLATE_FAILURE, error, errorMsg });
98
- }
99
- }
100
-
101
- export function* getTemplateDetails(id) {
102
- try {
103
- const result = yield call(Api.getTemplateDetails, id);
104
- // const sidebar = result.response.sidebar;
105
- yield put({
106
- type: types.GET_TEMPLATE_DETAILS_SUCCESS,
107
- data: result.response,
108
- });
109
- } catch (error) {
110
- yield put({ type: types.GET_TEMPLATE_DETAILS_FAILURE, error });
111
- }
112
- }
113
-
114
- export function* getIosCtas(licenseCode) {
115
- try {
116
- const result = yield call(Api.getIosCtas, licenseCode);
117
- yield put({
118
- type: types.GET_IOS_CTAS_SUCCESS,
119
- data: result.response.metaEntities.data,
120
- statusCode: result.status ? result.status.code : "",
121
- });
122
- } catch (error) {
123
- yield put({ type: types.GET_IOS_CTAS_FAILURE, error });
124
- }
125
- }
126
-
127
- export function* getMobilepushTemplatesList(params) {
128
- try {
129
- const result = yield call(Api.getAllTemplates, {
130
- channel: params.channel,
131
- queryParams: params.queryParams,
132
- });
133
- yield put({
134
- type: types.GET_MOBILEPUSH_TEMPLATES_LIST_SUCCESS,
135
- data: result.response.templates,
136
- templateData: result.response.mapped,
137
- });
138
- } catch (error) {
139
- yield put({ type: types.GET_MOBILEPUSH_TEMPLATES_LIST_FAILURE, error });
140
- }
141
- }
142
-
143
- export function* fetchWeCrmAccounts(action) {
144
- try {
145
- const result = yield call(Api.fetchWeCrmAccounts, action.source);
146
- yield put({
147
- type: types.GET_WECRM_ACCOUNTS_SUCCESS,
148
- data: result.response,
149
- });
150
- } catch (error) {
151
- yield put({
152
- type: types.GET_WECRM_ACCOUNTS_FAILURE,
153
- data: error,
154
- });
155
- }
156
- }
157
-
158
- export function* watchFetchWeCrmAccounts() {
159
- yield takeLatest(types.GET_WECRM_ACCOUNTS_REQUEST, fetchWeCrmAccounts);
160
- }
161
-
162
- export function* watchEditTemplate() {
163
- yield takeLatest(types.EDIT_TEMPLATE_REQUEST, editTemplate);
164
- }
165
-
166
- export function* watchGetTemplateDetails() {
167
- yield takeLatest(types.GET_TEMPLATE_DETAILS_REQUEST, getTemplateDetails);
168
- }
169
-
170
- export function* watchMobilepushTemplatesList() {
171
- yield takeLatest(
172
- types.GET_MOBILEPUSH_TEMPLATES_LIST_REQUEST,
173
- getMobilepushTemplatesList
174
- );
175
- }
176
-
177
- // All sagas to be loaded
178
- export default [
179
- watchEditTemplate,
180
- watchCreateTemplate,
181
- watchGetTemplateDetails,
182
- watchFetchWeCrmAccounts,
183
- watchMobilepushTemplatesList,
184
- watchUploadAsset,
185
- watchGetIosCtas,
186
- ];
187
-
188
- export function* v2MobilePushSagas() {
189
- yield all([
190
- watchCreateTemplate(),
191
- watchEditTemplate(),
192
- watchGetTemplateDetails(),
193
- watchFetchWeCrmAccounts(),
194
- watchMobilepushTemplatesList(),
195
- watchUploadAsset(),
196
- watchGetIosCtas(),
197
- ]);
198
- }
@@ -1,55 +0,0 @@
1
- import { createSelector } from 'reselect';
2
- import { fromJS } from 'immutable';
3
-
4
- // New selectors for MobilePushNew
5
- const selectMobilePushNewDomain = () => (state) => state.get('mobilePushNew') || fromJS({});
6
-
7
- const makeSelectMobilePushNew = () => createSelector(
8
- selectMobilePushNewDomain(),
9
- (substate) => substate.toJS()
10
- );
11
-
12
- const makeSelectUploadedAssetData = () => createSelector(
13
- selectMobilePushNewDomain(),
14
- (substate) => substate.get('uploadedAssetData') || {}
15
- );
16
-
17
- const makeSelectUploadedAssetData0 = () => createSelector(
18
- selectMobilePushNewDomain(),
19
- (substate) => substate.get('uploadedAssetData0') || {}
20
- );
21
-
22
- const makeSelectUploadedAssetData1 = () => createSelector(
23
- selectMobilePushNewDomain(),
24
- (substate) => substate.get('uploadedAssetData1') || {}
25
- );
26
-
27
- const makeSelectUploadAssetSuccess = () => createSelector(
28
- selectMobilePushNewDomain(),
29
- (substate) => substate.get('uploadAssetSuccess') || false
30
- );
31
-
32
- const makeSelectCreateError = () => createSelector(
33
- selectMobilePushNewDomain(), (dimensionState) => dimensionState.get('createTemplateErrorMessage') || ""
34
- );
35
-
36
- const makeSelectAssetUploading = () => createSelector(
37
- selectMobilePushNewDomain(),
38
- (substate) => substate.get('assetUploading') || false
39
- );
40
-
41
- const makeSelectGetTemplateDetailsInProgress = () => createSelector(
42
- selectMobilePushNewDomain(),
43
- (substate) => substate.get('getTemplateDetailsInProgress') || false
44
- );
45
-
46
- export {
47
- makeSelectMobilePushNew,
48
- makeSelectUploadedAssetData,
49
- makeSelectUploadedAssetData0,
50
- makeSelectUploadedAssetData1,
51
- makeSelectUploadAssetSuccess,
52
- makeSelectCreateError,
53
- makeSelectAssetUploading,
54
- makeSelectGetTemplateDetailsInProgress,
55
- };