@capillarytech/creatives-library 7.17.198 → 7.17.199
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/package.json
CHANGED
package/utils/commonUtils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FormattedMessage } from 'react-intl';
|
|
3
|
-
import
|
|
3
|
+
import get from 'lodash/get';
|
|
4
4
|
import { EMBEDDED } from '../v2Containers/Whatsapp/constants';
|
|
5
5
|
import { EDIT, PREVIEW } from '../v2Containers/App/constants';
|
|
6
6
|
|
|
@@ -24,9 +24,5 @@ export const addBaseToTemplate = (template) => {
|
|
|
24
24
|
return template;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
export const isEmbeddedEditOrPreview = (
|
|
28
|
-
const queryType = String(get(props, 'location.query.type', '')).toLowerCase();
|
|
29
|
-
const creativesMode = String(get(props, 'creativesMode', '')).toLowerCase();
|
|
30
|
-
return queryType === EMBEDDED.toLowerCase() &&
|
|
27
|
+
export const isEmbeddedEditOrPreview = (queryType, creativesMode) => queryType === EMBEDDED.toLowerCase() &&
|
|
31
28
|
(creativesMode === EDIT.toLowerCase() || creativesMode === PREVIEW.toLowerCase());
|
|
32
|
-
};
|
|
@@ -5,6 +5,7 @@ import * as mockdata from "./common.mockdata";
|
|
|
5
5
|
import { addBaseToTemplate, isEmbeddedEditOrPreview } from "../commonUtils";
|
|
6
6
|
import { EMBEDDED, FULL } from "../../v2Containers/Whatsapp/constants";
|
|
7
7
|
import { CREATE, EDIT, PREVIEW } from "../../v2Containers/App/constants";
|
|
8
|
+
import { query } from "express";
|
|
8
9
|
|
|
9
10
|
jest.mock('@capillarytech/cap-ui-utils', () => ({
|
|
10
11
|
Auth: {
|
|
@@ -89,51 +90,26 @@ describe('isEmbeddedEditOrPreview', () => {
|
|
|
89
90
|
});
|
|
90
91
|
|
|
91
92
|
it('should return true when query type is embedded and creatives mode is edit', () => {
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
type: EMBEDDED,
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
creativesMode: EDIT,
|
|
99
|
-
};
|
|
100
|
-
expect(isEmbeddedEditOrPreview(props)).toBe(true);
|
|
93
|
+
const queryType = EMBEDDED;
|
|
94
|
+
const creativesMode = EDIT;
|
|
95
|
+
expect(isEmbeddedEditOrPreview(queryType, creativesMode)).toBe(true);
|
|
101
96
|
});
|
|
102
97
|
|
|
103
98
|
it('should return true when query type is embedded and creatives mode is preview', () => {
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
query: {
|
|
108
|
-
type: EMBEDDED,
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
creativesMode: PREVIEW,
|
|
112
|
-
};
|
|
113
|
-
expect(isEmbeddedEditOrPreview(props)).toBe(true);
|
|
99
|
+
const queryType = EMBEDDED;
|
|
100
|
+
const creativesMode = PREVIEW;
|
|
101
|
+
expect(isEmbeddedEditOrPreview(queryType, creativesMode)).toBe(true);
|
|
114
102
|
});
|
|
115
103
|
|
|
116
104
|
it('should return false when query type is not embedded', () => {
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
type: FULL,
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
creativesMode: EDIT,
|
|
124
|
-
};
|
|
125
|
-
expect(isEmbeddedEditOrPreview(props)).toBe(false);
|
|
105
|
+
const queryType = FULL;
|
|
106
|
+
const creativesMode = PREVIEW;
|
|
107
|
+
expect(isEmbeddedEditOrPreview(queryType, creativesMode)).toBe(false);
|
|
126
108
|
});
|
|
127
109
|
|
|
128
110
|
it('should return false when creatives mode is not edit or preview', () => {
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
type: EMBEDDED,
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
creativesMode: CREATE,
|
|
136
|
-
};
|
|
137
|
-
expect(isEmbeddedEditOrPreview(props)).toBe(false);
|
|
111
|
+
const queryType = EMBEDDED;
|
|
112
|
+
const creativesMode = CREATE;
|
|
113
|
+
expect(isEmbeddedEditOrPreview(queryType, creativesMode)).toBe(false);
|
|
138
114
|
});
|
|
139
115
|
});
|
|
@@ -1312,7 +1312,7 @@ export class Creatives extends React.Component {
|
|
|
1312
1312
|
getCmsTemplatesInProgress={this.props.Templates?.getCmsTemplatesInProgress}
|
|
1313
1313
|
moduleType={this.props.messageDetails?.type}
|
|
1314
1314
|
showLiquidErrorInFooter={this.showLiquidErrorInFooter}
|
|
1315
|
-
creativesMode={creativesMode}
|
|
1315
|
+
creativesMode={creativesMode} // An existing prop that we're using here. Required to ensure correct account details in Edit or Preview in case of Embedded mode.
|
|
1316
1316
|
/>
|
|
1317
1317
|
}
|
|
1318
1318
|
footer={this.shouldShowFooter() &&
|
|
@@ -108,7 +108,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
108
108
|
this.startValidation();
|
|
109
109
|
}
|
|
110
110
|
let selectedWeChatAccount = {};
|
|
111
|
-
|
|
111
|
+
const queryType = String(get(this.props, 'location.query.type', ''))?.toLowerCase();
|
|
112
|
+
const creativesMode = String(get(this.props, 'creativesMode', ''))?.toLowerCase();
|
|
113
|
+
if (isEmbeddedEditOrPreview(queryType, creativesMode)) {
|
|
112
114
|
selectedWeChatAccount = !_.isEmpty(this.props.Edit.selectedWeChatAccount)
|
|
113
115
|
? this.props.Edit.selectedWeChatAccount
|
|
114
116
|
: nextProps.Edit.selectedWeChatAccount;
|
|
@@ -121,7 +123,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
121
123
|
}
|
|
122
124
|
// Check if the query type is 'embedded' and the creatives mode is either 'edit' or 'preview'. Also, ensure that the selected WeChat account ID is not equal to the account ID in the template details.
|
|
123
125
|
// If all conditions are met, set the mobile push account options using the provided weCrmAccounts and the account ID from templateData.
|
|
124
|
-
if (isEmbeddedEditOrPreview(
|
|
126
|
+
if (isEmbeddedEditOrPreview(queryType, creativesMode) && !_.isEqual(this.props.Edit.selectedWeChatAccount?.id, this.props.Edit.templateDetails?.definition?.accountId)) {
|
|
125
127
|
this.setMobilePushAccountOptions(nextProps.Edit.weCrmAccounts, get(this.props, "templateData.definition.accountId"));
|
|
126
128
|
}
|
|
127
129
|
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") {
|
|
@@ -229,13 +231,12 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
229
231
|
|
|
230
232
|
getWeChatAccount = () => {
|
|
231
233
|
let selectedWeChatAccount = {};
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
234
|
+
const queryType = String(get(this.props, 'location.query.type', ''))?.toLowerCase();
|
|
235
|
+
const creativesMode = String(get(this.props, 'creativesMode', ''))?.toLowerCase();
|
|
236
|
+
if (isEmbeddedEditOrPreview(queryType, creativesMode)) {
|
|
237
|
+
selectedWeChatAccount = !_.isEmpty(this.props.Edit.selectedWeChatAccount)
|
|
238
|
+
? this.props.Edit.selectedWeChatAccount
|
|
239
|
+
: this.props.Templates.selectedWeChatAccount;
|
|
239
240
|
} else if (!_.isEmpty(this.props.Templates.selectedWeChatAccount)) {
|
|
240
241
|
selectedWeChatAccount = this.props.Templates.selectedWeChatAccount;
|
|
241
242
|
}
|
|
@@ -375,8 +376,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
375
376
|
};
|
|
376
377
|
obj.type = 'MOBILEPUSH';
|
|
377
378
|
obj.name = formData['template-name'];
|
|
378
|
-
|
|
379
|
-
|
|
379
|
+
const queryType = String(get(this.props, 'location.query.type', ''))?.toLowerCase();
|
|
380
|
+
const creativesMode = String(get(this.props, 'creativesMode', ''))?.toLowerCase();
|
|
381
|
+
if (isEmbeddedEditOrPreview(queryType, creativesMode)) {
|
|
380
382
|
if (get(this.props, 'Edit.selectedWeChatAccount.sourceTypeName') === MAPP_SDK) {
|
|
381
383
|
obj.definition = this.createDefinition(selectedWeChatAccount);
|
|
382
384
|
} else {
|
|
@@ -1518,7 +1520,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1518
1520
|
temp.options = this.state.templateOptions ? this.state.accountsOptions : [];
|
|
1519
1521
|
}
|
|
1520
1522
|
if (temp.id === "mobile-push-preview") {
|
|
1521
|
-
|
|
1523
|
+
const queryType = String(get(this.props, 'location.query.type', ''))?.toLowerCase();
|
|
1524
|
+
const creativesMode = String(get(this.props, 'creativesMode', ''))?.toLowerCase();
|
|
1525
|
+
if (isEmbeddedEditOrPreview(queryType, creativesMode) && this.props.Edit.selectedWeChatAccount && !_.isEmpty(this.props.Edit.selectedWeChatAccount)) {
|
|
1522
1526
|
temp.content.appName = this.props.Edit.selectedWeChatAccount.name;
|
|
1523
1527
|
} else if (this.props.Templates.selectedWeChatAccount && !_.isEmpty(this.props.Templates.selectedWeChatAccount)) {
|
|
1524
1528
|
temp.content.appName = this.props.Templates.selectedWeChatAccount.name;
|
|
@@ -1744,7 +1748,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1744
1748
|
if (!_.isEmpty(actionText)) {
|
|
1745
1749
|
this.deleteSecondaryCtaIos();
|
|
1746
1750
|
}
|
|
1747
|
-
|
|
1751
|
+
const queryType = String(get(this.props, 'location.query.type', ''))?.toLowerCase();
|
|
1752
|
+
const creativesMode = String(get(this.props, 'creativesMode', ''))?.toLowerCase();
|
|
1753
|
+
if (isEmbeddedEditOrPreview(queryType, creativesMode)) {
|
|
1748
1754
|
this.props.actions.getIosCtas(this.props.Edit.selectedWeChatAccount.sourceAccountIdentifier);
|
|
1749
1755
|
} else {
|
|
1750
1756
|
this.props.actions.getIosCtas(this.props.Templates.selectedWeChatAccount.sourceAccountIdentifier);
|