@capillarytech/creatives-library 7.11.9 → 7.11.12
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/config/app.js +0 -1
- package/package.json +1 -2
- package/v2Components/CapImageUpload/messages.js +1 -1
- package/v2Components/TemplatePreview/_templatePreview.scss +1 -1
- package/v2Components/TemplatePreview/index.js +30 -32
- package/v2Components/TemplatePreview/tests/__snapshots__/index.test.js.snap +33 -1
- package/v2Components/TemplatePreview/tests/index.test.js +7 -7
- package/v2Containers/CreativesContainer/SlideBoxContent.js +2 -2
- package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +24 -4
- package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +23 -4
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +147 -2
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +98 -0
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +71 -0
- package/v2Containers/CreativesContainer/tests/index.test.js +21 -9
- package/v2Containers/MobilePush/Edit/index.js +21 -34
- package/v2Containers/Rcs/actions.js +34 -6
- package/v2Containers/Rcs/constants.js +21 -8
- package/v2Containers/Rcs/index.js +203 -78
- package/v2Containers/Rcs/index.scss +21 -3
- package/v2Containers/Rcs/messages.js +18 -5
- package/v2Containers/Rcs/reducer.js +49 -14
- package/v2Containers/Rcs/sagas.js +87 -18
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +145080 -0
- package/v2Containers/Rcs/tests/index.test.js +226 -0
- package/v2Containers/Rcs/tests/mockData.js +169 -0
- package/v2Containers/Rcs/utils.js +24 -21
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +4 -4
- package/v2Containers/mockdata.js +567 -1588
|
@@ -4,7 +4,7 @@ import { shallowWithIntl } from '../../../helpers/intl-enzym-test-helpers';
|
|
|
4
4
|
import { Creatives } from '../index';
|
|
5
5
|
import mockdata from '../../mockdata';
|
|
6
6
|
|
|
7
|
-
const {
|
|
7
|
+
const { whatsappTemplates, rcsTemplates, whatsappEditTemplateData, rcsEditTemplateData } = mockdata;
|
|
8
8
|
|
|
9
9
|
jest.mock("../../../v2Components/FormBuilder", () => ({
|
|
10
10
|
__esModule: true,
|
|
@@ -20,10 +20,10 @@ describe('Test SlideBoxContent container', () => {
|
|
|
20
20
|
jest.clearAllMocks();
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
-
const renderFunction = (channel, mode, templateData) => {
|
|
23
|
+
const renderFunction = (channel, mode, templates, templateData) => {
|
|
24
24
|
renderedComponent = shallowWithIntl(
|
|
25
25
|
<Creatives
|
|
26
|
-
Templates={
|
|
26
|
+
Templates={templates}
|
|
27
27
|
channel={channel}
|
|
28
28
|
slidBoxContent={mode}
|
|
29
29
|
templateData={templateData}
|
|
@@ -34,12 +34,12 @@ describe('Test SlideBoxContent container', () => {
|
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
it('Should render correct component for whatsapp channel create mode', () => {
|
|
37
|
-
renderFunction("WHATSAPP", "createTemplate", { mode: "create" });
|
|
37
|
+
renderFunction("WHATSAPP", "createTemplate", whatsappTemplates, { mode: "create" });
|
|
38
38
|
expect(renderedComponent).toMatchSnapshot();
|
|
39
39
|
});
|
|
40
40
|
|
|
41
41
|
it('Should render correct component for whatsapp channel edit mode', () => {
|
|
42
|
-
renderFunction("WHATSAPP", "editTemplate",
|
|
42
|
+
renderFunction("WHATSAPP", "editTemplate", whatsappTemplates, whatsappEditTemplateData);
|
|
43
43
|
renderedComponent.instance().onEditTemplate();
|
|
44
44
|
renderedComponent.find('CapSlideBox').props().content.props.handleClose();
|
|
45
45
|
expect(renderedComponent).toMatchSnapshot();
|
|
@@ -47,12 +47,24 @@ describe('Test SlideBoxContent container', () => {
|
|
|
47
47
|
expect(handleCloseCreatives).toHaveBeenCalledWith(true);
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
renderFunction("WHATSAPP", "editTemplate", editTemplateData);
|
|
50
|
+
it('Text getCreatives data for whatsapp', () => {
|
|
51
|
+
renderFunction("WHATSAPP", "editTemplate", whatsappTemplates, whatsappEditTemplateData);
|
|
53
52
|
renderedComponent.instance().onEditTemplate();
|
|
54
|
-
renderedComponent.find('CapSlideBox').props().content.props.getFormData(
|
|
53
|
+
renderedComponent.find('CapSlideBox').props().content.props.getFormData(whatsappEditTemplateData);
|
|
55
54
|
expect(getCreativesData).toHaveBeenCalledTimes(1);
|
|
56
55
|
expect(getCreativesData).toHaveBeenCalledWith({ channel: "WHATSAPP" });
|
|
57
56
|
});
|
|
57
|
+
|
|
58
|
+
it('Should render correct component for rcs channel create mode', () => {
|
|
59
|
+
renderFunction("RCS", "createTemplate", rcsTemplates, { mode: "create" });
|
|
60
|
+
expect(renderedComponent).toMatchSnapshot();
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('Text getCreatives data for rcs', () => {
|
|
64
|
+
renderFunction("RCS", "editTemplate", rcsTemplates, rcsEditTemplateData);
|
|
65
|
+
renderedComponent.instance().onEditTemplate();
|
|
66
|
+
renderedComponent.find('CapSlideBox').props().content.props.getFormData(rcsEditTemplateData);
|
|
67
|
+
expect(getCreativesData).toHaveBeenCalledTimes(1);
|
|
68
|
+
expect(getCreativesData).toHaveBeenCalledWith({ channel: "RCS" });
|
|
69
|
+
});
|
|
58
70
|
});
|
|
@@ -60,7 +60,6 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
60
60
|
this.getLinkTypeFields = getLinkTypeFields.bind(this);
|
|
61
61
|
}
|
|
62
62
|
componentWillMount() {
|
|
63
|
-
|
|
64
63
|
this.props.actions.getWeCrmAccounts("mobilepush");
|
|
65
64
|
if (!this.props.Templates.selectedWeChatAccount && this.props.location.query.type !== 'embedded') {
|
|
66
65
|
const type = this.props.location.query.type;
|
|
@@ -76,7 +75,6 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
76
75
|
version: "v2",
|
|
77
76
|
};
|
|
78
77
|
this.props.globalActions.fetchSchemaForEntity(query);
|
|
79
|
-
|
|
80
78
|
}
|
|
81
79
|
}
|
|
82
80
|
componentDidMount() {
|
|
@@ -106,10 +104,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
106
104
|
} else if (nextProps.isGetFormData && this.props.isGetFormData !== nextProps.isGetFormData && this.props.isFullMode && !this.props.Create.createTemplateInProgress) {
|
|
107
105
|
this.startValidation();
|
|
108
106
|
}
|
|
109
|
-
const selectedWeChatAccount = (!_.isEmpty(this.props.Templates.selectedWeChatAccount) ? this.props.Templates.selectedWeChatAccount :
|
|
107
|
+
const selectedWeChatAccount = (!_.isEmpty(this.props.Templates.selectedWeChatAccount) ? this.props.Templates.selectedWeChatAccount :
|
|
110
108
|
(!_.isEmpty(this.props.Edit.selectedWeChatAccount) ? this.props.Edit.selectedWeChatAccount : nextProps.Edit.selectedWeChatAccount));
|
|
111
109
|
if (this.props.location.query.type === 'embedded' && !nextProps.Edit.fetchingWeCrmAccounts && !_.isEqual(this.props.Edit.weCrmAccounts, nextProps.Edit.weCrmAccounts) && (!selectedWeChatAccount || _.isEmpty(selectedWeChatAccount))) {
|
|
112
|
-
|
|
113
110
|
this.setMobilePushAccountOptions(nextProps.Edit.weCrmAccounts, get(this.props, "templateData.definition.accountId"));
|
|
114
111
|
}
|
|
115
112
|
if (!_.isEmpty(nextProps.Edit.selectedWeChatAccount) && !_.isEqual(this.props.Edit.selectedWeChatAccount, nextProps.Edit.selectedWeChatAccount) && (this.props.location.query.type === 'embedded') && this.props.location.query.module === "loyalty") {
|
|
@@ -175,7 +172,6 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
175
172
|
});
|
|
176
173
|
};
|
|
177
174
|
onFormDataChange = (formData, tabCount, currentTab, inputField) => {
|
|
178
|
-
|
|
179
175
|
const newFormData = _.cloneDeep(formData);
|
|
180
176
|
const {templateCta} = this.state;
|
|
181
177
|
if (!_.isEmpty(templateCta) && this.state.currentTab === 2) {
|
|
@@ -241,12 +237,10 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
241
237
|
};
|
|
242
238
|
|
|
243
239
|
onTabChange = (data) => {
|
|
244
|
-
|
|
245
240
|
this.setState({currentTab: data});
|
|
246
241
|
};
|
|
247
242
|
|
|
248
243
|
onTagSelect = (data, currentTab, srcComp) => {
|
|
249
|
-
|
|
250
244
|
const editorId = srcComp.target;
|
|
251
245
|
this.insertAtCursor(document.getElementById(editorId), `{{${data}}}`, currentTab);
|
|
252
246
|
document.getElementById(editorId).focus();
|
|
@@ -259,10 +253,10 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
259
253
|
onUpdateTemplateComplete = (response) => {
|
|
260
254
|
const obj = this.getTransformedData(this.state.formData);
|
|
261
255
|
const content = getContent(obj);
|
|
262
|
-
const
|
|
256
|
+
const {
|
|
263
257
|
definition: {
|
|
264
|
-
mode: definitionMode
|
|
265
|
-
}
|
|
258
|
+
mode: definitionMode,
|
|
259
|
+
},
|
|
266
260
|
} = obj || {};
|
|
267
261
|
const label = this.props.location.pathname.indexOf('image') >= 0 ? 'image' : 'text';
|
|
268
262
|
const timeTaken = GA.timeTracker.stopTimer(TRACK_EDIT_MPUSH, {
|
|
@@ -278,12 +272,12 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
278
272
|
timeTaken,
|
|
279
273
|
content,
|
|
280
274
|
mode: EDIT,
|
|
281
|
-
imageAdded: definitionMode === 'image'
|
|
282
|
-
})
|
|
283
|
-
} catch(e) {
|
|
275
|
+
imageAdded: definitionMode === 'image',
|
|
276
|
+
});
|
|
277
|
+
} catch (e) {
|
|
284
278
|
console.log(e);
|
|
285
279
|
}
|
|
286
|
-
|
|
280
|
+
|
|
287
281
|
this.resetSchema();
|
|
288
282
|
this.setState({
|
|
289
283
|
formData: {},
|
|
@@ -535,7 +529,8 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
535
529
|
delete cta.ioscdeepLinkName;
|
|
536
530
|
}
|
|
537
531
|
obj.versions.base.IOS.expandableDetails.ctas.push(cta);
|
|
538
|
-
obj.versions.base.IOS.expandableDetails.categoryId = get(this.state, "templateCta.id");
|
|
532
|
+
obj.versions.base.IOS.expandableDetails.categoryId = get(this.state, "templateCta.id") || get(this.state.editData, 'versions.base.IOS.expandableDetails.categoryId');
|
|
533
|
+
|
|
539
534
|
if (obj.versions.base.IOS.expandableDetails.ctas[obj.versions.base.IOS.expandableDetails.ctas.length - 1].type === "DEEP_LINK") {
|
|
540
535
|
const params = _.map(ios, (field, key) => {
|
|
541
536
|
let actionLink;
|
|
@@ -603,13 +598,12 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
603
598
|
getMappedEvent = (id, event) => {
|
|
604
599
|
const map = this.state.eventsMap;
|
|
605
600
|
if (!map[id] || !map[id][event]) {
|
|
606
|
-
|
|
601
|
+
|
|
607
602
|
}
|
|
608
603
|
return map[id][event];
|
|
609
604
|
};
|
|
610
605
|
|
|
611
606
|
getCurrentWindow = (e) => {
|
|
612
|
-
|
|
613
607
|
const response = {
|
|
614
608
|
action: e.action,
|
|
615
609
|
value: 'edit',
|
|
@@ -619,13 +613,12 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
619
613
|
};
|
|
620
614
|
|
|
621
615
|
getFormData = (e) => {
|
|
622
|
-
|
|
623
616
|
const response = {
|
|
624
617
|
action: "getFormData",
|
|
625
618
|
value: this.getTransformedData(this.state.formData),
|
|
626
619
|
validity: this.state.isFormValid,
|
|
627
620
|
};
|
|
628
|
-
|
|
621
|
+
|
|
629
622
|
this.setState({checkValidation: true}, this.showError);
|
|
630
623
|
if (e) {
|
|
631
624
|
e.source.postMessage(JSON.stringify(response), e.origin);
|
|
@@ -635,7 +628,6 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
635
628
|
|
|
636
629
|
|
|
637
630
|
setEditState(data, schema) {
|
|
638
|
-
|
|
639
631
|
const tabCount = Object.keys(data.versions.base).length;
|
|
640
632
|
const formData = {};
|
|
641
633
|
if (this.props.location.query.type === 'embedded' && this.props.location.query.module === "loyalty") {
|
|
@@ -775,7 +767,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
775
767
|
formData[0].base = true;
|
|
776
768
|
// formData[0].tabKey = '1';
|
|
777
769
|
// formData[1].tabKey = '2';
|
|
778
|
-
|
|
770
|
+
|
|
779
771
|
this.setState({templateCta}, () => {
|
|
780
772
|
this.getSchemaForFormData(formData, schema);
|
|
781
773
|
this.setState({tabCount, formData, editData: data, currentTab: 1}, () => {
|
|
@@ -1361,7 +1353,6 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1361
1353
|
|
|
1362
1354
|
|
|
1363
1355
|
startTemplateCreation = (data) => {
|
|
1364
|
-
|
|
1365
1356
|
if (!this.state.isContentEditLoaded && this.state.fullSchema && this.props.Edit.weCrmAccounts) {
|
|
1366
1357
|
const schema = JSON.stringify(data).indexOf("BIG_PICTURE") > -1 ? this.state.fullSchema.imageSchema : this.state.fullSchema.textSchema;
|
|
1367
1358
|
this.setMobilePushAccountOptions(this.props.Edit.weCrmAccounts, data.content.accId);
|
|
@@ -1377,7 +1368,6 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1377
1368
|
}
|
|
1378
1369
|
};
|
|
1379
1370
|
discardValues = () => {
|
|
1380
|
-
|
|
1381
1371
|
this.resetSchema();
|
|
1382
1372
|
this.setState({
|
|
1383
1373
|
formData: {},
|
|
@@ -1403,7 +1393,6 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1403
1393
|
|
|
1404
1394
|
};
|
|
1405
1395
|
moveToTemplates = () => {
|
|
1406
|
-
|
|
1407
1396
|
const modalContent = {
|
|
1408
1397
|
title: this.props.intl.formatMessage(messages.alertMessage),
|
|
1409
1398
|
body: this.props.intl.formatMessage(messages.goBackTemporaryChangesLost),
|
|
@@ -1478,17 +1467,16 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1478
1467
|
};
|
|
1479
1468
|
|
|
1480
1469
|
saveFormData = (formData) => {
|
|
1481
|
-
|
|
1482
1470
|
const obj = this.getTransformedData(formData);
|
|
1483
|
-
|
|
1471
|
+
|
|
1484
1472
|
this.props.actions.editTemplate(obj, this.onUpdateTemplateComplete);
|
|
1485
1473
|
};
|
|
1486
1474
|
handleFrameTasks = (e) => {
|
|
1487
|
-
//
|
|
1475
|
+
//
|
|
1488
1476
|
const type = e.data;
|
|
1489
|
-
|
|
1477
|
+
|
|
1490
1478
|
if (typeof type === 'object') {
|
|
1491
|
-
//
|
|
1479
|
+
//
|
|
1492
1480
|
const action = type.action;
|
|
1493
1481
|
switch (action) {
|
|
1494
1482
|
case "startTemplateCreation":
|
|
@@ -1509,15 +1497,15 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1509
1497
|
this.getFormData(e);
|
|
1510
1498
|
break;
|
|
1511
1499
|
case "startTemplateCreation":
|
|
1512
|
-
|
|
1500
|
+
|
|
1513
1501
|
//this.getFormData(e);
|
|
1514
1502
|
break;
|
|
1515
1503
|
case "moveToTemplates":
|
|
1516
|
-
|
|
1504
|
+
|
|
1517
1505
|
this.moveToTemplates();
|
|
1518
1506
|
break;
|
|
1519
1507
|
case "validateContent":
|
|
1520
|
-
|
|
1508
|
+
|
|
1521
1509
|
this.validateContent(e);
|
|
1522
1510
|
break;
|
|
1523
1511
|
default:
|
|
@@ -1726,7 +1714,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1726
1714
|
tempContainer = this.injectContainer(tempContainer);
|
|
1727
1715
|
return tempContainer;
|
|
1728
1716
|
});
|
|
1729
|
-
|
|
1717
|
+
|
|
1730
1718
|
this.setState({schema, loadingContentEdit: false}, () => {
|
|
1731
1719
|
this.removeStandAlone();
|
|
1732
1720
|
});
|
|
@@ -1747,7 +1735,6 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1747
1735
|
this.setState({ schema });
|
|
1748
1736
|
};
|
|
1749
1737
|
handleOnTagsContextChange = (data) => {
|
|
1750
|
-
|
|
1751
1738
|
const query = {
|
|
1752
1739
|
layout: 'mobilepush',
|
|
1753
1740
|
type: 'TAG',
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
RCS,
|
|
3
|
+
UPLOAD_RCS_ASSET_REQUEST,
|
|
4
|
+
CLEAR_RCS_ASSET,
|
|
5
|
+
CREATE_RCS_TEMPLATE_REQUEST,
|
|
5
6
|
CLEAR_CREATE_RESPONSE_REQUEST,
|
|
7
|
+
GET_RCS_TEMPLATE_DETAILS_REQUEST,
|
|
8
|
+
CLEAR_EDIT_RESPONSE_REQUEST,
|
|
9
|
+
EDIT_RCS_TEMPLATE_REQUEST,
|
|
6
10
|
} from './constants';
|
|
7
11
|
|
|
8
12
|
export const uploadRcsAsset = (file, assetType, fileParams, templateType) => ({
|
|
9
|
-
type:
|
|
13
|
+
type: UPLOAD_RCS_ASSET_REQUEST,
|
|
10
14
|
file,
|
|
11
15
|
assetType,
|
|
12
16
|
fileParams,
|
|
@@ -14,7 +18,7 @@ export const uploadRcsAsset = (file, assetType, fileParams, templateType) => ({
|
|
|
14
18
|
});
|
|
15
19
|
|
|
16
20
|
export const clearRcsAsset = (templateType) => ({
|
|
17
|
-
type:
|
|
21
|
+
type: CLEAR_RCS_ASSET,
|
|
18
22
|
templateType,
|
|
19
23
|
});
|
|
20
24
|
|
|
@@ -23,7 +27,31 @@ export const clearCreateResponse = () => ({
|
|
|
23
27
|
});
|
|
24
28
|
|
|
25
29
|
export const createTemplate = (template, callback) => ({
|
|
26
|
-
type:
|
|
30
|
+
type: CREATE_RCS_TEMPLATE_REQUEST,
|
|
27
31
|
template,
|
|
28
32
|
callback,
|
|
29
33
|
});
|
|
34
|
+
|
|
35
|
+
// FOR EDIT
|
|
36
|
+
export function getTemplateDetails(id, callback) {
|
|
37
|
+
return {
|
|
38
|
+
type: GET_RCS_TEMPLATE_DETAILS_REQUEST,
|
|
39
|
+
id,
|
|
40
|
+
channel: RCS,
|
|
41
|
+
callback,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function editTemplate(template, callback) {
|
|
46
|
+
return {
|
|
47
|
+
type: EDIT_RCS_TEMPLATE_REQUEST,
|
|
48
|
+
template,
|
|
49
|
+
callback,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function clearEditResponse() {
|
|
54
|
+
return {
|
|
55
|
+
type: CLEAR_EDIT_RESPONSE_REQUEST,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
@@ -14,7 +14,9 @@ export const RCS_DLT_MODE = {
|
|
|
14
14
|
TEMPLATES: 'templates',
|
|
15
15
|
EDIT: 'editTemplate',
|
|
16
16
|
};
|
|
17
|
-
export const
|
|
17
|
+
export const TEMPLATE_DESC_MAX_LENGTH = 1000;
|
|
18
|
+
export const FALLBACK_MESSAGE_MAX_LENGTH = 160;
|
|
19
|
+
export const TEMPLATE_TITLE_MAX_LENGTH = 200;
|
|
18
20
|
export const TAG = 'TAG';
|
|
19
21
|
export const EMBEDDED = 'embedded';
|
|
20
22
|
export const DEFAULT = 'default';
|
|
@@ -27,12 +29,23 @@ export const RCS_IMG_HEIGHT = 720;
|
|
|
27
29
|
export const RCS_IMG_SIZE = 2000000; // 2MB
|
|
28
30
|
|
|
29
31
|
const prefix = 'app/v2Containers/Rcs';
|
|
30
|
-
export const
|
|
31
|
-
export const
|
|
32
|
-
export const
|
|
33
|
-
export const
|
|
32
|
+
export const UPLOAD_RCS_ASSET_REQUEST = `${prefix}/UPLOAD_RCS_ASSET_REQUEST`;
|
|
33
|
+
export const UPLOAD_RCS_ASSET_SUCCESS = `${prefix}/UPLOAD_RCS_ASSET_SUCCESS`;
|
|
34
|
+
export const UPLOAD_RCS_ASSET_FAILURE = `${prefix}/UPLOAD_RCS_ASSET_FAILURE`;
|
|
35
|
+
export const CLEAR_RCS_ASSET = `${prefix}/CLEAR_RCS_ASSET`;
|
|
34
36
|
|
|
35
|
-
export const
|
|
36
|
-
export const
|
|
37
|
-
export const
|
|
37
|
+
export const CREATE_RCS_TEMPLATE_REQUEST = `${prefix}/CREATE_RCS_TEMPLATE_REQUEST`;
|
|
38
|
+
export const CREATE_RCS_TEMPLATE_SUCCESS = `${prefix}/CREATE_RCS_TEMPLATE_SUCCESS`;
|
|
39
|
+
export const CREATE_RCS_TEMPLATE_FAILURE = `${prefix}/CREATE_RCS_TEMPLATE_FAILURE`;
|
|
38
40
|
export const CLEAR_CREATE_RESPONSE_REQUEST = `${prefix}/Create/CLEAR_CREATE_RESPONSE_REQUEST`;
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
export const GET_RCS_TEMPLATE_DETAILS_REQUEST = `${prefix}/GET_RCS_TEMPLATE_DETAILS_REQUEST`;
|
|
44
|
+
export const GET_RCS_TEMPLATE_DETAILS_SUCCESS = `${prefix}/GET_RCS_TEMPLATE_DETAILS_SUCCESS`;
|
|
45
|
+
export const GET_RCS_TEMPLATE_DETAILS_FAILURE = `${prefix}/GET_RCS_TEMPLATE_DETAILS_FAILURE`;
|
|
46
|
+
|
|
47
|
+
export const EDIT_RCS_TEMPLATE_REQUEST = `${prefix}/EDIT_RCS_TEMPLATE_REQUEST`;
|
|
48
|
+
export const EDIT_RCS_TEMPLATE_SUCCESS = `${prefix}/EDIT_RCS_TEMPLATE_SUCCESS`;
|
|
49
|
+
export const EDIT_RCS_TEMPLATE_FAILURE = `${prefix}/EDIT_RCS_TEMPLATE_FAILURE`;
|
|
50
|
+
export const CLEAR_EDIT_RESPONSE_REQUEST = `${prefix}/Edit/CLEAR_EDIT_RESPONSE_REQUEST`;
|
|
51
|
+
|