@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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "7.17.198",
4
+ "version": "7.17.199",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { FormattedMessage } from 'react-intl';
3
- import { get } from 'lodash';
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 = (props) => {
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 props = {
93
- location: {
94
- query: {
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 props = {
106
- location: {
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 props = {
118
- location: {
119
- query: {
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 props = {
130
- location: {
131
- query: {
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
- if (isEmbeddedEditOrPreview(this.props)) {
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(this.props) && !_.isEqual(this.props.Edit.selectedWeChatAccount?.id, this.props.Edit.templateDetails?.definition?.accountId)) {
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
- if (isEmbeddedEditOrPreview(this.props)) {
234
- if (!_.isEmpty(this.props.Edit.selectedWeChatAccount)) {
235
- selectedWeChatAccount = this.props.Edit.selectedWeChatAccount;
236
- } else {
237
- selectedWeChatAccount = this.props.Templates.selectedWeChatAccount;
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
- if (isEmbeddedEditOrPreview(this.props)) {
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
- if (isEmbeddedEditOrPreview(this.props) && this.props.Edit.selectedWeChatAccount && !_.isEmpty(this.props.Edit.selectedWeChatAccount)) {
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
- if (isEmbeddedEditOrPreview(this.props)) {
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);