@capillarytech/creatives-library 8.0.87-alpha.0 → 8.0.87-alpha.10
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/initialState.js +1 -0
- package/package.json +1 -1
- package/services/api.js +6 -0
- package/utils/transformerUtils.js +194 -0
- package/v2Components/FormBuilder/index.js +8 -2
- package/v2Components/FormBuilder/utils.js +152 -0
- package/v2Containers/Cap/actions.js +9 -0
- package/v2Containers/Cap/constants.js +4 -0
- package/v2Containers/Cap/reducer.js +6 -0
- package/v2Containers/Cap/sagas.js +25 -0
- package/v2Containers/Cap/selectors.js +6 -0
- package/v2Containers/CreativesContainer/SlideBoxContent.js +13 -0
- package/v2Containers/CreativesContainer/index.js +92 -1
- package/v2Containers/CreativesContainer/messages.js +4 -0
- package/v2Containers/Email/index.js +2 -0
- package/v2Containers/EmailWrapper/index.js +4 -0
- package/v2Containers/MobilePush/Create/index.js +2 -0
- package/v2Containers/MobilePush/Edit/index.js +2 -0
- package/v2Containers/MobilepushWrapper/index.js +3 -1
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +682 -248
- package/v2Containers/Sms/Create/index.js +2 -0
- package/v2Containers/Sms/Edit/index.js +2 -0
- package/v2Containers/SmsWrapper/index.js +4 -0
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +572 -208
- package/v2Containers/Zalo/index.js +6 -0
package/initialState.js
CHANGED
package/package.json
CHANGED
package/services/api.js
CHANGED
|
@@ -569,4 +569,10 @@ export const getLiquidTags = (content) => {
|
|
|
569
569
|
return request(url, getAPICallObject("POST", { content }, false, true));
|
|
570
570
|
};
|
|
571
571
|
|
|
572
|
+
export const createCentralCommsMetaId = (payload) => {
|
|
573
|
+
console.log("createCentralCommsMetaId: API call: ", { payload });
|
|
574
|
+
const url = `${API_ENDPOINT}/common/createCentralCommsMetaId/TRANSACTION`;
|
|
575
|
+
return request(url, getAPICallObject('POST', payload));
|
|
576
|
+
};
|
|
577
|
+
|
|
572
578
|
export {request, getAPICallObject};
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transforms SMS data to the required payload format
|
|
3
|
+
* @param {Object} smsData - Current SMS data
|
|
4
|
+
* @param {Object} options - Additional options (ouId, sourceEntityId, etc.)
|
|
5
|
+
* @returns {Object} - Transformed SMS payload
|
|
6
|
+
*/
|
|
7
|
+
export const transformSmsPayload = (smsData, options = {}) => {
|
|
8
|
+
const { channel, loyaltyMetaData = {} } = options;
|
|
9
|
+
|
|
10
|
+
const {
|
|
11
|
+
actionId,
|
|
12
|
+
actionName,
|
|
13
|
+
ouId,
|
|
14
|
+
clientName,
|
|
15
|
+
module,
|
|
16
|
+
metaId,
|
|
17
|
+
setMetaId = () => {},
|
|
18
|
+
transformedMessageDetails = {}
|
|
19
|
+
} = loyaltyMetaData;
|
|
20
|
+
|
|
21
|
+
const { smsDeliverySettings } = transformedMessageDetails;
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
ouId: ouId || -1,
|
|
25
|
+
sourceEntityId: actionId,
|
|
26
|
+
channel: "SMS",
|
|
27
|
+
module,
|
|
28
|
+
smsMessageContent: {
|
|
29
|
+
channel: "SMS",
|
|
30
|
+
message: smsData.messageBody || ""
|
|
31
|
+
},
|
|
32
|
+
smsDeliverySettings: smsDeliverySettings || {},
|
|
33
|
+
executionParams: {},
|
|
34
|
+
clientName: clientName || "EMF"
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Transforms Email data to the required payload format
|
|
40
|
+
* @param {Object} emailData - Current email data
|
|
41
|
+
* @param {Object} options - Additional options (ouId, sourceEntityId, etc.)
|
|
42
|
+
* @returns {Object} - Transformed Email payload
|
|
43
|
+
*/
|
|
44
|
+
export const transformEmailPayload = (emailData, options = {}) => {
|
|
45
|
+
const { loyaltyMetaData = {} } = options;
|
|
46
|
+
|
|
47
|
+
const {
|
|
48
|
+
actionId,
|
|
49
|
+
actionName,
|
|
50
|
+
ouId,
|
|
51
|
+
clientName,
|
|
52
|
+
module,
|
|
53
|
+
metaId,
|
|
54
|
+
setMetaId = () => {},
|
|
55
|
+
transformedMessageDetails = {}
|
|
56
|
+
} = loyaltyMetaData;
|
|
57
|
+
|
|
58
|
+
const { emailDeliverySettings = {} } = transformedMessageDetails;
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
ouId: ouId || -1,
|
|
62
|
+
sourceEntityId: actionId,
|
|
63
|
+
channel: "EMAIL",
|
|
64
|
+
module,
|
|
65
|
+
emailMessageContent: {
|
|
66
|
+
channel: "EMAIL",
|
|
67
|
+
messageBody: emailData.emailBody || "",
|
|
68
|
+
messageSubject: emailData.emailSubject || ""
|
|
69
|
+
},
|
|
70
|
+
emailDeliverySettings: emailDeliverySettings || {},
|
|
71
|
+
executionParams: {},
|
|
72
|
+
clientName: clientName || "EMF"
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Transforms Mobile Push data to the required payload format
|
|
78
|
+
* @param {Object} mpushData - Current mobile push data
|
|
79
|
+
* @param {Object} options - Additional options (ouId, sourceEntityId, etc.)
|
|
80
|
+
* @returns {Object} - Transformed Mobile Push payload
|
|
81
|
+
*/
|
|
82
|
+
export const transformMpushPayload = (mpushData, options = {}) => {
|
|
83
|
+
const { loyaltyMetaData = {} } = options;
|
|
84
|
+
|
|
85
|
+
const {
|
|
86
|
+
actionId,
|
|
87
|
+
actionName,
|
|
88
|
+
ouId,
|
|
89
|
+
clientName,
|
|
90
|
+
module,
|
|
91
|
+
metaId,
|
|
92
|
+
setMetaId = () => {},
|
|
93
|
+
transformedMessageDetails = {}
|
|
94
|
+
} = loyaltyMetaData;
|
|
95
|
+
|
|
96
|
+
const { mpushDeliverySettings = {} } = transformedMessageDetails;
|
|
97
|
+
|
|
98
|
+
// Set default values for androidContent if not provided
|
|
99
|
+
const androidContent = mpushData.androidContent || {};
|
|
100
|
+
|
|
101
|
+
// Set default values for iosContent if needed
|
|
102
|
+
const iosContent = mpushData.iosContent || {
|
|
103
|
+
type: androidContent.type || "TEXT",
|
|
104
|
+
deviceType: "IOS",
|
|
105
|
+
title: mpushData.messageSubject || "",
|
|
106
|
+
message: ""
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
return {
|
|
110
|
+
channel: "PUSH",
|
|
111
|
+
ouId: ouId || -1,
|
|
112
|
+
sourceEntityId: actionId,
|
|
113
|
+
clientName: clientName || "VENENO",
|
|
114
|
+
module,
|
|
115
|
+
mpushMessageContent: {
|
|
116
|
+
channel: "PUSH",
|
|
117
|
+
messageSubject: mpushData.messageSubject || "",
|
|
118
|
+
androidContent: {
|
|
119
|
+
type: androidContent.type || "TEXT",
|
|
120
|
+
deviceType: "ANDROID",
|
|
121
|
+
title: androidContent.title || "",
|
|
122
|
+
message: androidContent.message || "",
|
|
123
|
+
cta: {
|
|
124
|
+
type: "EXTERNAL_URL",
|
|
125
|
+
actionText: null,
|
|
126
|
+
templateCtaId: null,
|
|
127
|
+
actionLink: androidContent.cta?.actionLink || ""
|
|
128
|
+
},
|
|
129
|
+
expandableDetails: {
|
|
130
|
+
style: androidContent.expandableDetails?.style || "BIG_TEXT",
|
|
131
|
+
message: androidContent.expandableDetails?.message || "",
|
|
132
|
+
ctas: androidContent.expandableDetails?.ctas || [],
|
|
133
|
+
image: androidContent.expandableDetails?.image || "",
|
|
134
|
+
categoryId: androidContent.expandableDetails?.categoryId || ""
|
|
135
|
+
},
|
|
136
|
+
customProperties: androidContent.custom || {}
|
|
137
|
+
},
|
|
138
|
+
iosContent: {
|
|
139
|
+
type: iosContent.type || "TEXT",
|
|
140
|
+
deviceType: "IOS",
|
|
141
|
+
title: iosContent.title || "",
|
|
142
|
+
message: iosContent.message || "",
|
|
143
|
+
cta: {
|
|
144
|
+
type: "EXTERNAL_URL",
|
|
145
|
+
actionText: null,
|
|
146
|
+
templateCtaId: null,
|
|
147
|
+
actionLink: iosContent.cta?.actionLink || ""
|
|
148
|
+
},
|
|
149
|
+
expandableDetails: {
|
|
150
|
+
style: iosContent.expandableDetails?.style || "BIG_TEXT",
|
|
151
|
+
message: iosContent.expandableDetails?.message || "",
|
|
152
|
+
ctas: iosContent.expandableDetails?.ctas || [],
|
|
153
|
+
image: iosContent.expandableDetails?.image || "",
|
|
154
|
+
categoryId: iosContent.expandableDetails?.categoryId || ""
|
|
155
|
+
},
|
|
156
|
+
customProperties: iosContent.custom || {}
|
|
157
|
+
},
|
|
158
|
+
accountId: mpushData.accountId || 0
|
|
159
|
+
},
|
|
160
|
+
mpushDeliverySettings: mpushDeliverySettings || {
|
|
161
|
+
additionalSettings: {
|
|
162
|
+
useTinyUrl: false,
|
|
163
|
+
encryptUrl: false,
|
|
164
|
+
linkTrackingEnabled: false,
|
|
165
|
+
userSubscriptionDisabled: false
|
|
166
|
+
},
|
|
167
|
+
channelSettings: {
|
|
168
|
+
channel: "PUSH",
|
|
169
|
+
domainGatewayMapId: options.domainGatewayMapId || 1
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* General transformer function that handles different channel types
|
|
177
|
+
* @param {Object} data - The input data
|
|
178
|
+
* @param {Object} options - Additional options for transformation
|
|
179
|
+
* @returns {Object} - Transformed payload based on channel type
|
|
180
|
+
*/
|
|
181
|
+
export const transformChannelPayload = (data, options = {}) => {
|
|
182
|
+
const channel = data.channel?.toUpperCase();
|
|
183
|
+
|
|
184
|
+
switch (channel) {
|
|
185
|
+
case "SMS":
|
|
186
|
+
return transformSmsPayload(data, options);
|
|
187
|
+
case "MOBILEPUSH":
|
|
188
|
+
return transformMpushPayload(data, options);
|
|
189
|
+
case "EMAIL":
|
|
190
|
+
return transformEmailPayload(data, options);
|
|
191
|
+
default:
|
|
192
|
+
return data; // Return unchanged for unsupported channels
|
|
193
|
+
}
|
|
194
|
+
};
|
|
@@ -44,7 +44,7 @@ import EDMEditor from "../Edmeditor";
|
|
|
44
44
|
import BeeEditor from '../../v2Containers/BeeEditor';
|
|
45
45
|
import CustomPopOver from '../CustomPopOver';
|
|
46
46
|
import messages from './messages';
|
|
47
|
-
import { makeSelectMetaEntities, selectCurrentOrgDetails, selectLiquidStateDetails } from "../../v2Containers/Cap/selectors";
|
|
47
|
+
import { makeSelectMetaEntities, selectCurrentOrgDetails, selectLiquidStateDetails, selectMetaTagsStatus } from "../../v2Containers/Cap/selectors";
|
|
48
48
|
import * as actions from "../../v2Containers/Cap/actions";
|
|
49
49
|
import './_formBuilder.scss';
|
|
50
50
|
import {updateCharCount, checkUnicode} from "../../utils/smsCharCountV2";
|
|
@@ -59,6 +59,7 @@ import { CUSTOMER_BARCODE_TAG , COPY_OF, ENTRY_TRIGGER_TAG_REGEX} from '../../co
|
|
|
59
59
|
import { hasLiquidSupportFeature, isEmailUnsubscribeTagMandatory } from '../../utils/common';
|
|
60
60
|
import { isUrl } from '../../v2Containers/Line/Container/Wrapper/utils';
|
|
61
61
|
import { bindActionCreators } from 'redux';
|
|
62
|
+
import { transformFormDataToAPIPayload } from './utils';
|
|
62
63
|
|
|
63
64
|
const TabPane = Tabs.TabPane;
|
|
64
65
|
const {Column} = Table;
|
|
@@ -1064,6 +1065,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1064
1065
|
};
|
|
1065
1066
|
handleLiquidTemplateSubmit =(templateContent) => {
|
|
1066
1067
|
if(templateContent){this.setState((prevState) => {
|
|
1068
|
+
console.log('**** handleLiquidTemplateSubmit: ', { prevState, templateContent });
|
|
1067
1069
|
return {
|
|
1068
1070
|
formData: {
|
|
1069
1071
|
...prevState?.formData,
|
|
@@ -1082,6 +1084,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1082
1084
|
}
|
|
1083
1085
|
});}
|
|
1084
1086
|
}
|
|
1087
|
+
|
|
1085
1088
|
saveForm(saveForm) {
|
|
1086
1089
|
if (this.props.isNewVersionFlow && !saveForm) {
|
|
1087
1090
|
this.props.getValidationData();
|
|
@@ -3793,7 +3796,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
3793
3796
|
|
|
3794
3797
|
|
|
3795
3798
|
return (
|
|
3796
|
-
<CapSpin spinning={Boolean(this.liquidFlow && this.props.liquidExtractionInProgress)} tip={this.props.intl.formatMessage(messages.liquidSpinText)} >
|
|
3799
|
+
<CapSpin spinning={Boolean((this.liquidFlow && this.props.liquidExtractionInProgress) || this.props.metaIdStatus === 'REQUEST')} tip={this.props.intl.formatMessage(messages.liquidSpinText)} >
|
|
3797
3800
|
<CapRow>
|
|
3798
3801
|
{this.props.schema && this.renderForm()}
|
|
3799
3802
|
<SlideBox
|
|
@@ -3827,6 +3830,7 @@ FormBuilder.defaultProps = {
|
|
|
3827
3830
|
isNewVersionFlow: false,
|
|
3828
3831
|
userLocale: localStorage.getItem('jlocale') || 'en',
|
|
3829
3832
|
showLiquidErrorInFooter: () => {},
|
|
3833
|
+
metaIdStatus: false,
|
|
3830
3834
|
};
|
|
3831
3835
|
|
|
3832
3836
|
FormBuilder.propTypes = {
|
|
@@ -3875,11 +3879,13 @@ FormBuilder.propTypes = {
|
|
|
3875
3879
|
currentOrgDetails: PropTypes.object,
|
|
3876
3880
|
liquidExtractionInProgress: PropTypes.bool,
|
|
3877
3881
|
showLiquidErrorInFooter: PropTypes.func,
|
|
3882
|
+
loyaltyMetaData: PropTypes.object
|
|
3878
3883
|
};
|
|
3879
3884
|
|
|
3880
3885
|
const mapStateToProps = createStructuredSelector({
|
|
3881
3886
|
currentOrgDetails: selectCurrentOrgDetails(),
|
|
3882
3887
|
liquidExtractionInProgress: selectLiquidStateDetails(),
|
|
3888
|
+
metaIdStatus: selectMetaTagsStatus(),
|
|
3883
3889
|
metaEntities: makeSelectMetaEntities(),
|
|
3884
3890
|
});
|
|
3885
3891
|
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SMS,
|
|
3
|
+
MOBILE_PUSH,
|
|
4
|
+
EMAIL
|
|
5
|
+
} from "../../v2Containers/CreativesContainer/constants";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Transform form data to API payload format
|
|
9
|
+
* @param {object} formData - The form data from the UI
|
|
10
|
+
* @param {string} channel - The communication channel (EMAIL, SMS, WECHAT, MOBILE_PUSH)
|
|
11
|
+
* @param {object} params - Additional parameters like sourceEntityId, ouId, etc.
|
|
12
|
+
* @returns {object} - The formatted API payload
|
|
13
|
+
*/
|
|
14
|
+
export const transformFormDataToAPIPayload = (
|
|
15
|
+
formData,
|
|
16
|
+
loyaltyMetaData = {}
|
|
17
|
+
) => {
|
|
18
|
+
console.log("**** # transformDataToAPIPyaload: ", {
|
|
19
|
+
formData,
|
|
20
|
+
loyaltyMetaData
|
|
21
|
+
});
|
|
22
|
+
const {
|
|
23
|
+
actionId,
|
|
24
|
+
actionName,
|
|
25
|
+
ouId,
|
|
26
|
+
clientName,
|
|
27
|
+
module,
|
|
28
|
+
metaId,
|
|
29
|
+
setMetaId = () => {},
|
|
30
|
+
channel,
|
|
31
|
+
transformedMessageDetails
|
|
32
|
+
} = loyaltyMetaData;
|
|
33
|
+
|
|
34
|
+
const { emailDeliverySettings } = transformedMessageDetails;
|
|
35
|
+
const upperCaseChannel = channel.toUpperCase();
|
|
36
|
+
|
|
37
|
+
// Base response structure
|
|
38
|
+
const response = {
|
|
39
|
+
ouId: ouId || -1,
|
|
40
|
+
sourceEntityId: actionId,
|
|
41
|
+
channel: upperCaseChannel || this.props.schema.channel.toUpperCase(),
|
|
42
|
+
module,
|
|
43
|
+
executionParams: {},
|
|
44
|
+
clientName: clientName || "EMF"
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
switch (upperCaseChannel) {
|
|
48
|
+
case EMAIL: {
|
|
49
|
+
const subject = formData["template-subject"] || "";
|
|
50
|
+
const htmlContent = formData?.base?.en?.["template-content"] || "";
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
...response,
|
|
54
|
+
emailDeliverySettings: emailDeliverySettings || {},
|
|
55
|
+
emailMessageContent: {
|
|
56
|
+
channel: EMAIL,
|
|
57
|
+
messageBody: htmlContent,
|
|
58
|
+
messageSubject: subject
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
case SMS: {
|
|
64
|
+
// Extract SMS content from formData
|
|
65
|
+
const smsContent = formData["sms-editor"] || "";
|
|
66
|
+
const templateId = formData.template_id || "";
|
|
67
|
+
const templateName = formData.template_name || "";
|
|
68
|
+
const header = formData.header || "";
|
|
69
|
+
const varMapped = formData["var-mapped"] || {};
|
|
70
|
+
|
|
71
|
+
return {
|
|
72
|
+
...response,
|
|
73
|
+
smsDeliverySettings: {
|
|
74
|
+
additionalSettings: {
|
|
75
|
+
skipRateLimit: false
|
|
76
|
+
},
|
|
77
|
+
channelSettings: {
|
|
78
|
+
channel: SMS,
|
|
79
|
+
senderId: header || ""
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
smsMessageContent: {
|
|
83
|
+
channel: SMS,
|
|
84
|
+
messageBody: smsContent,
|
|
85
|
+
templateId,
|
|
86
|
+
templateName,
|
|
87
|
+
varMapped
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
case MOBILE_PUSH: {
|
|
93
|
+
// Extract Mobile Push content
|
|
94
|
+
const androidContent = formData.ANDROID || {};
|
|
95
|
+
const iosContent = formData.IOS || {};
|
|
96
|
+
|
|
97
|
+
return {
|
|
98
|
+
...response,
|
|
99
|
+
mobilePushDeliverySettings: {
|
|
100
|
+
additionalSettings: {
|
|
101
|
+
skipRateLimit: false
|
|
102
|
+
},
|
|
103
|
+
channelSettings: {
|
|
104
|
+
channel: MOBILE_PUSH
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
mobilePushMessageContent: {
|
|
108
|
+
channel: MOBILE_PUSH,
|
|
109
|
+
androidContent: {
|
|
110
|
+
title: androidContent.title || "",
|
|
111
|
+
body: androidContent.message || "",
|
|
112
|
+
type: androidContent.type || "TEXT",
|
|
113
|
+
custom: androidContent.custom || {}
|
|
114
|
+
},
|
|
115
|
+
iosContent: {
|
|
116
|
+
title: iosContent.title || "",
|
|
117
|
+
body: iosContent.message || "",
|
|
118
|
+
type: iosContent.type || "TEXT",
|
|
119
|
+
custom: iosContent.custom || {}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// case WECHAT: {
|
|
126
|
+
// // Extract WeChat content
|
|
127
|
+
// const wechatContent = formData.content || {};
|
|
128
|
+
|
|
129
|
+
// return {
|
|
130
|
+
// ...response,
|
|
131
|
+
// wechatDeliverySettings: {
|
|
132
|
+
// additionalSettings: {
|
|
133
|
+
// skipRateLimit: false
|
|
134
|
+
// },
|
|
135
|
+
// channelSettings: {
|
|
136
|
+
// channel: WECHAT
|
|
137
|
+
// }
|
|
138
|
+
// },
|
|
139
|
+
// wechatMessageContent: {
|
|
140
|
+
// channel: WECHAT,
|
|
141
|
+
// messageBody: wechatContent.body || "",
|
|
142
|
+
// templateId: wechatContent.templateId || "",
|
|
143
|
+
// templateName: wechatContent.templateName || "",
|
|
144
|
+
// varMapped: wechatContent.varMapped || {}
|
|
145
|
+
// }
|
|
146
|
+
// };
|
|
147
|
+
// }
|
|
148
|
+
|
|
149
|
+
default:
|
|
150
|
+
return response;
|
|
151
|
+
}
|
|
152
|
+
};
|
|
@@ -85,3 +85,12 @@ export const getLiquidTags = (data,callback) => {
|
|
|
85
85
|
callback,
|
|
86
86
|
};
|
|
87
87
|
};
|
|
88
|
+
|
|
89
|
+
export const createCentralCommsMetaId = (data, callback) => {
|
|
90
|
+
console.log("createCentralCommsMetaId action", data, callback);
|
|
91
|
+
return {
|
|
92
|
+
type: types.CREATE_CENTRAL_COMMS_META_ID_REQUEST,
|
|
93
|
+
data,
|
|
94
|
+
callback,
|
|
95
|
+
};
|
|
96
|
+
};
|
|
@@ -63,3 +63,7 @@ export const DEFAULT_MODULE = 'creatives';
|
|
|
63
63
|
export const GET_LIQUID_TAGS_FAILURE = 'cap/GET_LIQUID_TAGS_FAILURE_V2';
|
|
64
64
|
export const GET_LIQUID_TAGS_REQUEST = 'cap/GET_LIQUID_TAGS_REQUEST_V2';
|
|
65
65
|
export const GET_LIQUID_TAGS_SUCCESS = 'cap/GET_LIQUID_TAGS_SUCCESS_V2';
|
|
66
|
+
|
|
67
|
+
export const CREATE_CENTRAL_COMMS_META_ID_FAILURE = 'cap/CREATE_CENTRAL_COMMS_META_ID_FAILURE_V2';
|
|
68
|
+
export const CREATE_CENTRAL_COMMS_META_ID_REQUEST = 'cap/CREATE_CENTRAL_COMMS_META_ID_REQUEST_V2';
|
|
69
|
+
export const CREATE_CENTRAL_COMMS_META_ID_SUCCESS = 'cap/CREATE_CENTRAL_COMMS_META_ID_SUCCESS_V2';
|
|
@@ -199,6 +199,12 @@ function capReducer(state = fromJS(initialState.cap), action) {
|
|
|
199
199
|
return state
|
|
200
200
|
.set('demoVideoAndLinkJSONStatus', types.FAILURE)
|
|
201
201
|
.set('demoVideoAndLinkJSONError', action?.error);
|
|
202
|
+
case types.CREATE_CENTRAL_COMMS_META_ID_REQUEST:
|
|
203
|
+
return state.set('metaTagsStatus', types.REQUEST);
|
|
204
|
+
case types.CREATE_CENTRAL_COMMS_META_ID_SUCCESS:
|
|
205
|
+
return state.set('metaTagsStatus', types.SUCCESS);
|
|
206
|
+
case types.CREATE_CENTRAL_COMMS_META_ID_FAILURE:
|
|
207
|
+
return state.set('metaTagsStatus', types.FAILURE);
|
|
202
208
|
default:
|
|
203
209
|
return state;
|
|
204
210
|
}
|
|
@@ -186,6 +186,24 @@ const getTopbarData = (parentModule) => {
|
|
|
186
186
|
}
|
|
187
187
|
};
|
|
188
188
|
|
|
189
|
+
export function* createCentralCommsMetaId(action) {
|
|
190
|
+
try {
|
|
191
|
+
console.log("createCentralCommsMetaId saga", action);
|
|
192
|
+
const result = yield call(Api.createCentralCommsMetaId, action?.data);
|
|
193
|
+
console.log("createCentralCommsMetaId saga result", result);
|
|
194
|
+
if (result) {
|
|
195
|
+
if (action?.callback) {
|
|
196
|
+
yield call(action?.callback, result);
|
|
197
|
+
}
|
|
198
|
+
yield put({ type: types.CREATE_CENTRAL_COMMS_META_ID_SUCCESS, result });
|
|
199
|
+
} else {
|
|
200
|
+
yield put({ type: types.CREATE_CENTRAL_COMMS_META_ID_FAILURE });
|
|
201
|
+
}
|
|
202
|
+
} catch (error) {
|
|
203
|
+
yield put({ type: types.CREATE_CENTRAL_COMMS_META_ID_FAILURE, error });
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
189
207
|
function* getTopbarMenuData(params) {
|
|
190
208
|
const {parentModule} = params;
|
|
191
209
|
try {
|
|
@@ -225,6 +243,10 @@ export function* watchLiquidEntity() {
|
|
|
225
243
|
yield takeLatest(types.GET_LIQUID_TAGS_REQUEST, getLiquidTags);
|
|
226
244
|
}
|
|
227
245
|
|
|
246
|
+
export function* watchMetaId() {
|
|
247
|
+
yield takeLatest(types.CREATE_CENTRAL_COMMS_META_ID_REQUEST, createCentralCommsMetaId);
|
|
248
|
+
}
|
|
249
|
+
|
|
228
250
|
function* watchForOrgChange() {
|
|
229
251
|
yield takeLatest(types.SWITCH_ORG_REQUEST, switchOrg);
|
|
230
252
|
}
|
|
@@ -257,6 +279,7 @@ export default [
|
|
|
257
279
|
watchGetTopbarMenuData,
|
|
258
280
|
watchForGetVideosConfig,
|
|
259
281
|
watchLiquidEntity,
|
|
282
|
+
watchMetaId,
|
|
260
283
|
];
|
|
261
284
|
|
|
262
285
|
|
|
@@ -268,6 +291,7 @@ export function* capSagaForFetchSchemaForEntity() {
|
|
|
268
291
|
export function* capSagaLiquidEntity() {
|
|
269
292
|
yield all([
|
|
270
293
|
watchLiquidEntity(),
|
|
294
|
+
watchMetaId(),
|
|
271
295
|
]);
|
|
272
296
|
};
|
|
273
297
|
|
|
@@ -279,5 +303,6 @@ export function* v2CapSagas() {
|
|
|
279
303
|
watchForFetchUserInfo(),
|
|
280
304
|
watchGetTopbarMenuData(),
|
|
281
305
|
watchForGetVideosConfig(),
|
|
306
|
+
watchMetaId(),
|
|
282
307
|
]);
|
|
283
308
|
}
|
|
@@ -72,6 +72,11 @@ const selectLiquidStateDetails = () => createSelector(
|
|
|
72
72
|
(globalState) => globalState.get('fetchingLiquidTags')
|
|
73
73
|
);
|
|
74
74
|
|
|
75
|
+
const selectMetaTagsStatus = () => createSelector(
|
|
76
|
+
selectCapDomain,
|
|
77
|
+
(globalState) => globalState.get('metaTagsStatus')
|
|
78
|
+
);
|
|
79
|
+
|
|
75
80
|
const makeSelectFetchingSchema = () => createSelector(
|
|
76
81
|
selectCapDomain,
|
|
77
82
|
(globalState) => globalState.get('fetchingSchema')
|
|
@@ -113,4 +118,5 @@ export {
|
|
|
113
118
|
makeSelectFetchingSchemaError,
|
|
114
119
|
makeSelectDemoVideoAndLink,
|
|
115
120
|
selectLiquidStateDetails,
|
|
121
|
+
selectMetaTagsStatus,
|
|
116
122
|
};
|
|
@@ -158,6 +158,7 @@ export function SlideBoxContent(props) {
|
|
|
158
158
|
hostName = '',
|
|
159
159
|
eventContextTags,
|
|
160
160
|
isLoyaltyModule,
|
|
161
|
+
loyaltyMetaData = {},
|
|
161
162
|
} = props;
|
|
162
163
|
const type = (messageDetails.type || '').toLowerCase(); // type is context in get tags values : outbound | dvs | referral | loyalty | coupons
|
|
163
164
|
const query = { type: !isFullMode && 'embedded', module: isFullMode ? 'default' : 'library', isEditFromCampaigns: (templateData || {}).isEditFromCampaigns};
|
|
@@ -514,6 +515,8 @@ export function SlideBoxContent(props) {
|
|
|
514
515
|
onCreateComplete={onCreateComplete}
|
|
515
516
|
smsRegister={smsRegister}
|
|
516
517
|
eventContextTags={eventContextTags}
|
|
518
|
+
loyaltyMetaData={loyaltyMetaData}
|
|
519
|
+
messageDetails={messageDetails}
|
|
517
520
|
/>
|
|
518
521
|
)}
|
|
519
522
|
{isEditFTP && (
|
|
@@ -582,6 +585,8 @@ export function SlideBoxContent(props) {
|
|
|
582
585
|
smsRegister={smsRegister}
|
|
583
586
|
onShowTemplates={onShowTemplates}
|
|
584
587
|
eventContextTags={eventContextTags}
|
|
588
|
+
loyaltyMetaData={loyaltyMetaData}
|
|
589
|
+
messageDetails={messageDetails}
|
|
585
590
|
/>
|
|
586
591
|
)}
|
|
587
592
|
|
|
@@ -615,6 +620,8 @@ export function SlideBoxContent(props) {
|
|
|
615
620
|
showLiquidErrorInFooter={showLiquidErrorInFooter}
|
|
616
621
|
eventContextTags={eventContextTags}
|
|
617
622
|
isLoyaltyModule={isLoyaltyModule}
|
|
623
|
+
loyaltyMetaData={loyaltyMetaData}
|
|
624
|
+
messageDetails={messageDetails}
|
|
618
625
|
/>
|
|
619
626
|
)}
|
|
620
627
|
{(isEditEmailWithId || isEmailEditWithContent) && (
|
|
@@ -645,6 +652,8 @@ export function SlideBoxContent(props) {
|
|
|
645
652
|
showLiquidErrorInFooter={showLiquidErrorInFooter}
|
|
646
653
|
eventContextTags={eventContextTags}
|
|
647
654
|
isLoyaltyModule={isLoyaltyModule}
|
|
655
|
+
loyaltyMetaData={loyaltyMetaData}
|
|
656
|
+
messageDetails={messageDetails}
|
|
648
657
|
/>
|
|
649
658
|
)}
|
|
650
659
|
{isEditMPush &&
|
|
@@ -671,6 +680,8 @@ export function SlideBoxContent(props) {
|
|
|
671
680
|
hideTestAndPreviewBtn={hideTestAndPreviewBtn}
|
|
672
681
|
creativesMode={creativesMode}
|
|
673
682
|
eventContextTags={eventContextTags}
|
|
683
|
+
loyaltyMetaData={loyaltyMetaData}
|
|
684
|
+
messageDetails={messageDetails}
|
|
674
685
|
/>
|
|
675
686
|
}
|
|
676
687
|
{isCreateMPush &&
|
|
@@ -700,6 +711,8 @@ export function SlideBoxContent(props) {
|
|
|
700
711
|
hideTestAndPreviewBtn={hideTestAndPreviewBtn}
|
|
701
712
|
onTestContentClicked={onTestContentClicked}
|
|
702
713
|
eventContextTags={eventContextTags}
|
|
714
|
+
loyaltyMetaData={loyaltyMetaData}
|
|
715
|
+
messageDetails={messageDetails}
|
|
703
716
|
/>
|
|
704
717
|
}
|
|
705
718
|
{
|