@capillarytech/creatives-library 7.17.198 → 7.17.200
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
|
-
|
|
29
|
-
const creativesMode = String(get(props, 'creativesMode', '')).toLowerCase();
|
|
30
|
-
return queryType === EMBEDDED.toLowerCase() &&
|
|
31
|
-
(creativesMode === EDIT.toLowerCase() || creativesMode === PREVIEW.toLowerCase());
|
|
32
|
-
};
|
|
27
|
+
export const isEmbeddedEditOrPreview = (queryType, creativesMode) => queryType === EMBEDDED &&
|
|
28
|
+
[EDIT, PREVIEW].include(creativesMode);
|
|
@@ -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") {
|
|
@@ -228,19 +230,22 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
228
230
|
};
|
|
229
231
|
|
|
230
232
|
getWeChatAccount = () => {
|
|
233
|
+
const { location, creativesMode, Edit: EditProps, Templates } = this.props || {};
|
|
234
|
+
const { query } = location || {};
|
|
235
|
+
const { selectedWeChatAccount: editSelectedWeChatAccount } = EditProps || {};
|
|
236
|
+
const { selectedWeChatAccount: templateSelectedWeChatAccount } = Templates || {};
|
|
237
|
+
const queryType = String(get(query, 'type', '')).toLowerCase();
|
|
238
|
+
const mode = String(creativesMode).toLowerCase();
|
|
231
239
|
let selectedWeChatAccount = {};
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
239
|
-
} else if (!_.isEmpty(this.props.Templates.selectedWeChatAccount)) {
|
|
240
|
-
selectedWeChatAccount = this.props.Templates.selectedWeChatAccount;
|
|
240
|
+
if (isEmbeddedEditOrPreview(queryType, mode)) {
|
|
241
|
+
selectedWeChatAccount = !_.isEmpty(editSelectedWeChatAccount)
|
|
242
|
+
? editSelectedWeChatAccount
|
|
243
|
+
: templateSelectedWeChatAccount;
|
|
244
|
+
} else if (!_.isEmpty(templateSelectedWeChatAccount)) {
|
|
245
|
+
selectedWeChatAccount = templateSelectedWeChatAccount;
|
|
241
246
|
}
|
|
242
247
|
return selectedWeChatAccount;
|
|
243
|
-
}
|
|
248
|
+
};
|
|
244
249
|
|
|
245
250
|
onLinkTypeChange = (eventTriggered, formData, field, currentTab, inputSchema) => {
|
|
246
251
|
const selectedWeChatAccount = this.getWeChatAccount();
|
|
@@ -375,8 +380,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
375
380
|
};
|
|
376
381
|
obj.type = 'MOBILEPUSH';
|
|
377
382
|
obj.name = formData['template-name'];
|
|
378
|
-
|
|
379
|
-
|
|
383
|
+
const queryType = String(get(this.props, 'location.query.type', ''))?.toLowerCase();
|
|
384
|
+
const creativesMode = String(get(this.props, 'creativesMode', ''))?.toLowerCase();
|
|
385
|
+
if (isEmbeddedEditOrPreview(queryType, creativesMode)) {
|
|
380
386
|
if (get(this.props, 'Edit.selectedWeChatAccount.sourceTypeName') === MAPP_SDK) {
|
|
381
387
|
obj.definition = this.createDefinition(selectedWeChatAccount);
|
|
382
388
|
} else {
|
|
@@ -1518,10 +1524,16 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1518
1524
|
temp.options = this.state.templateOptions ? this.state.accountsOptions : [];
|
|
1519
1525
|
}
|
|
1520
1526
|
if (temp.id === "mobile-push-preview") {
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1527
|
+
const { location, creativesMode, Edit: EditProps, Templates } = this.props || {};
|
|
1528
|
+
const { query } = location || {};
|
|
1529
|
+
const { selectedWeChatAccount: editSelectedWeChatAccount } = EditProps || {};
|
|
1530
|
+
const { selectedWeChatAccount: templateSelectedWeChatAccount } = Templates || {};
|
|
1531
|
+
const queryType = String(get(query, 'type', ''))?.toLowerCase();
|
|
1532
|
+
const mode = String(creativesMode).toLowerCase();
|
|
1533
|
+
if (isEmbeddedEditOrPreview(queryType, mode) && !_.isEmpty(editSelectedWeChatAccount)) {
|
|
1534
|
+
temp.content.appName = editSelectedWeChatAccount?.name;
|
|
1535
|
+
} else if (!_.isEmpty(templateSelectedWeChatAccount)) {
|
|
1536
|
+
temp.content.appName = templateSelectedWeChatAccount?.name;
|
|
1525
1537
|
}
|
|
1526
1538
|
}
|
|
1527
1539
|
_.forEach(col.supportedEvents, (event) => {
|
|
@@ -1744,7 +1756,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1744
1756
|
if (!_.isEmpty(actionText)) {
|
|
1745
1757
|
this.deleteSecondaryCtaIos();
|
|
1746
1758
|
}
|
|
1747
|
-
|
|
1759
|
+
const queryType = String(get(this.props, 'location.query.type', ''))?.toLowerCase();
|
|
1760
|
+
const creativesMode = String(get(this.props, 'creativesMode', ''))?.toLowerCase();
|
|
1761
|
+
if (isEmbeddedEditOrPreview(queryType, creativesMode)) {
|
|
1748
1762
|
this.props.actions.getIosCtas(this.props.Edit.selectedWeChatAccount.sourceAccountIdentifier);
|
|
1749
1763
|
} else {
|
|
1750
1764
|
this.props.actions.getIosCtas(this.props.Templates.selectedWeChatAccount.sourceAccountIdentifier);
|