@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.
- package/assets/viber.png +0 -0
- package/index.js +8 -1
- package/package.json +2 -1
- package/reducers.js +2 -0
- package/routes.js +7 -1
- package/services/api.js +5 -0
- package/v2Components/TemplatePreview/_templatePreview.scss +8 -2
- package/v2Components/TemplatePreview/assets/images/viberMobile.svg +135 -0
- package/v2Components/TemplatePreview/index.js +108 -18
- package/v2Containers/App/constants.js +1 -1
- package/v2Containers/CreativesContainer/SlideBoxContent.js +67 -2
- package/v2Containers/CreativesContainer/constants.js +2 -0
- package/v2Containers/CreativesContainer/index.js +40 -5
- package/v2Containers/FTP/_FTP.scss +103 -0
- package/v2Containers/FTP/actions.js +7 -0
- package/v2Containers/FTP/constants.js +3 -0
- package/v2Containers/FTP/index.js +534 -0
- package/v2Containers/FTP/messages.js +60 -0
- package/v2Containers/FTP/reducer.js +32 -0
- package/v2Containers/FTP/sagas.js +26 -0
- package/v2Containers/FTP/selectors.js +20 -0
- package/v2Containers/Templates/_templates.scss +57 -0
- package/v2Containers/Templates/actions.js +117 -110
- package/v2Containers/Templates/constants.js +2 -0
- package/v2Containers/Templates/index.js +88 -7
- package/v2Containers/Templates/messages.js +4 -0
- package/v2Containers/Templates/reducer.js +2 -0
- package/v2Containers/TemplatesV2/index.js +9 -1
- package/v2Containers/TemplatesV2/messages.js +4 -0
- package/v2Containers/Viber/actions.js +74 -0
- package/v2Containers/Viber/constants.js +30 -0
- package/v2Containers/Viber/index.js +727 -0
- package/v2Containers/Viber/messages.js +145 -0
- package/v2Containers/Viber/reducer.js +84 -0
- package/v2Containers/Viber/sagas.js +107 -0
- package/v2Containers/Viber/selectors.js +21 -0
- package/v2Components/TemplatePreview/assets/images/mobile.svg +0 -24
- package/v2Containers/Line/Create/_lineCreate.scss +0 -64
- package/v2Containers/Line/Create/actions.js +0 -94
- package/v2Containers/Line/Create/constants.js +0 -43
- package/v2Containers/Line/Create/index.js +0 -1132
- package/v2Containers/Line/Create/initialSchema.js +0 -378
- package/v2Containers/Line/Create/messages.js +0 -229
- package/v2Containers/Line/Create/reducer.js +0 -99
- package/v2Containers/Line/Create/sagas.js +0 -113
- package/v2Containers/Line/Create/selectors.js +0 -30
- package/v2Containers/Line/CreateWrapper/constants.js +0 -2
- package/v2Containers/Line/CreateWrapper/index.js +0 -117
- package/v2Containers/Line/CreateWrapper/messages.js +0 -55
- package/v2Containers/Line/Edit/_lineEdit.scss +0 -23
- package/v2Containers/Line/Edit/actions.js +0 -79
- package/v2Containers/Line/Edit/constants.js +0 -27
- package/v2Containers/Line/Edit/index.js +0 -1051
- package/v2Containers/Line/Edit/messages.js +0 -173
- package/v2Containers/Line/Edit/reducer.js +0 -83
- package/v2Containers/Line/Edit/sagas.js +0 -81
- package/v2Containers/Line/Edit/selectors.js +0 -29
- package/v2Containers/Line/Edit/tests/actions.test.js +0 -18
- package/v2Containers/Line/Edit/tests/index.test.js +0 -10
- package/v2Containers/Line/Edit/tests/reducer.test.js +0 -9
- package/v2Containers/Line/Edit/tests/sagas.test.js +0 -15
- 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
|
+
};
|