@capillarytech/creatives-library 6.14.1 → 6.15.1

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 (50) hide show
  1. package/app.js +5 -2
  2. package/config/app.js +0 -2
  3. package/index.js +0 -7
  4. package/package.json +1 -1
  5. package/reducers.js +1 -2
  6. package/services/api.js +0 -7
  7. package/utils/common.js +0 -118
  8. package/utils/ignoredErrorMessages.js +4 -0
  9. package/v2Components/FormBuilder/index.js +4 -2
  10. package/v2Containers/App/constants.js +1 -1
  11. package/v2Containers/CreativesContainer/SlideBoxContent.js +1 -17
  12. package/v2Containers/CreativesContainer/SlideBoxHeader.js +0 -2
  13. package/v2Containers/CreativesContainer/constants.js +0 -2
  14. package/v2Containers/CreativesContainer/index.js +0 -8
  15. package/v2Containers/Line/Create/_lineCreate.scss +64 -0
  16. package/v2Containers/Line/Create/actions.js +94 -0
  17. package/v2Containers/Line/Create/constants.js +43 -0
  18. package/v2Containers/Line/Create/index.js +1112 -0
  19. package/v2Containers/Line/Create/initialSchema.js +378 -0
  20. package/v2Containers/Line/Create/messages.js +229 -0
  21. package/v2Containers/Line/Create/reducer.js +99 -0
  22. package/v2Containers/Line/Create/sagas.js +113 -0
  23. package/v2Containers/Line/Create/selectors.js +30 -0
  24. package/v2Containers/Line/CreateWrapper/constants.js +2 -0
  25. package/v2Containers/Line/CreateWrapper/index.js +117 -0
  26. package/v2Containers/Line/CreateWrapper/messages.js +55 -0
  27. package/v2Containers/Line/Edit/_lineEdit.scss +23 -0
  28. package/v2Containers/Line/Edit/actions.js +79 -0
  29. package/v2Containers/Line/Edit/constants.js +27 -0
  30. package/v2Containers/Line/Edit/index.js +1051 -0
  31. package/v2Containers/Line/Edit/messages.js +173 -0
  32. package/v2Containers/Line/Edit/reducer.js +83 -0
  33. package/v2Containers/Line/Edit/sagas.js +81 -0
  34. package/v2Containers/Line/Edit/selectors.js +29 -0
  35. package/v2Containers/Line/Edit/tests/actions.test.js +18 -0
  36. package/v2Containers/Line/Edit/tests/index.test.js +10 -0
  37. package/v2Containers/Line/Edit/tests/reducer.test.js +9 -0
  38. package/v2Containers/Line/Edit/tests/sagas.test.js +15 -0
  39. package/v2Containers/Line/Edit/tests/selectors.test.js +10 -0
  40. package/v2Containers/TemplatesV2/index.js +0 -13
  41. package/v2Containers/TemplatesV2/messages.js +0 -4
  42. package/v2Containers/WeChat/MapTemplates/index.js +1 -1
  43. package/v2Containers/FTP/_FTP.scss +0 -92
  44. package/v2Containers/FTP/actions.js +0 -7
  45. package/v2Containers/FTP/constants.js +0 -3
  46. package/v2Containers/FTP/index.js +0 -517
  47. package/v2Containers/FTP/messages.js +0 -60
  48. package/v2Containers/FTP/reducer.js +0 -32
  49. package/v2Containers/FTP/sagas.js +0 -26
  50. package/v2Containers/FTP/selectors.js +0 -20
@@ -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
+ });
@@ -23,7 +23,6 @@ import Templates from '../Templates';
23
23
  import CallTask from '../CallTask';
24
24
  import Facebook from '../Facebook';
25
25
  import Line from '../Line/Container';
26
- import FTP from '../FTP';
27
26
  import Gallery from '../Assets/Gallery';
28
27
  import withStyles from '../../hoc/withStyles';
29
28
  import styles, { CapTabStyle } from './TemplatesV2.style';
@@ -70,10 +69,6 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
70
69
  if (!channelsToHide.includes('facebook')) {
71
70
  filteredPanes.push({content: <div></div>, tab: intl.formatMessage(messages.facebook), key: 'facebook'});
72
71
  }
73
- if (!channelsToHide.includes('FTP')) {
74
- filteredPanes.push({content: <></>, tab: intl.formatMessage(messages.FTP), key: 'ftp'});
75
- defaultChannel = 'FTP';
76
- }
77
72
  }
78
73
 
79
74
  filteredPanes = filteredPanes.map( (pane) => {
@@ -165,10 +160,6 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
165
160
  />
166
161
  )
167
162
 
168
- getFTPComponent = () => (
169
- <FTP mode={this.props.FTPMode} {...this.props} />
170
- );
171
-
172
163
  getTemplatesComponent(channel) {
173
164
  // const templates = this.props.Templates[`${channel}Templates`];
174
165
  let query = {};
@@ -177,9 +168,6 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
177
168
  if (channel === 'line') {
178
169
  return this.getLineComponent();
179
170
  }
180
- if (channel === 'ftp') {
181
- return this.getFTPComponent();
182
- }
183
171
  }
184
172
  const location = {pathname: `/${channel}`, search: '', query};
185
173
  switch (channel) {
@@ -278,7 +266,6 @@ TemplatesV2.propTypes = {
278
266
  messageDetails: PropTypes.object,
279
267
  cap: PropTypes.object,
280
268
  authData: PropTypes.object,
281
- FTPMode: PropTypes.string,
282
269
  };
283
270
 
284
271
  TemplatesV2.defaultProps = {
@@ -34,10 +34,6 @@ export default defineMessages({
34
34
  id: 'creatives.containersV2.TemplatesV2.email',
35
35
  defaultMessage: 'Email',
36
36
  },
37
- FTP: {
38
- id: 'creatives.containersV2.TemplatesV2.FTP',
39
- defaultMessage: 'FTP',
40
- },
41
37
  pushNotification: {
42
38
  id: 'creatives.containersV2.TemplatesV2.pushNotification',
43
39
  defaultMessage: 'Push notification',
@@ -876,7 +876,7 @@ export class MapTemplates extends React.Component { // eslint-disable-line react
876
876
  }
877
877
 
878
878
  getMappedEvent(id, event) {
879
- return this.state.map[id][event];
879
+ return (this.state.map[id] && this.state.map[id][event] ? this.state.map[id][event] : () => {});
880
880
  }
881
881
 
882
882
  handleOnTagsContextChange = (data) => {
@@ -1,92 +0,0 @@
1
- @import '~@capillarytech/cap-ui-library/styles/_variables.scss';
2
-
3
- .selected-server-name{
4
- margin-top: $CAP_SPACE_16;
5
- .server-avtar, .server-name, .server-change{
6
- display: inline-block;
7
- }
8
- .server-change{
9
- margin-left: $CAP_SPACE_24;
10
- }
11
- }
12
- .select-server{
13
- display: inline-block;
14
- }
15
- .configure-csv-container{
16
- margin-top: $CAP_SPACE_32;
17
- .configure-csv, .add-column{
18
- display: inline-block;
19
- }
20
- }
21
- .column-selection-container{
22
- width: 200px;
23
- display: inline-block;
24
- margin: $CAP_SPACE_04;
25
- }
26
- .column-selection-container-cid{
27
- width: 120px;
28
- display: inline-block;
29
- }
30
- .select-csv-column{
31
- width: 80%;
32
- border: 1px solid #d9d9d9 !important;
33
- border-radius: 4px !important;
34
- display: inline-block;
35
- }
36
- .select-csv-col-dropdown ul{
37
- padding: 0 $CAP_SPACE_04;
38
- }
39
- .select-csv-col-dropdown ul li{
40
- margin: $CAP_SPACE_08 0 !important;
41
- padding: 0;
42
- white-space: nowrap;
43
- list-style: none;
44
- outline: 0;
45
- }
46
- .select-csv-col-dropdown {
47
- .ant-select-tree-switcher-noop, .ant-select-tree-node-content-wrapper{
48
- display: inline-block !important;
49
- margin: 0 !important;
50
- }
51
- .ant-select-tree-child-tree-open {
52
- display: block !important;
53
- padding: 0 0 0 $CAP_SPACE_16 !important;
54
- }
55
- }
56
- .remove-csv-column{
57
- display: inline-block;
58
- margin-left: $CAP_SPACE_08;
59
- }
60
- .scrollable-section{
61
- height: calc(100vh - 220px);
62
- overflow-y: auto;
63
- }
64
- .FTP-tagList {
65
- position: absolute;
66
- right: 0;
67
- top: -10px;
68
- }
69
- .ftp-message-container{
70
- margin-top: $CAP_SPACE_32;
71
- .message-content-title{
72
- margin-top: $CAP_SPACE_24;
73
- position: relative;
74
- }
75
- }
76
-
77
- .ftp-preview-container{
78
- .ftp-preview-message-title{
79
- margin-top: $CAP_SPACE_16;
80
- }
81
- .ftp-preview-message-content{
82
- max-width: 450px;
83
- margin-top: 4px;
84
- color: $FONT_COLOR_02;
85
- }
86
- .ftp-preview-data-title{
87
- margin-top: $CAP_SPACE_40;
88
- }
89
- .ftp-preview-data-col-container{
90
- margin-top: $CAP_SPACE_16;
91
- }
92
- }
@@ -1,7 +0,0 @@
1
- import * as types from './constants';
2
-
3
- export function getFTPServers() {
4
- return {
5
- type: types.GET_FTP_SERVERS_REQUEST,
6
- };
7
- }
@@ -1,3 +0,0 @@
1
- export const GET_FTP_SERVERS_REQUEST = 'app/v2Containers/FTP/GET_FTP_SERVERS_REQUEST';
2
- export const GET_FTP_SERVERS_SUCCESS = 'app/v2Containers/FTP/GET_FTP_SERVERS_SUCCESS';
3
- export const GET_FTP_SERVERS_FAILURE = 'app/v2Containers/FTP/GET_FTP_SERVERS_FAILURE';