@capillarytech/creatives-library 6.13.4 → 6.13.6

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 (57) hide show
  1. package/app.js +5 -2
  2. package/components/FormBuilder/index.js +6 -2
  3. package/containers/Ebill/index.js +3 -0
  4. package/containers/Email/index.js +16 -8
  5. package/containers/Sms/Create/index.js +2 -1
  6. package/index.js +1 -8
  7. package/package.json +2 -2
  8. package/reducers.js +0 -2
  9. package/routes.js +1 -7
  10. package/services/api.js +0 -6
  11. package/utils/ignoredErrorMessages.js +4 -0
  12. package/v2Components/FormBuilder/index.js +5 -3
  13. package/v2Components/TemplatePreview/_templatePreview.scss +2 -8
  14. package/v2Components/TemplatePreview/index.js +17 -100
  15. package/v2Containers/Cap/index.js +30 -9
  16. package/v2Containers/CreativesContainer/SlideBoxContent.js +2 -65
  17. package/v2Containers/CreativesContainer/constants.js +0 -2
  18. package/v2Containers/CreativesContainer/index.js +2 -29
  19. package/v2Containers/Line/Create/_lineCreate.scss +64 -0
  20. package/v2Containers/Line/Create/actions.js +94 -0
  21. package/v2Containers/Line/Create/constants.js +43 -0
  22. package/v2Containers/Line/Create/index.js +1112 -0
  23. package/v2Containers/Line/Create/initialSchema.js +378 -0
  24. package/v2Containers/Line/Create/messages.js +229 -0
  25. package/v2Containers/Line/Create/reducer.js +99 -0
  26. package/v2Containers/Line/Create/sagas.js +113 -0
  27. package/v2Containers/Line/Create/selectors.js +30 -0
  28. package/v2Containers/Line/CreateWrapper/constants.js +2 -0
  29. package/v2Containers/Line/CreateWrapper/index.js +117 -0
  30. package/v2Containers/Line/CreateWrapper/messages.js +55 -0
  31. package/v2Containers/Line/Edit/_lineEdit.scss +23 -0
  32. package/v2Containers/Line/Edit/actions.js +79 -0
  33. package/v2Containers/Line/Edit/constants.js +27 -0
  34. package/v2Containers/Line/Edit/index.js +1051 -0
  35. package/v2Containers/Line/Edit/messages.js +173 -0
  36. package/v2Containers/Line/Edit/reducer.js +83 -0
  37. package/v2Containers/Line/Edit/sagas.js +81 -0
  38. package/v2Containers/Line/Edit/selectors.js +29 -0
  39. package/v2Containers/Line/Edit/tests/actions.test.js +18 -0
  40. package/v2Containers/Line/Edit/tests/index.test.js +10 -0
  41. package/v2Containers/Line/Edit/tests/reducer.test.js +9 -0
  42. package/v2Containers/Line/Edit/tests/sagas.test.js +15 -0
  43. package/v2Containers/Line/Edit/tests/selectors.test.js +10 -0
  44. package/v2Containers/Templates/_templates.scss +0 -57
  45. package/v2Containers/Templates/index.js +5 -54
  46. package/v2Containers/TemplatesV2/index.js +1 -12
  47. package/v2Containers/TemplatesV2/messages.js +0 -4
  48. package/v2Containers/WeChat/MapTemplates/index.js +1 -1
  49. package/assets/viber.png +0 -0
  50. package/v2Containers/Viber/_viber.scss +0 -3
  51. package/v2Containers/Viber/actions.js +0 -74
  52. package/v2Containers/Viber/constants.js +0 -30
  53. package/v2Containers/Viber/index.js +0 -700
  54. package/v2Containers/Viber/messages.js +0 -137
  55. package/v2Containers/Viber/reducer.js +0 -84
  56. package/v2Containers/Viber/sagas.js +0 -107
  57. package/v2Containers/Viber/selectors.js +0 -21
@@ -0,0 +1,173 @@
1
+ /*
2
+ * Edit Messages
3
+ *
4
+ * This contains all the text for the Edit component.
5
+ */
6
+ import { defineMessages } from 'react-intl';
7
+
8
+ export default defineMessages({
9
+ "imageUploadLabel": {
10
+ id: 'creatives.containersV2.Line.Edit.ImageUploadLabel',
11
+ defaultMessage: 'Upload image',
12
+ },
13
+ "Enter template name*": {
14
+ id: 'creatives.containersV2.Line.Edit.enterTemplateNameImportant',
15
+ defaultMessage: 'Enter template name*',
16
+ },
17
+ "Enter template name": {
18
+ id: 'creatives.containersV2.Line.Edit.enterTemplateName',
19
+ defaultMessage: 'Enter template name',
20
+ },
21
+ "Template name cannot be empty": {
22
+ id: 'creatives.containersV2.Line.Edit.templateCantEmpty',
23
+ defaultMessage: 'Template name cannot be empty',
24
+ },
25
+ "Discard Changes": {
26
+ id: 'creatives.containersV2.Line.Edit.discardChanges',
27
+ defaultMessage: 'Discard changes',
28
+ },
29
+ "Cancel": {
30
+ id: 'creatives.containersV2.Line.Edit.cancel',
31
+ defaultMessage: 'Cancel',
32
+ },
33
+ "Save": {
34
+ id: 'creatives.containersV2.Line.Edit.save',
35
+ defaultMessage: 'Save',
36
+ },
37
+ "Select Line Template": {
38
+ id: 'creatives.containersV2.Line.Edit.selectLineTemplate',
39
+ defaultMessage: 'Select line template',
40
+ },
41
+ "Template": {
42
+ id: 'creatives.containersV2.Line.Edit.template',
43
+ defaultMessage: 'Template',
44
+ },
45
+ "Title*": {
46
+ id: 'creatives.containersV2.Line.Edit.titleLabel',
47
+ defaultMessage: 'Title*',
48
+ },
49
+ "Title": {
50
+ id: 'creatives.containersV2.Line.Edit.title',
51
+ defaultMessage: 'Title',
52
+ },
53
+ "Please input message title name.": {
54
+ id: 'creatives.containersV2.Line.Edit.titleNameInvalid',
55
+ defaultMessage: 'Please enter the message title',
56
+ },
57
+ "Template message has unsupported/missing tags!": {
58
+ id: 'creatives.containersV2.Line.Edit.messageHasUnsupportedTag',
59
+ defaultMessage: 'Please check the message content for unsupported/missing tags',
60
+ },
61
+ "Tags": {
62
+ id: 'creatives.containersV2.Line.Edit.Tags',
63
+ defaultMessage: 'Tags',
64
+ },
65
+ "Message*": {
66
+ id: 'creatives.containersV2.Line.Edit.messageLabel',
67
+ defaultMessage: 'Message*',
68
+ },
69
+ "Message": {
70
+ id: 'creatives.containersV2.Line.Edit.message',
71
+ defaultMessage: 'Message',
72
+ },
73
+ "Please input mobile push template content.": {
74
+ id: 'creatives.containersV2.Line.Edit.inputLineTemplateContent',
75
+ defaultMessage: 'Please enter the message content',
76
+ },
77
+ "Template title has unsupported/missing tags.": {
78
+ id: 'creatives.containersV2.Line.Edit.titleHasUnsupportedTag',
79
+ defaultMessage: 'Please check the message content for unsupported/missing tags',
80
+ },
81
+ "Template name cannot be empty.": {
82
+ id: 'creatives.containersV2.Line.Edit.templateNameNotEmpty',
83
+ defaultMessage: 'Please provide a template name ',
84
+ },
85
+ "Message title has unsupported/missing tags!": {
86
+ id: 'creatives.containersV2.Line.Edit.messageTitleWithUnsupportedTag',
87
+ defaultMessage: 'Please check the message content for unsupported/missing tags',
88
+ },
89
+ "Image": {
90
+ id: 'creatives.containersV2.Line.Edit.Image',
91
+ defaultMessage: 'Image',
92
+ },
93
+ "Max file size acceptable is 5mb": {
94
+ id: 'creatives.containersV2.Line.Edit.maxUploadFileSize',
95
+ defaultMessage: 'Max file size acceptable is 5mb',
96
+ },
97
+ "Please upload Image": {
98
+ id: 'creatives.containersV2.Line.Edit.pleaseUploadImage',
99
+ defaultMessage: 'Please upload image',
100
+ },
101
+ "Upload Image": {
102
+ id: 'creatives.containersV2.Line.Edit.uploadImage',
103
+ defaultMessage: 'Upload image',
104
+ },
105
+ "Line Template Edited Successfully": {
106
+ id: 'creatives.containersV2.Line.Edit.templateEditedSuccessfully',
107
+ defaultMessage: 'Line template edited successfully',
108
+ },
109
+ "somethingWentWrong": {
110
+ id: 'creatives.containersV2.Line.Edit.somethingWentWrong',
111
+ defaultMessage: 'Something went wrong!!',
112
+ },
113
+ "Do you really want to go back? All your temporary changes will be lost!": {
114
+ id: 'creatives.containersV2.Line.Edit.goBackConfirmation',
115
+ defaultMessage: "Going back will discard all the changes you've made. Continue?",
116
+ },
117
+ "Name and Description": {
118
+ id: 'creatives.containersV2.Line.Edit.nameAndDescription',
119
+ defaultMessage: 'Name and description',
120
+ },
121
+ "Button 1": {
122
+ id: 'creatives.containersV2.Line.Edit.button1',
123
+ defaultMessage: 'Button 1',
124
+ },
125
+ "Button 2": {
126
+ id: 'creatives.containersV2.Line.Edit.button2',
127
+ defaultMessage: 'Button 2',
128
+ },
129
+ "File size cannot be more than 5mb": {
130
+ id: 'creatives.containersV2.Line.Edit.uploadFileSizeError',
131
+ defaultMessage: 'File size cannot be more than 5mb',
132
+ },
133
+ "value cannot be empty.": {
134
+ id: 'creatives.containersV2.Line.Edit.valueCantEmpty',
135
+ defaultMessage: 'value cannot be empty.',
136
+ },
137
+ "Uploading Image...": {
138
+ id: 'creatives.containersV2.Line.Edit.uploadingImage',
139
+ defaultMessage: 'Uploading image...',
140
+ },
141
+ "Campaigns": {
142
+ id: 'creatives.containersV2.Line.Edit.Campaigns',
143
+ defaultMessage: 'Campaigns',
144
+ },
145
+ "Creatives": {
146
+ id: 'creatives.containersV2.Line.Edit.Creatives',
147
+ defaultMessage: 'Creatives',
148
+ },
149
+ "mobilePush": {
150
+ id: 'creatives.containersV2.Line.Edit.mobilePush',
151
+ defaultMessage: 'Mobile Push',
152
+ },
153
+ "templateNotConfigured": {
154
+ id: 'creatives.containersV2.Line.Edit.templateNotConfigured',
155
+ defaultMessage: 'template not configured,',
156
+ },
157
+ "alertMessage": {
158
+ id: 'creatives.containersV2.Line.Edit.alertMessage',
159
+ defaultMessage: 'Alert',
160
+ },
161
+ "androidNotConfigured": {
162
+ id: 'creatives.containersV2.Line.Edit.androidNotConfigured',
163
+ defaultMessage: 'Android template is not configured. Save without Android template',
164
+ },
165
+ "iosNotConfigured": {
166
+ id: 'creatives.containersV2.Line.Edit.iosNotConfigured',
167
+ defaultMessage: 'IOS template is not configured, Save without IOS template',
168
+ },
169
+ "goBackTemporaryChangesLost": {
170
+ id: 'creatives.containersV2.Line.Edit.goBackTemporaryChangesLost',
171
+ defaultMessage: 'Do you really want to go back? All your temporary changes will be lost!',
172
+ },
173
+ });
@@ -0,0 +1,83 @@
1
+ /*
2
+ *
3
+ * Create reducer
4
+ *
5
+ */
6
+
7
+ import { fromJS } from 'immutable';
8
+ import * as types from './constants';
9
+
10
+ const initialState = fromJS({
11
+ editTemplateInProgress: false,
12
+ editResponse: {},
13
+ getTemplateDetailsInProgress: false,
14
+ templateDetails: {},
15
+ });
16
+
17
+ function editReducer(state = initialState, action) {
18
+ switch (action.type) {
19
+ case types.DEFAULT_ACTION:
20
+ return state;
21
+ case types.EDIT_TEMPLATE_REQUEST:
22
+ return state
23
+ .set('editTemplateInProgress', true)
24
+ .set('editTemplateError', false)
25
+ .set('editTemplateErrorMessage', fromJS(""));
26
+ case types.EDIT_TEMPLATE_SUCCESS:
27
+ return state.set('editTemplateInProgress', false)
28
+ .set('editResponse', action.data)
29
+ .set('editTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
30
+ .set('editTemplateErrorMessage', fromJS(action.errorMsg));
31
+ case types.EDIT_TEMPLATE_FAILURE:
32
+ return state
33
+ .set('editTemplateInProgress', false)
34
+ .set('editTemplateError', true)
35
+ .set('editTemplateErrorMessage', fromJS(action.errorMsg));
36
+ case types.GET_TEMPLATE_DETAILS_REQUEST:
37
+ return state.set('getTemplateDetailsInProgress', true);
38
+ case types.GET_TEMPLATE_DETAILS_SUCCESS:
39
+ case types.SET_SELECTED_TEMPLATE:
40
+ return state.set('getTemplateDetailsInProgress', false)
41
+ .set('templateDetails', action.data);
42
+ case types.GET_TEMPLATE_DETAILS_FAILURE:
43
+ return state.set('getTemplateDetailsInProgress', false);
44
+ case types.CLEAR_EDIT_RESPONSE_REQUEST:
45
+ return state.set('editResponse', {});
46
+ case types.UPLOAD_ASSET_REQUEST:
47
+ return state
48
+ .set('uploadAssetSuccess', false)
49
+ .set('assetUploading', true);
50
+ case types.UPLOAD_ASSET_SUCCESS:
51
+ return state
52
+ .set('uploadAssetSuccess', (action.statusCode !== undefined && action.statusCode !== '' && action.statusCode < 300))
53
+ .set('assetUploading', false)
54
+ .set('uploadedAssetData', action.data);
55
+ case types.UPLOAD_ASSET_FAILURE:
56
+ return state
57
+ .set('uploadAssetSuccess', false)
58
+ .set('assetUploading', false);
59
+ case types.CLEAR_DATA:
60
+ return state
61
+ .delete('uploadedAssetData')
62
+ .delete('metaEntities')
63
+ .delete('templateDetails');
64
+ case types.CLEAR_ASSET:
65
+ return state
66
+ .delete('uploadedAssetData');
67
+ case types.GET_LINE_TEMPLATES_LIST_REQUEST:
68
+ return state
69
+ .set('fetchingDefaultTemplates', true);
70
+ case types.GET_LINE_TEMPLATES_LIST_SUCCESS:
71
+ return state
72
+ .set('fetchingDefaultTemplates', false)
73
+ .set('lineTemplates', fromJS(action.data));
74
+ case types.GET_LINE_TEMPLATES_LIST_FAILURE:
75
+ return state
76
+ .set('fetchingDefaultTemplates', false)
77
+ .set('errorFetchingDefaultTempalte', true);
78
+ default:
79
+ return state;
80
+ }
81
+ }
82
+
83
+ export default editReducer;
@@ -0,0 +1,81 @@
1
+ import { call, put, takeLatest, take, cancel } from 'redux-saga/effects';
2
+ import { LOCATION_CHANGE } from 'react-router-redux';
3
+ // import { schema, normalize } from 'normalizr';
4
+ import * as Api from '../../../services/api';
5
+ import * as types from './constants';
6
+
7
+ // Individual exports for testing
8
+ export function* editTemplate(template) {
9
+ let errorMsg;
10
+ try {
11
+ console.log('saga editTemplate line', template);
12
+ const result = yield call(Api.createLineTemplate, template);
13
+ console.log('saga editTemplate success line', result);
14
+ if (result.message || result.status.code === 500) {
15
+ errorMsg = result.message;
16
+ }
17
+ yield put({ type: types.EDIT_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
18
+ } catch (error) {
19
+ yield put({ type: types.EDIT_TEMPLATE_FAILURE, error, errorMsg });
20
+ }
21
+ }
22
+
23
+ export function* getTemplateDetails(id) {
24
+ try {
25
+ console.log('saga get Template details line', id);
26
+ const result = yield call(Api.getTemplateDetails, id);
27
+ // const sidebar = result.response.sidebar;
28
+ yield put({ type: types.GET_TEMPLATE_DETAILS_SUCCESS, data: result.response });
29
+ } catch (error) {
30
+ yield put({ type: types.GET_TEMPLATE_DETAILS_FAILURE, error });
31
+ }
32
+ }
33
+
34
+ export function* uploadAsset(file, assetType, fileParams, mode) {
35
+ try {
36
+ const result = yield call(Api.uploadFile, file, assetType, fileParams, mode);
37
+ yield put({ type: types.UPLOAD_ASSET_SUCCESS, data: result.response.asset, statusCode: result.status ? result.status.code : '' });
38
+ } catch (error) {
39
+ yield put({ type: types.UPLOAD_ASSET_FAILURE, error });
40
+ }
41
+ }
42
+
43
+ export function* getLineTemplatesList(params) {
44
+ try {
45
+ console.log('Saga param line ', params.channel, params.queryParams);
46
+ const result = yield call(Api.getAllTemplates, {channel: params.channel, queryParams: params.queryParams});
47
+ yield put({ type: types.GET_LINE_TEMPLATES_LIST_SUCCESS, data: result.response.templates, templateData: result.response.mapped});
48
+ } catch (error) {
49
+ yield put({ type: types.GET_LINE_TEMPLATES_LIST_FAILURE, error });
50
+ }
51
+ }
52
+
53
+ function* watchEditTemplate() {
54
+ const watcher = yield takeLatest(types.EDIT_TEMPLATE_REQUEST, editTemplate);
55
+ yield take(LOCATION_CHANGE);
56
+ yield cancel(watcher);
57
+ }
58
+
59
+ function* watchGetTemplateDetails() {
60
+ const watcher = yield takeLatest(types.GET_TEMPLATE_DETAILS_REQUEST, getTemplateDetails);
61
+ yield take(LOCATION_CHANGE);
62
+ yield cancel(watcher);
63
+ }
64
+
65
+ function* watchUploadAsset() {
66
+ const watcher = yield takeLatest(types.UPLOAD_ASSET_REQUEST, uploadAsset);
67
+ yield take(LOCATION_CHANGE);
68
+ yield cancel(watcher);
69
+ }
70
+
71
+ function* watchLineTemplatesList() {
72
+ const watcher = yield takeLatest(types.GET_LINE_TEMPLATES_LIST_REQUEST, getLineTemplatesList);
73
+ yield take(LOCATION_CHANGE);
74
+ yield cancel(watcher);
75
+ }
76
+
77
+ // All sagas to be loaded
78
+ export default [
79
+ watchEditTemplate, watchGetTemplateDetails, watchLineTemplatesList,
80
+ watchUploadAsset,
81
+ ];
@@ -0,0 +1,29 @@
1
+ import { createSelector } from 'reselect';
2
+
3
+ /**
4
+ * Direct selector to the create state domain
5
+ */
6
+ const selectLineEditDomain = () => (state) => state.get('edit');
7
+
8
+ /**
9
+ * Other specific selectors
10
+ */
11
+
12
+
13
+ /**
14
+ * Default selector used by Create
15
+ */
16
+
17
+ const makeSelectEdit = () => createSelector(
18
+ selectLineEditDomain(),
19
+ (substate) => substate.toJS()
20
+ );
21
+ const makeSelectEditResponse = () => createSelector(
22
+ selectLineEditDomain(), (dimensionState) => dimensionState.get('editResponse')
23
+ );
24
+ const makeSelectTemplateDetailsResponse = () => createSelector(
25
+ selectLineEditDomain(), (dimensionState) => dimensionState.get('templateDetails')
26
+ );
27
+ export {
28
+ makeSelectEdit, makeSelectEditResponse, makeSelectTemplateDetailsResponse,
29
+ };
@@ -0,0 +1,18 @@
1
+
2
+ import {
3
+ defaultAction,
4
+ } from '../actions';
5
+ import {
6
+ DEFAULT_ACTION,
7
+ } from '../constants';
8
+
9
+ describe('Create actions', () => {
10
+ describe('Default Action', () => {
11
+ it('has a type of DEFAULT_ACTION', () => {
12
+ const expected = {
13
+ type: DEFAULT_ACTION,
14
+ };
15
+ expect(defaultAction()).toEqual(expected);
16
+ });
17
+ });
18
+ });
@@ -0,0 +1,10 @@
1
+ // import React from 'react';
2
+ // import { shallow } from 'enzyme';
3
+
4
+ // import { Create } from '../index';
5
+
6
+ describe('<Create />', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(false);
9
+ });
10
+ });
@@ -0,0 +1,9 @@
1
+
2
+ import { fromJS } from 'immutable';
3
+ import createReducer from '../reducer';
4
+
5
+ describe('createReducer', () => {
6
+ it('returns the initial state', () => {
7
+ expect(createReducer(undefined, {})).toEqual(fromJS({}));
8
+ });
9
+ });
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Test sagas
3
+ */
4
+
5
+ /* eslint-disable redux-saga/yield-effects */
6
+ // import { take, call, put, select } from 'redux-saga/effects';
7
+ // import { defaultSaga } from '../sagas';
8
+
9
+ // const generator = defaultSaga();
10
+
11
+ describe('defaultSaga Saga', () => {
12
+ it('Expect to have unit tests specified', () => {
13
+ expect(true).toEqual(false);
14
+ });
15
+ });
@@ -0,0 +1,10 @@
1
+ // import { fromJS } from 'immutable';
2
+ // import { makeSelectCreateDomain } from '../selectors';
3
+
4
+ // const selector = makeSelectCreateDomain();
5
+
6
+ describe('makeSelectCreateDomain', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(false);
9
+ });
10
+ });
@@ -46,63 +46,6 @@
46
46
  }
47
47
  }
48
48
  }
49
- .VIBER {
50
- &.cap-custom-card{
51
- height: 241px;
52
- .ant-card-body {
53
- padding:0px 24px 0px;
54
- .button-content {
55
- .ant-card-meta-description {
56
- min-width: 108px;
57
- max-width: 160px;
58
- height: 24px;
59
- padding: 1px 23px 2px 22px;
60
- border-radius: 16px;
61
- font-size: 14px;
62
- font-weight: 500;
63
- background-color:$CAP_PURPLE01;
64
- color:$CAP_WHITE;
65
- text-align:center;
66
- }
67
- }
68
- .truncate-text{
69
- .ant-card-meta-description{
70
- display: -webkit-box;
71
- -webkit-line-clamp: 9;
72
- -webkit-box-orient: vertical;
73
- }
74
- }
75
- .truncate-text-with-button{
76
- .ant-card-meta-description{
77
- -webkit-line-clamp: 8;
78
- }
79
- }
80
- .truncate-text-with-image{
81
- .ant-card-meta-description{
82
- -webkit-line-clamp: 2;
83
- }
84
- }
85
-
86
- }
87
-
88
- &.no-image .ant-card-meta {
89
- .ant-card-meta-description {
90
- word-wrap: break-word;
91
- }
92
- }
93
-
94
-
95
- &.carousel-img-section {
96
- .ant-card-body {
97
- padding: $CAP_SPACE_24 0;
98
- }
99
- .ant-card-meta {
100
- padding: 0;
101
- }
102
- }
103
- }
104
-
105
- }
106
49
  }
107
50
  }
108
51
 
@@ -30,8 +30,6 @@ import { makeSelectEbill as makeSelectCreateEbill } from '../Ebill/selectors';
30
30
  import { makeSelectEmail as makeSelectCreateEmail } from '../Email/selectors';
31
31
  import { makeSelectEdit } from '../Sms/Edit/selectors';
32
32
  import { makeSelectLine } from '../Line/Container/selectors';
33
- import { makeSelectViber } from '../Viber/selectors';
34
-
35
33
  import { UserIsAuthenticated } from '../../utils/authWrapper';
36
34
  import messages from './messages';
37
35
  import {checkUnicode} from '../../utils/smsCharCountV2';
@@ -42,8 +40,6 @@ import * as smsEditActions from '../Sms/Edit/actions';
42
40
  import * as ebillActions from '../Ebill/actions';
43
41
  import * as emailActions from '../Email/actions';
44
42
  import * as lineActions from '../Line/Container/actions';
45
- import * as viberActions from '../Viber/actions';
46
-
47
43
  import CardGrid from '../../v2Components/CardGrid';
48
44
  import config from '../../config/app';
49
45
  import './_templates.scss';
@@ -55,7 +51,7 @@ import EmailPreview from '../../v2Components/EmailPreview';
55
51
  import CreativesContainer from '../CreativesContainer';
56
52
  import WechatRichmediaTemplatePreview from '../../v2Components/TemplatePreview/WechatRichmediaTemplatePreview';
57
53
  import { CHANNEL_CREATE_TRACK_MAPPING, CHANNEL_EDIT_TRACK_MAPPING } from '../App/constants';
58
- import { MOBILE_PUSH, WECHAT, SMS, EMAIL, EBILL, LINE, VIBER } from '../CreativesContainer/constants';
54
+ import { MOBILE_PUSH, WECHAT, SMS, EMAIL, EBILL, LINE } from '../CreativesContainer/constants';
59
55
  import emailIllustration from '../Assets/images/emailIllustration.svg';
60
56
  import smsIllustration from '../Assets/images/smsIllustration.svg';
61
57
  import pushIllustration from '../Assets/images/pushIllustration.svg';
@@ -165,9 +161,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
165
161
  case EBILL:
166
162
  channel = 'Ebill';
167
163
  break;
168
- case VIBER:
169
- channel = 'Viber';
170
- break;
171
164
  case LINE:
172
165
  channel = "Line";
173
166
  if (!this.props.isFullMode) {
@@ -192,7 +185,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
192
185
  if (this.props.location.query.type === 'embedded') {
193
186
  this.props.actions.resetAccount();
194
187
  }
195
- if ((this.state.channel && (this.state.channel.toLowerCase() === 'line' || this.state.channel.toLowerCase() === 'viber' || this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill')) || ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && !isEmpty(this.props.Templates.selectedWeChatAccount))) {
188
+ if ((this.state.channel && (this.state.channel.toLowerCase() === 'line' || this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill')) || ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && !isEmpty(this.props.Templates.selectedWeChatAccount))) {
196
189
  const queryParams = {
197
190
  // name: this.state.searchText,
198
191
  // sortBy: this.state.sortBy,
@@ -252,12 +245,9 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
252
245
  this.setState({defaultAccount: true});
253
246
  nextProps.actions.getWeCrmAccounts(channel);
254
247
  }
255
- } else if (nextProps.route.name.toLowerCase() === 'viber') {
256
- channel = 'Viber';
257
248
  }
258
-
259
249
  this.setState({ channel }, () => {
260
- if ((this.state.channel.toLowerCase() === 'line' || this.state.channel.toLowerCase() === 'viber' || this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill') || (this.state.channel.toLowerCase() === 'wechat' && !isEmpty(nextProps.Templates.selectedWeChatAccount))) {
250
+ if ((this.state.channel.toLowerCase() === 'line' || this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill') || (this.state.channel.toLowerCase() === 'wechat' && !isEmpty(nextProps.Templates.selectedWeChatAccount))) {
261
251
  if (this.state.channel.toLowerCase() === 'wechat' && !isEmpty(nextProps.Templates.selectedWeChatAccount)) {
262
252
  params.wecrmId = (nextProps.Templates.selectedWeChatAccount.configs || {}).wecrm_app_id;
263
253
  params.wecrmToken = (nextProps.Templates.selectedWeChatAccount.configs || {}).wecrm_token;
@@ -346,8 +336,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
346
336
  this.props.ebillActions.clearCreateResponse();
347
337
  } else if (this.state.channel.toLowerCase() === "line") {
348
338
  this.props.lineActions.clearCreateResponse();
349
- } else if (this.state.channel.toLowerCase() === "viber") {
350
- this.props.viberActions.clearCreateResponse();
351
339
  }
352
340
  }
353
341
  }
@@ -663,7 +651,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
663
651
  <video height="279">
664
652
  <source src={originalVideoContentUrl} type="video/mp4" />
665
653
  </video>
666
- );
654
+ )
667
655
  }
668
656
  if (carouselTemplate) {
669
657
  const carouselContent = get(carouselTemplate, 'columns', [{}]).map(({ imageUrl, action: { label: actionLabel } = {} }) => ({ imageUrl, actionLabel }) );
@@ -689,26 +677,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
689
677
  }
690
678
  break;
691
679
  }
692
- case VIBER: {
693
- const {
694
- content: {
695
- viber: {
696
- text = '',
697
- imageURL = '',
698
- buttonURL = '',
699
- buttonText = '',
700
- } = {},
701
- } = {},
702
- } = template.versions.base;
703
- templateData.content = text;
704
- if (imageURL) {
705
- templateData.url = imageURL;
706
- }
707
- if (buttonURL && buttonText) {
708
- templateData.buttonText = buttonText;
709
- }
710
- break;
711
- }
712
680
  default:
713
681
  templateData.content = "";
714
682
  }
@@ -1206,15 +1174,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1206
1174
  this.props.lineActions.clearCreateResponse();
1207
1175
  }
1208
1176
  });
1209
- } else if (this.state.channel.toLowerCase() === "viber") {
1210
- this.props.viberActions.createTemplate(duplicateObj, (response) => {
1211
- if (response && response.templateId) {
1212
- const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
1213
- CapNotification.success({key: 'duplicateSucess', message});
1214
- this.getAllTemplates({params, resetPage: true});
1215
- this.props.viberActions.clearCreateResponse();
1216
- }
1217
- });
1218
1177
  }
1219
1178
  }
1220
1179
 
@@ -1296,9 +1255,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1296
1255
  pathName += `/${options.account}`;
1297
1256
  }
1298
1257
  }
1299
- if (this.state.channel.toLowerCase() === 'viber') {
1300
- pathName = `/viber/edit/${id}/`;
1301
- }
1302
1258
  if (this.state.channel.toUpperCase() === WECHAT) {
1303
1259
  if (get(template, 'definition.msgcontent', '') === "RICH_MEDIA_WECHAT") {
1304
1260
  pathName = `/wechat/richmedia/edit/${id}`;
@@ -1597,7 +1553,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1597
1553
  } = Templates;
1598
1554
  const lineLoader = (getAllTemplatesInProgress && this.state.channel.toLowerCase() === 'line');
1599
1555
  const smsLoader = (getAllTemplatesInProgress && this.state.channel.toLowerCase() === 'sms');
1600
- const viberLoader = (getAllTemplatesInProgress && this.state.channel.toLowerCase() === 'viber');
1601
1556
  const wechatLoader = (((this.state.selectedAccount !== '' && getAllTemplatesInProgress) || (fetchingWeCrmAccounts)) && this.state.channel.toLowerCase() === 'wechat');
1602
1557
  const mobilePushLoader = (((getAllTemplatesInProgress) || (fetchingWeCrmAccounts)) && this.state.channel.toLowerCase() === 'mobilepush');
1603
1558
  const emailLoader = (
@@ -1611,8 +1566,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1611
1566
  (emailLoader !== undefined ? emailLoader : false) ||
1612
1567
  (ebillLoader !== undefined ? ebillLoader : false) ||
1613
1568
  (mobilePushLoader !== undefined ? mobilePushLoader : false) ||
1614
- (lineLoader !== undefined ? lineLoader : false) ||
1615
- (viberLoader !== undefined ? viberLoader : false);
1569
+ (lineLoader !== undefined ? lineLoader : false);
1616
1570
  return isLoading;
1617
1571
  }
1618
1572
  getChannelTypeIllustrationInfo = (type) => {
@@ -2023,7 +1977,6 @@ Templates.propTypes = {
2023
1977
  isFullMode: PropTypes.bool,
2024
1978
  handlePeviewTemplate: PropTypes.func,
2025
1979
  router: PropTypes.object,
2026
- viberActions: PropTypes.object,
2027
1980
  };
2028
1981
 
2029
1982
  const mapStateToProps = createStructuredSelector({
@@ -2036,7 +1989,6 @@ const mapStateToProps = createStructuredSelector({
2036
1989
  EmailCreate: makeSelectCreateEmail(),
2037
1990
  Global: makeSelectAuthenticated(),
2038
1991
  Line: makeSelectLine(),
2039
- Viber: makeSelectViber(),
2040
1992
  });
2041
1993
 
2042
1994
  function mapDispatchToProps(dispatch) {
@@ -2049,7 +2001,6 @@ function mapDispatchToProps(dispatch) {
2049
2001
  emailActions: bindActionCreators(emailActions, dispatch),
2050
2002
  globalActions: bindActionCreators(globalActions, dispatch),
2051
2003
  lineActions: bindActionCreators(lineActions, dispatch),
2052
- viberActions: bindActionCreators(viberActions, dispatch),
2053
2004
  };
2054
2005
  }
2055
2006