@capillarytech/creatives-library 7.1.11 → 7.2.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 (62) hide show
  1. package/assets/viber.png +0 -0
  2. package/index.js +8 -1
  3. package/package.json +2 -1
  4. package/reducers.js +2 -0
  5. package/routes.js +7 -1
  6. package/services/api.js +5 -0
  7. package/v2Components/TemplatePreview/_templatePreview.scss +8 -2
  8. package/v2Components/TemplatePreview/assets/images/viberMobile.svg +135 -0
  9. package/v2Components/TemplatePreview/index.js +108 -18
  10. package/v2Containers/App/constants.js +1 -1
  11. package/v2Containers/CreativesContainer/SlideBoxContent.js +67 -2
  12. package/v2Containers/CreativesContainer/constants.js +2 -0
  13. package/v2Containers/CreativesContainer/index.js +40 -5
  14. package/v2Containers/FTP/_FTP.scss +103 -0
  15. package/v2Containers/FTP/actions.js +7 -0
  16. package/v2Containers/FTP/constants.js +3 -0
  17. package/v2Containers/FTP/index.js +534 -0
  18. package/v2Containers/FTP/messages.js +60 -0
  19. package/v2Containers/FTP/reducer.js +32 -0
  20. package/v2Containers/FTP/sagas.js +26 -0
  21. package/v2Containers/FTP/selectors.js +20 -0
  22. package/v2Containers/Templates/_templates.scss +57 -0
  23. package/v2Containers/Templates/actions.js +117 -110
  24. package/v2Containers/Templates/constants.js +2 -0
  25. package/v2Containers/Templates/index.js +88 -7
  26. package/v2Containers/Templates/messages.js +4 -0
  27. package/v2Containers/Templates/reducer.js +2 -0
  28. package/v2Containers/TemplatesV2/index.js +9 -1
  29. package/v2Containers/TemplatesV2/messages.js +4 -0
  30. package/v2Containers/Viber/actions.js +74 -0
  31. package/v2Containers/Viber/constants.js +30 -0
  32. package/v2Containers/Viber/index.js +727 -0
  33. package/v2Containers/Viber/messages.js +145 -0
  34. package/v2Containers/Viber/reducer.js +84 -0
  35. package/v2Containers/Viber/sagas.js +107 -0
  36. package/v2Containers/Viber/selectors.js +21 -0
  37. package/v2Components/TemplatePreview/assets/images/mobile.svg +0 -24
  38. package/v2Containers/Line/Create/_lineCreate.scss +0 -64
  39. package/v2Containers/Line/Create/actions.js +0 -94
  40. package/v2Containers/Line/Create/constants.js +0 -43
  41. package/v2Containers/Line/Create/index.js +0 -1132
  42. package/v2Containers/Line/Create/initialSchema.js +0 -378
  43. package/v2Containers/Line/Create/messages.js +0 -229
  44. package/v2Containers/Line/Create/reducer.js +0 -99
  45. package/v2Containers/Line/Create/sagas.js +0 -113
  46. package/v2Containers/Line/Create/selectors.js +0 -30
  47. package/v2Containers/Line/CreateWrapper/constants.js +0 -2
  48. package/v2Containers/Line/CreateWrapper/index.js +0 -117
  49. package/v2Containers/Line/CreateWrapper/messages.js +0 -55
  50. package/v2Containers/Line/Edit/_lineEdit.scss +0 -23
  51. package/v2Containers/Line/Edit/actions.js +0 -79
  52. package/v2Containers/Line/Edit/constants.js +0 -27
  53. package/v2Containers/Line/Edit/index.js +0 -1051
  54. package/v2Containers/Line/Edit/messages.js +0 -173
  55. package/v2Containers/Line/Edit/reducer.js +0 -83
  56. package/v2Containers/Line/Edit/sagas.js +0 -81
  57. package/v2Containers/Line/Edit/selectors.js +0 -29
  58. package/v2Containers/Line/Edit/tests/actions.test.js +0 -18
  59. package/v2Containers/Line/Edit/tests/index.test.js +0 -10
  60. package/v2Containers/Line/Edit/tests/reducer.test.js +0 -9
  61. package/v2Containers/Line/Edit/tests/sagas.test.js +0 -15
  62. package/v2Containers/Line/Edit/tests/selectors.test.js +0 -10
@@ -0,0 +1,145 @@
1
+ import { defineMessages } from 'react-intl';
2
+ const scope = `creatives.containersV2.viber`;
3
+
4
+ export default defineMessages({
5
+ search: {
6
+ id: `${scope}.search`,
7
+ defaultMessage: 'Search',
8
+ },
9
+ gettingAllTemplates: {
10
+ id: `${scope}.gettingAllTemplates`,
11
+ defaultMessage: "Getting all templates...",
12
+ },
13
+ viberCreativeTitle: {
14
+ id: `${scope}.viberCreativeTitle`,
15
+ defaultMessage: "Viber creative",
16
+ },
17
+ message: {
18
+ id: `${scope}.message`,
19
+ defaultMessage: 'Message',
20
+ },
21
+ textMessage: {
22
+ id: `${scope}.textMessage`,
23
+ defaultMessage: 'Text message',
24
+ },
25
+ characters: {
26
+ id: `${scope}.characters`,
27
+ defaultMessage: 'characters',
28
+ },
29
+ addLabels: {
30
+ id: `${scope}.addLabels`,
31
+ defaultMessage: 'Add labels',
32
+ },
33
+ image: {
34
+ id: `${scope}.image`,
35
+ defaultMessage: 'Image',
36
+ },
37
+ button: {
38
+ id: `${scope}.button`,
39
+ defaultMessage: 'Button',
40
+ },
41
+ buttonText: {
42
+ id: `${scope}.buttonText`,
43
+ defaultMessage: 'Button text',
44
+ },
45
+ buttonUrl: {
46
+ id: `${scope}.buttonUrl`,
47
+ defaultMessage: 'Button url',
48
+ },
49
+ uploadImage: {
50
+ id: `${scope}.uploadImage`,
51
+ defaultMessage: 'Upload Image',
52
+ },
53
+ imageDesc: {
54
+ id: `${scope}.imageDesc`,
55
+ defaultMessage: 'The relevant image that complements the message context.',
56
+ },
57
+ uploadGallery: {
58
+ id: `${scope}.uploadGallery`,
59
+ defaultMessage: 'Gallery',
60
+ },
61
+ uploadComputer: {
62
+ id: `${scope}.uploadComputer`,
63
+ defaultMessage: 'Your computer',
64
+ },
65
+ or: {
66
+ id: `${scope}.or`,
67
+ defaultMessage: 'OR',
68
+ },
69
+ dragAndDrop: {
70
+ id: `${scope}.dragAndDrop`,
71
+ defaultMessage: 'Drag and drop image here',
72
+ },
73
+ uploadImageDescription: {
74
+ id: `${scope}.uploadImageDescription`,
75
+ defaultMessage: 'The relevant image that complements the message context.',
76
+ },
77
+ imageReUpload: {
78
+ id: `${scope}.imageReUpload`,
79
+ defaultMessage: 'Re upload',
80
+ },
81
+ imageDimenstionDescription: {
82
+ id: `${scope}.imageDimenstionDescription`,
83
+ defaultMessage: 'Dimensions: 300px x 400px',
84
+ },
85
+ imageSizeDescription: {
86
+ id: `${scope}.imageSizeDescription`,
87
+ defaultMessage: ' Size: 10mb',
88
+ },
89
+ doneButtonLabel: {
90
+ id: `${scope}.doneButtonLabel`,
91
+ defaultMessage: 'Done',
92
+ },
93
+ cancelButtonLabel: {
94
+ id: `${scope}.cancelButtonLabel`,
95
+ defaultMessage: 'Cancel',
96
+ },
97
+ imageGallery: {
98
+ id: `${scope}.imageGallery`,
99
+ defaultMessage: 'Gallery',
100
+ },
101
+ emptyContentErrorMessage: {
102
+ id: `${scope}.emptyContentErrorMessage`,
103
+ defaultMessage: 'Template content can not be empty',
104
+ },
105
+ limitExceededContentErrorMessage: {
106
+ id: `${scope}.limitExceededContentErrorMessage`,
107
+ defaultMessage: 'Template content can not be more than 1000',
108
+ },
109
+ invalidTagError: {
110
+ id: `${scope}.invalidTagError`,
111
+ defaultMessage: 'Please check the message content for unsupported/missing tags',
112
+ },
113
+ viberImageIncorrectSize: {
114
+ id: `${scope}.viberImageIncorrectSize`,
115
+ defaultMessage: 'Please upload the image with correct type, size and dimension',
116
+ },
117
+ viberCreateNotification: {
118
+ id: `${scope}.viberCreateNotification`,
119
+ defaultMessage: 'Viber template created successfully',
120
+ },
121
+ viberEditNotification: {
122
+ id: `${scope}.viberEditNotification`,
123
+ defaultMessage: 'Viber template updated successfully',
124
+ },
125
+ textMessageTitlePlaceholder: {
126
+ id: `${scope}.textMessageTitlePlaceholder`,
127
+ defaultMessage: 'Enter template name',
128
+ },
129
+ textMessageTitleLabel: {
130
+ id: `${scope}.textMessageTitleLabel`,
131
+ defaultMessage: 'Creative name',
132
+ },
133
+ emptyTitleErrorMessage: {
134
+ id: `${scope}.emptyTitleErrorMessage`,
135
+ defaultMessage: 'Template title can not be empty',
136
+ },
137
+ optional: {
138
+ id: `${scope}.optional`,
139
+ defaultMessage: '(optional)',
140
+ },
141
+ inValidUrliErrorMessage: {
142
+ id: `${scope}.inValidUrliErrorMessage`,
143
+ defaultMessage: 'Button URL is not valid',
144
+ },
145
+ });
@@ -0,0 +1,84 @@
1
+ /*
2
+ *
3
+ * Faceboook reducer
4
+ *
5
+ */
6
+
7
+ import { fromJS } from 'immutable';
8
+ import * as types from './constants';
9
+
10
+ const initialState = fromJS({
11
+ uploadedAssetData: {},
12
+ createTemplateInProgress: false,
13
+ });
14
+
15
+ function viberReducer(state = initialState, action) {
16
+ switch (action.type) {
17
+ case types.CREATE_VIBER_TEMPLATE_REQUEST:
18
+ return state
19
+ .set('createTemplateInProgress', true)
20
+ .set('createTemplateError', false)
21
+ .set('createTemplateErrorMessage', fromJS(""));
22
+ case types.CREATE_VIBER_TEMPLATE_SUCCESS:
23
+ return state.set('createTemplateInProgress', false)
24
+ .set('response', action.data)
25
+ .set('createTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
26
+ .set('createTemplateErrorMessage', fromJS(action.errorMsg));
27
+ case types.CREATE_VIBER_TEMPLATE_FAILURE:
28
+ return state
29
+ .set('createTemplateInProgress', false)
30
+ .set('createTemplateError', true)
31
+ .set('createTemplateErrorMessage', fromJS(action.errorMsg));
32
+ case types.UPLOAD_VIBER_ASSET_REQUEST:
33
+ return state
34
+ .set('uploadAssetSuccess', false)
35
+ .set('assetUploading', true);
36
+ case types.UPLOAD_VIBER_ASSET_SUCCESS:
37
+ return state
38
+ .set('uploadAssetSuccess', (action.statusCode !== undefined && action.statusCode !== '' && action.statusCode < 300))
39
+ .set('assetUploading', false)
40
+ .set(action.templateType !== undefined ? `uploadedAssetData${action.templateType}` : 'uploadedAssetData', action.data);
41
+ case types.UPLOAD_VIBER_ASSET_FAILURE:
42
+ return state
43
+ .set('uploadAssetSuccess', false)
44
+ .set('assetUploading', false);
45
+ case types.CLEAR_VIBER_ASSET:
46
+ return state
47
+ .delete(action.templateType !== undefined ? `uploadedAssetData${action.templateType}` : 'uploadedAssetData');
48
+ // FOR EDIT
49
+ case types.EDIT_VIBER_TEMPLATE_REQUEST:
50
+ return state
51
+ .set('editTemplateInProgress', true)
52
+ .set('editTemplateError', false)
53
+ .set('editTemplateErrorMessage', fromJS(""));
54
+ case types.EDIT_VIBER_TEMPLATE_SUCCESS:
55
+ return state.set('editTemplateInProgress', false)
56
+ .set('editResponse', action.data)
57
+ .set('editTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
58
+ .set('editTemplateErrorMessage', fromJS(action.errorMsg));
59
+ case types.EDIT_VIBER_TEMPLATE_FAILURE:
60
+ return state
61
+ .set('editTemplateInProgress', false)
62
+ .set('editTemplateError', true)
63
+ .set('editTemplateErrorMessage', fromJS(action.errorMsg));
64
+ case types.GET_VIBER_TEMPLATE_DETAILS_REQUEST:
65
+ return state.set('getTemplateDetailsInProgress', true);
66
+ case types.GET_VIBER_TEMPLATE_DETAILS_SUCCESS:
67
+ return state.set('getTemplateDetailsInProgress', false)
68
+ .set('templateDetails', action.data);
69
+ case types.GET_VIBER_TEMPLATE_DETAILS_FAILURE:
70
+ case types.CLEAR_VIBER_EDIT_RESPONSE_REQUEST:
71
+ return state.set('editResponse', {});
72
+ case types.CLEAR_VIBER_CREATE_RESPONSE_REQUEST:
73
+ return state.set('response', {});
74
+ case types.CLEAR_VIBER_DATA:
75
+ return state
76
+ .delete('uploadedAssetData')
77
+ .delete('metaEntities')
78
+ .delete('templateDetails');
79
+ default:
80
+ return state;
81
+ }
82
+ }
83
+
84
+ export default viberReducer;
@@ -0,0 +1,107 @@
1
+
2
+ import { take, cancel, call, put, takeLatest } from 'redux-saga/effects';
3
+ import { LOCATION_CHANGE } from 'react-router-redux';
4
+ import * as Api from '../../services/api';
5
+ import * as types from './constants';
6
+
7
+ export function* uploadViberAsset(file, assetType, fileParams ) {
8
+ try {
9
+ const result = yield call(Api.uploadFile, file, assetType, fileParams);
10
+ yield put({
11
+ type: types.UPLOAD_VIBER_ASSET_SUCCESS,
12
+ data: result.response.asset,
13
+ statusCode: result.status ? result.status.code : '',
14
+ templateType: file.templateType,
15
+ });
16
+ } catch (error) {
17
+ yield put({ type: types.UPLOAD_VIBER_ASSET_FAILURE, error });
18
+ }
19
+ }
20
+
21
+ export function* createViberTemplate({ template, callback }) {
22
+ let errorMsg;
23
+ try {
24
+ const result = yield call(Api.createViberTemplate, { template });
25
+ if (result.status.code >= 400) {
26
+ errorMsg = result.message;
27
+ throw errorMsg;
28
+ }
29
+ yield put({ type: types.CREATE_VIBER_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
30
+ if (callback) {
31
+ callback(result.response);
32
+ }
33
+ } catch (error) {
34
+ yield put({ type: types.CREATE_VIBER_TEMPLATE_FAILURE, error, errorMsg });
35
+ if (callback) {
36
+ callback(null, errorMsg);
37
+ }
38
+ }
39
+ }
40
+
41
+
42
+ export function* editTemplate({ template, callback }) {
43
+ let errorMsg;
44
+ try {
45
+ const result = yield call(Api.createViberTemplate, {template});
46
+ if (result.status.code >= 400) {
47
+ errorMsg = result.message;
48
+ throw errorMsg;
49
+ }
50
+ if (callback) {
51
+ callback(result.response);
52
+ }
53
+ yield put({ type: types.EDIT_TEMPLATE_VIBER_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
54
+ } catch (error) {
55
+ yield put({ type: types.EDIT_VIBER_TEMPLATE_FAILURE, error, errorMsg });
56
+ if (callback) {
57
+ callback(null, errorMsg);
58
+ }
59
+ }
60
+ }
61
+
62
+ export function* getTemplateDetails({id, callback}) {
63
+ try {
64
+ console.log('saga get Template details viber', id);
65
+ const result = yield call(Api.getTemplateDetails, {id, channel: 'VIBER'});
66
+ yield put({ type: types.GET_VIBER_TEMPLATE_DETAILS_SUCCESS, data: result.response });
67
+ if (callback) {
68
+ callback(false);
69
+ }
70
+ } catch (error) {
71
+ yield put({ type: types.GET_VIBER_TEMPLATE_DETAILS_FAILURE, error });
72
+ }
73
+ }
74
+
75
+
76
+ function* watchUploadViberAsset() {
77
+ const watcher = yield takeLatest(types.UPLOAD_VIBER_ASSET_REQUEST, uploadViberAsset);
78
+ yield take(LOCATION_CHANGE);
79
+ yield cancel(watcher);
80
+ }
81
+
82
+
83
+ function* watchCreateTemplate() {
84
+ console.log('inside watch vibee saga createTemplate@@@');
85
+ const watcher = yield takeLatest(types.CREATE_VIBER_TEMPLATE_REQUEST, createViberTemplate);
86
+ yield take(LOCATION_CHANGE);
87
+ yield cancel(watcher);
88
+ }
89
+
90
+ function* watchGetTemplateDetails() {
91
+ const watcher = yield takeLatest(types.GET_VIBER_TEMPLATE_DETAILS_REQUEST, getTemplateDetails);
92
+ yield take(LOCATION_CHANGE);
93
+ yield cancel(watcher);
94
+ }
95
+
96
+ function* watchEditTemplate() {
97
+ const watcher = yield takeLatest(types.EDIT_VIBER_TEMPLATE_REQUEST, editTemplate);
98
+ yield take(LOCATION_CHANGE);
99
+ yield cancel(watcher);
100
+ }
101
+
102
+ export default [
103
+ watchUploadViberAsset,
104
+ watchCreateTemplate,
105
+ watchGetTemplateDetails,
106
+ watchEditTemplate,
107
+ ];
@@ -0,0 +1,21 @@
1
+ import { createSelector } from 'reselect';
2
+
3
+ /**
4
+ * Direct selector to the create state domain
5
+ */
6
+ const selectViberDomain = () => (state) => state.get('templates');
7
+ const selectViberMessageEditDomain = () => (state) => state.get('viber');
8
+
9
+ const makeSelectViber = () => createSelector(
10
+ selectViberDomain(),
11
+ (substate) => substate && substate.toJS()
12
+ );
13
+
14
+ const makeSelectCreateViber = () => createSelector(
15
+ selectViberMessageEditDomain(),
16
+ (substate) => substate && substate.toJS()
17
+ );
18
+
19
+ export {
20
+ makeSelectViber, makeSelectCreateViber,
21
+ };