@capillarytech/creatives-library 6.10.1 → 6.10.3

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 (38) hide show
  1. package/components/CapTagList/index.js +1 -1
  2. package/components/Edmeditor/index.js +1 -1
  3. package/components/FormBuilder/index.js +0 -1
  4. package/containers/TagList/index.js +3 -3
  5. package/index.html +3 -0
  6. package/package.json +2 -1
  7. package/services/api.js +19 -4
  8. package/translations/en.json +117 -4
  9. package/translations/zh.json +113 -0
  10. package/v2Components/BeeEditor/index.js +263 -0
  11. package/v2Components/BeeEditor/index.scss +11 -0
  12. package/v2Components/BeeEditor/messages.js +71 -0
  13. package/v2Components/BeeEditor/tests/index.test.js +10 -0
  14. package/v2Components/CapTagList/index.js +55 -26
  15. package/v2Components/CmsTemplatesComponent/index.js +4 -4
  16. package/v2Components/Edmeditor/index.js +1 -1
  17. package/v2Components/EmailPreview/_emailPreview.scss +2 -2
  18. package/v2Components/FormBuilder/index.js +78 -43
  19. package/v2Containers/App/constants.js +1 -0
  20. package/v2Containers/CreativesContainer/SlideBoxFooter.js +51 -51
  21. package/v2Containers/CreativesContainer/index.js +7 -2
  22. package/v2Containers/Email/constants.js +1 -0
  23. package/v2Containers/Email/index.js +170 -116
  24. package/v2Containers/Email/initialSchema.js +18 -3
  25. package/v2Containers/Email/sagas.js +2 -2
  26. package/v2Containers/Email/selectors.js +5 -0
  27. package/v2Containers/EmailWrapper/index.js +19 -3
  28. package/v2Containers/Line/Container/Image/index.js +2 -1
  29. package/v2Containers/Line/Container/ImageCarousel/index.js +1 -1
  30. package/v2Containers/Line/Container/ImageMap/index.js +20 -5
  31. package/v2Containers/TagList/index.js +13 -6
  32. package/v2Containers/Templates/actions.js +122 -117
  33. package/v2Containers/Templates/constants.js +49 -47
  34. package/v2Containers/Templates/index.js +36 -20
  35. package/v2Containers/Templates/messages.js +8 -0
  36. package/v2Containers/Templates/reducer.js +153 -145
  37. package/v2Containers/Templates/sagas.js +179 -179
  38. package/v2Containers/Templates/selectors.js +19 -1
@@ -208,10 +208,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
208
208
  queryParams.perPage = this.state.perPageLimit;
209
209
  const channel = this.state.channel;
210
210
  this.props.actions.getAllTemplates(channel, queryParams);
211
- //this.getAllTemplates({});
212
- // if (this.state.channel.toLowerCase() === "email") {
213
- // this.props.actions.getEdmDefaultTemplates();
214
- // }
215
211
  }
216
212
 
217
213
  window.addEventListener("message", this.handleFrameTasks);
@@ -236,7 +232,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
236
232
  nextProps.actions.getWeCrmAccounts();
237
233
  } else if (nextProps.route.name.toLowerCase() === 'email') {
238
234
  channel = 'Email';
239
- // this.props.actions.getEdmDefaultTemplates();
240
235
  } else if (nextProps.route.name.toLowerCase() === "mobilepush") {
241
236
  this.setState({defaultAccount: true});
242
237
  channel = "mobilepush";
@@ -654,7 +649,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
654
649
  {
655
650
  carouselContent.map(({
656
651
  imageUrl,
657
- actionLabel
652
+ actionLabel,
658
653
  }) => (
659
654
  <img
660
655
  width={208}
@@ -1001,7 +996,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1001
996
  break;
1002
997
  }
1003
998
  };
1004
-
999
+
1005
1000
  createTemplate(ev) {
1006
1001
  const type = this.props.location.query.type;
1007
1002
  const module = this.props.location.query.module ? this.props.location.query.module : 'default';
@@ -1120,7 +1115,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1120
1115
  toggleEdmEmailTemplateSelection = () => {
1121
1116
  this.setState( (prevState) => ({
1122
1117
  showEdmEmailTemplates: !prevState.showEdmEmailTemplates}), () => {
1123
- this.props.actions.getEdmDefaultTemplates();
1118
+ this.props.actions.getDefaultBeeTemplates();
1124
1119
  });
1125
1120
  };
1126
1121
 
@@ -1415,7 +1410,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1415
1410
  //content = template.versions.base.messages[0].Text;
1416
1411
  const lineContent = template.versions.base.content;
1417
1412
  content = {
1418
- bodyText:lineContent && lineContent.messages[0].text ? lineContent.messages[0].text : '',
1413
+ bodyText: lineContent && lineContent.messages[0].text ? lineContent.messages[0].text : '',
1419
1414
  bodyImage: lineContent && lineContent.messages[0].originalContentUrl ? lineContent.messages[0].originalContentUrl : '',
1420
1415
  };
1421
1416
  const modeType = lineContent && lineContent.messages[0].type;
@@ -1538,12 +1533,23 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1538
1533
 
1539
1534
 
1540
1535
  isLoading = () => {
1541
- const lineLoader = (this.props.Templates.getAllTemplatesInProgress && this.state.channel.toLowerCase() === 'line');
1542
- const smsLoader = (this.props.Templates.getAllTemplatesInProgress && this.state.channel.toLowerCase() === 'sms');
1543
- const wechatLoader = (((this.state.selectedAccount !== '' && this.props.Templates.getAllTemplatesInProgress) || (this.props.Templates.fetchingWeCrmAccounts)) && this.state.channel.toLowerCase() === 'wechat');
1544
- const mobilePushLoader = (((this.props.Templates.getAllTemplatesInProgress) || (this.props.Templates.fetchingWeCrmAccounts)) && this.state.channel.toLowerCase() === 'mobilepush');
1545
- const emailLoader = ((this.props.Templates.getAllTemplatesInProgress || this.props.Templates.sendingFile) && this.state.channel.toLowerCase() === 'email');
1546
- const ebillLoader = ((this.props.Templates.getAllTemplatesInProgress || this.props.Templates.sendingFile) && this.state.channel.toLowerCase() === 'ebill');
1536
+ const { EmailCreate, Templates } = this.props;
1537
+ const {
1538
+ getAllTemplatesInProgress,
1539
+ deleteTemplateInProgress,
1540
+ fetchingWeCrmAccounts,
1541
+ sendingFile,
1542
+ } = Templates;
1543
+ const lineLoader = (getAllTemplatesInProgress && this.state.channel.toLowerCase() === 'line');
1544
+ const smsLoader = (getAllTemplatesInProgress && this.state.channel.toLowerCase() === 'sms');
1545
+ const wechatLoader = (((this.state.selectedAccount !== '' && getAllTemplatesInProgress) || (fetchingWeCrmAccounts)) && this.state.channel.toLowerCase() === 'wechat');
1546
+ const mobilePushLoader = (((getAllTemplatesInProgress) || (fetchingWeCrmAccounts)) && this.state.channel.toLowerCase() === 'mobilepush');
1547
+ const emailLoader = (
1548
+ (getAllTemplatesInProgress ||
1549
+ sendingFile ||
1550
+ deleteTemplateInProgress ||
1551
+ EmailCreate.duplicateTemplateInProgress) && this.state.channel.toLowerCase() === 'email');
1552
+ const ebillLoader = ((getAllTemplatesInProgress || sendingFile) && this.state.channel.toLowerCase() === 'ebill');
1547
1553
  const isLoading = ((wechatLoader !== undefined) ? wechatLoader : false) ||
1548
1554
  (smsLoader !== undefined ? smsLoader : false) ||
1549
1555
  (emailLoader !== undefined ? emailLoader : false) ||
@@ -1801,7 +1807,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1801
1807
  </CapRadio.CapRadioGroup>
1802
1808
  }
1803
1809
  {
1804
- channel.toUpperCase() === LINE &&
1810
+ channel.toUpperCase() === LINE &&
1805
1811
  isFullMode
1806
1812
  ? (
1807
1813
  <CapRadio.CapRadioGroup className="line-filters" defaultValue={lineFilter} onChange={this.setLineFilter}>
@@ -1831,9 +1837,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1831
1837
  }
1832
1838
  </CapRadio.CapRadioGroup>
1833
1839
  )
1834
- : () => {
1835
- return null;
1836
- }
1840
+ : () => null
1837
1841
  }
1838
1842
  <div style={{display: "flex", justifyContent: "space-between", alignItems: 'center'}}>
1839
1843
  {isfilterContentVisisble && !isWechatEmbedded && <CapButton
@@ -1858,7 +1862,19 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1858
1862
  const creativesParams = this.getCreativesParams();
1859
1863
  const templates = this.props.TemplatesList || [];
1860
1864
  const {route} = this.props;
1861
- const loadingTip = (this.props.Templates.sendingFile && (this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill')) ? this.props.intl.formatMessage(messages.uploadingFile) : this.props.intl.formatMessage(messages.gettingAllTemplates);
1865
+ const loadingTipMap = {
1866
+ sendingFile: 'uploadingFile',
1867
+ deleteTemplateInProgress: 'deletingTemplate',
1868
+ duplicateTemplateInProgress: 'duplicatingTemplate',
1869
+ };
1870
+ const { sendingFile, deleteTemplateInProgress } = this.props.Templates;
1871
+ const loadingTipIntl =
1872
+ ((['email', 'ebill'].includes(this.state.channel.toLowerCase() === 'email')) && sendingFile && 'sendingFile') ||
1873
+ (deleteTemplateInProgress && 'deletingTemplate') ||
1874
+ (this.props.EmailCreate.duplicateTemplateInProgress && 'duplicatingTemplate');
1875
+
1876
+ const loadingTip = messages[loadingTipIntl] ? this.props.intl.formatMessage(messages[loadingTipIntl]) : this.props.intl.formatMessage(messages.gettingAllTemplates);
1877
+
1862
1878
  return (
1863
1879
  <>
1864
1880
  {activeMode === ACCOUNT_CHANGE_MODE && this.renderAccountSelection()}
@@ -354,4 +354,12 @@ export default defineMessages({
354
354
  id: `${scope}.richMediaTemplates`,
355
355
  defaultMessage: 'Rich media templates',
356
356
  },
357
+ deletingTemplate: {
358
+ id: `${scope}.deletingTemplate`,
359
+ defaultMessage: 'Deleting template...',
360
+ },
361
+ duplicatingTemplate: {
362
+ id: `${scope}.duplicatingTemplate`,
363
+ defaultMessage: 'Duplicating template...'
364
+ },
357
365
  });
@@ -1,145 +1,153 @@
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
- getAllTemplatesInProgress: false,
12
- templates: [],
13
- deleteResponse: {},
14
- deleteTemplateInProgress: false,
15
- templateError: {},
16
- });
17
-
18
- function templatesReducer(state = initialState, action) {
19
- switch (action.type) {
20
- case types.DEFAULT_ACTION:
21
- return state;
22
- case types.GET_ALL_TEMPLATES_REQUEST:
23
- return state.set('getAllTemplatesInProgress', true).set('templateError', {});
24
- case types.GET_ALL_TEMPLATES_SUCCESS:
25
- if (action.isReset) {
26
- return state.set('getAllTemplatesInProgress', false)
27
- .set('templates', action.data ? action.data.templates : [])
28
- .set('isSearch', action.data ? action.data.search : false)
29
- .set('weCRMtemplates', action.weCRMTemplate ? action.weCRMTemplate : []).set('templateError', {});
30
- }
31
- return state.set('getAllTemplatesInProgress', false)
32
- .set('templates', action.data ? state.get('templates').concat(action.data.templates) : [])
33
- .set('isSearch', action.data ? action.data.search : false)
34
- .set('weCRMtemplates', action.weCRMTemplate ? state.get('weCRMtemplates').concat(action.weCRMTemplate) : []);
35
- case types.GET_ALL_TEMPLATES_FAILURE:
36
- return state.set('getAllTemplatesInProgress', false).set('templateError', action.error);
37
- case types.DELETE_TEMPLATE_REQUEST:
38
- return state.set('deleteTemplateInProgress', true);
39
- case types.DELETE_TEMPLATE_SUCCESS:
40
- return state.set('deleteTemplateInProgress', false)
41
- .set('deleteResponse', action.data);
42
- case types.DELETE_TEMPLATE_FAILURE:
43
- return state.set('deleteTemplateInProgress', false);
44
- case types.GET_USER_LIST_REQUEST:
45
- return state
46
- .set('fetchingUserList', true)
47
- .set('userList', fromJS({}))
48
- .set('userListFetchError', false);
49
- case types.GET_USER_LIST_SUCCESS:
50
- return state
51
- .set('fetchingUserList', false)
52
- .set('userList', fromJS(action.data))
53
- .set('userListFetchError', false);
54
- case types.GET_USER_LIST_FAILURE:
55
- return state
56
- .set('fetchingUserList', false)
57
- .set('userList', fromJS({}))
58
- .set('userListFetchError', true);
59
- case types.GET_WECRM_ACCOUNTS_REQUEST:
60
- return state
61
- .set('fetchingWeCrmAccounts', true)
62
- .set('weCrmAccountFetchingError', false);
63
- case types.GET_WECRM_ACCOUNTS_SUCCESS:
64
- return state
65
- .set('fetchingWeCrmAccounts', false)
66
- .set('weCrmAccounts', fromJS(action.data));
67
- case types.GET_WECRM_ACCOUNTS_FAILURE:
68
- return state
69
- .set('fetchingWeCrmAccounts', false)
70
- .set('weCrmAccountFetchingError', true);
71
- case types.SET_WECHAT_ACCOUNT:
72
- return state
73
- .set('selectedWeChatAccount', fromJS(action.weChatAccount));
74
- case types.SET_LINE_ACCOUNT:
75
- return state.set('selectedLineAccount', fromJS(action.lineAccount));
76
- case types.RESET_ACCOUNT:
77
- return state
78
- .remove('selectedWeChatAccount')
79
- .remove('weCrmAccounts');
80
- case types.RESET_TEMPLATE:
81
- return state
82
- .set('weCRMtemplates', fromJS([]))
83
- .set('weChatDefaultTemplate', fromJS([]))
84
- .set('templates', []);
85
- case types.SET_SELECTED_LAYOUT:
86
- return state
87
- .set('selectedEmailLayout', fromJS(action.selectedTemplate))
88
- .set('edmTemplate', fromJS({}));
89
- case types.RESET_UPLOAD_DATA:
90
- return state
91
- .set('selectedEmailLayout', "");
92
- case types.SEND_ZIPPED_FILE_REQUEST:
93
- return state
94
- .set('sendingFile', true)
95
- .set('errorSendingFile', false)
96
- .set('selectedEmailLayout', "");
97
- case types.SEND_ZIPPED_FILE_SUCCESS:
98
- return state
99
- .set('sendingFile', false)
100
- .set('selectedEmailLayout', fromJS(action.selectedTemplate))
101
- .set('edmTemplate', fromJS({}));
102
- case types.SEND_ZIPPED_FILE_FAILURE:
103
- return state
104
- .set('sendingFile', false)
105
- .set('errorSendingFile', true)
106
- .set('errorMessage', action.data)
107
- .set('selectedEmailLayout', "");
108
- case types.GET_EDM_DEAFULT_TEMPLATES_REQUEST:
109
- return state.set('getCmsTemplatesInProgress', true);
110
- case types.GET_EDM_DEAFULT_TEMPLATES_SUCCESS:
111
- return state.set('getCmsTemplatesInProgress', false)
112
- .set('cmsTemplates', action.data ? fromJS(action.data.templates) : []);
113
- case types.GET_EDM_DEAFULT_TEMPLATES_FAILURE:
114
- return state.set('getCmsTemplatesInProgress', false);
115
- case types.SET_EDM_TEMPLATE:
116
- return state
117
- .set('edmTemplate', fromJS(action.template))
118
- .set('selectedEmailLayout', "");
119
- case types.RESET_TEMPLATE_DATA:
120
- return state
121
- .set('edmTemplate', fromJS({}))
122
- .set('selectedEmailLayout', "")
123
- .set('templateDetails', fromJS({}));
124
- case types.GET_TEMPLATE_DETAILS_REQUEST:
125
- return state
126
- .set('getTemplateDetailsInProgress', true)
127
- .set('templateDetails', fromJS({}));
128
- case types.GET_TEMPLATE_DETAILS_SUCCESS:
129
- return state
130
- .set('getTemplateDetailsInProgress', false)
131
- .set('templateDetails', fromJS(action.data));
132
- case types.GET_TEMPLATE_DETAILS_FAILURE:
133
- return state
134
- .set('getTemplateDetailsInProgress', false)
135
- .set('templateDetails', fromJS({}));
136
- case types.CLEAR_TEMPLATE_STORE_DATA:
137
- return state
138
- .set('templates', [])
139
- .set('weCRMtemplates', fromJS({}));
140
- default:
141
- return state;
142
- }
143
- }
144
-
145
- export default templatesReducer;
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
+ getAllTemplatesInProgress: false,
12
+ templates: [],
13
+ deleteResponse: {},
14
+ deleteTemplateInProgress: false,
15
+ templateError: {},
16
+ });
17
+
18
+ function templatesReducer(state = initialState, action) {
19
+ switch (action.type) {
20
+ case types.DEFAULT_ACTION:
21
+ return state;
22
+ case types.GET_ALL_TEMPLATES_REQUEST:
23
+ return state.set('getAllTemplatesInProgress', true).set('templateError', {});
24
+ case types.GET_ALL_TEMPLATES_SUCCESS:
25
+ if (action.isReset) {
26
+ return state.set('getAllTemplatesInProgress', false)
27
+ .set('templates', action.data ? action.data.templates : [])
28
+ .set('isSearch', action.data ? action.data.search : false)
29
+ .set('weCRMtemplates', action.weCRMTemplate ? action.weCRMTemplate : []).set('templateError', {});
30
+ }
31
+ return state.set('getAllTemplatesInProgress', false)
32
+ .set('templates', action.data ? state.get('templates').concat(action.data.templates) : [])
33
+ .set('isSearch', action.data ? action.data.search : false)
34
+ .set('weCRMtemplates', action.weCRMTemplate ? state.get('weCRMtemplates').concat(action.weCRMTemplate) : []);
35
+ case types.GET_ALL_TEMPLATES_FAILURE:
36
+ return state.set('getAllTemplatesInProgress', false).set('templateError', action.error);
37
+ case types.DELETE_TEMPLATE_REQUEST:
38
+ return state.set('deleteTemplateInProgress', true);
39
+ case types.DELETE_TEMPLATE_SUCCESS:
40
+ return state.set('deleteTemplateInProgress', false)
41
+ .set('deleteResponse', action.data);
42
+ case types.DELETE_TEMPLATE_FAILURE:
43
+ return state.set('deleteTemplateInProgress', false);
44
+ case types.GET_USER_LIST_REQUEST:
45
+ return state
46
+ .set('fetchingUserList', true)
47
+ .set('userList', fromJS({}))
48
+ .set('userListFetchError', false);
49
+ case types.GET_USER_LIST_SUCCESS:
50
+ return state
51
+ .set('fetchingUserList', false)
52
+ .set('userList', fromJS(action.data))
53
+ .set('userListFetchError', false);
54
+ case types.GET_USER_LIST_FAILURE:
55
+ return state
56
+ .set('fetchingUserList', false)
57
+ .set('userList', fromJS({}))
58
+ .set('userListFetchError', true);
59
+ case types.GET_WECRM_ACCOUNTS_REQUEST:
60
+ return state
61
+ .set('fetchingWeCrmAccounts', true)
62
+ .set('weCrmAccountFetchingError', false);
63
+ case types.GET_WECRM_ACCOUNTS_SUCCESS:
64
+ return state
65
+ .set('fetchingWeCrmAccounts', false)
66
+ .set('weCrmAccounts', fromJS(action.data));
67
+ case types.GET_WECRM_ACCOUNTS_FAILURE:
68
+ return state
69
+ .set('fetchingWeCrmAccounts', false)
70
+ .set('weCrmAccountFetchingError', true);
71
+ case types.SET_WECHAT_ACCOUNT:
72
+ return state
73
+ .set('selectedWeChatAccount', fromJS(action.weChatAccount));
74
+ case types.SET_LINE_ACCOUNT:
75
+ return state.set('selectedLineAccount', fromJS(action.lineAccount));
76
+ case types.RESET_ACCOUNT:
77
+ return state
78
+ .remove('selectedWeChatAccount')
79
+ .remove('weCrmAccounts');
80
+ case types.RESET_TEMPLATE:
81
+ return state
82
+ .set('weCRMtemplates', fromJS([]))
83
+ .set('weChatDefaultTemplate', fromJS([]))
84
+ .set('templates', []);
85
+ case types.SET_SELECTED_LAYOUT:
86
+ return state
87
+ .set('selectedEmailLayout', fromJS(action.selectedTemplate))
88
+ .set('edmTemplate', fromJS({}))
89
+ .set('BEETemplate', fromJS({}));
90
+ case types.RESET_UPLOAD_DATA:
91
+ return state
92
+ .set('selectedEmailLayout', "");
93
+ case types.SEND_ZIPPED_FILE_REQUEST:
94
+ return state
95
+ .set('sendingFile', true)
96
+ .set('errorSendingFile', false)
97
+ .set('selectedEmailLayout', "");
98
+ case types.SEND_ZIPPED_FILE_SUCCESS:
99
+ return state
100
+ .set('sendingFile', false)
101
+ .set('selectedEmailLayout', fromJS(action.selectedTemplate))
102
+ .set('edmTemplate', fromJS({}))
103
+ .set('BEETemplate', fromJS({}));
104
+ case types.SEND_ZIPPED_FILE_FAILURE:
105
+ return state
106
+ .set('sendingFile', false)
107
+ .set('errorSendingFile', true)
108
+ .set('errorMessage', action.data)
109
+ .set('selectedEmailLayout', "");
110
+ case types.GET_DEAFULT_BEE_TEMPLATES_REQUEST:
111
+ return state.set('getCmsTemplatesInProgress', true);
112
+ case types.GET_DEAFULT_BEE_TEMPLATES_SUCCESS:
113
+ return state.set('getCmsTemplatesInProgress', false)
114
+ .set('cmsTemplates', action.data ? fromJS(action.data.templates) : []);
115
+ case types.GET_DEAFULT_BEE_TEMPLATES_FAILURE:
116
+ return state.set('getCmsTemplatesInProgress', false);
117
+ case types.SET_EDM_TEMPLATE:
118
+ return state
119
+ .set('edmTemplate', fromJS(action.template))
120
+ .set('BEETemplate', fromJS(action.template))
121
+ .set('selectedEmailLayout', "");
122
+ case types.SET_BEE_TEMPLATE:
123
+ return state
124
+ .set('BEETemplate', fromJS(action.template))
125
+ .set('selectedEmailLayout', "");
126
+ case types.RESET_TEMPLATE_DATA:
127
+ return state
128
+ .set('edmTemplate', fromJS({}))
129
+ .set('BEETemplate', fromJS({}))
130
+ .set('selectedEmailLayout', "")
131
+ .set('templateDetails', fromJS({}));
132
+ case types.GET_TEMPLATE_DETAILS_REQUEST:
133
+ return state
134
+ .set('getTemplateDetailsInProgress', true)
135
+ .set('templateDetails', fromJS({}));
136
+ case types.GET_TEMPLATE_DETAILS_SUCCESS:
137
+ return state
138
+ .set('getTemplateDetailsInProgress', false)
139
+ .set('templateDetails', fromJS(action.data));
140
+ case types.GET_TEMPLATE_DETAILS_FAILURE:
141
+ return state
142
+ .set('getTemplateDetailsInProgress', false)
143
+ .set('templateDetails', fromJS({}));
144
+ case types.CLEAR_TEMPLATE_STORE_DATA:
145
+ return state
146
+ .set('templates', [])
147
+ .set('weCRMtemplates', fromJS({}));
148
+ default:
149
+ return state;
150
+ }
151
+ }
152
+
153
+ export default templatesReducer;