@capillarytech/creatives-library 8.0.128 → 8.0.129-alpha.5

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 CHANGED
@@ -20,7 +20,7 @@ const config = {
20
20
  accountConfig: (strs, accountId) => `${window.location.origin}/org/config/AccountAdd?q=a&channelId=2&accountId=${accountId}&edit=1`,
21
21
  },
22
22
  development: {
23
- api_endpoint: 'https://crm-nightly-new.cc.capillarytech.com/arya/api/v1/creatives',
23
+ api_endpoint: 'http://localhost:2022/arya/api/v1/creatives',
24
24
  campaigns_api_endpoint: 'https://crm-nightly-new.cc.capillarytech.com/iris/v2/campaigns',
25
25
  campaigns_api_org_endpoint: 'https://crm-nightly-new.cc.capillarytech.com/iris/v2/org/campaign',
26
26
  auth_endpoint: 'https://crm-nightly-new.cc.capillarytech.com/arya/api/v1/auth',
@@ -112,7 +112,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
112
112
  componentWillMount() {
113
113
  if (this.state.channel === '') {
114
114
  let channel = '';
115
-
115
+
116
116
  switch (this.props.route.name.toLowerCase()) {
117
117
  case "sms":
118
118
  channel = 'Sms';
@@ -134,6 +134,10 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
134
134
  case "line":
135
135
  channel = "Line";
136
136
  break;
137
+ case "whatsapp":
138
+ channel = "whatsapp";
139
+ this.props.actions.getWeCrmAccounts();
140
+ break;
137
141
  default:
138
142
  channel = '';
139
143
  }
@@ -146,7 +150,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
146
150
  if (this.props.location.query.type === 'embedded' && this.isEnabledInLibraryModule("setLocale")) {
147
151
  this.setLocale();
148
152
  }
149
- if (this.state.channel.toLowerCase() === 'line' || this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill' || ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && !_.isEmpty(this.props.Templates.selectedWeChatAccount))) {
153
+ if (this.state.channel.toLowerCase() === 'line' || this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill' || ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush' || this.state.channel.toLowerCase() === 'whatsapp') && !_.isEmpty(this.props.Templates.selectedWeChatAccount))) {
150
154
  const queryParams = {
151
155
  // name: this.state.searchText,
152
156
  // sortBy: this.state.sortBy,
@@ -156,6 +160,13 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
156
160
  queryParams.wecrmToken = this.props.Templates.selectedWeChatAccount.configs.wecrm_token;
157
161
  queryParams.originalId = this.props.Templates.selectedWeChatAccount.sourceAccountIdentifier;
158
162
  }
163
+ if (this.state.channel.toLowerCase() === 'whatsapp' && !_.isEmpty(this.props.Templates.selectedWeChatAccount)) {
164
+ const { configs = {}, sourceAccountIdentifier = '' } = this.props.Templates.selectedWeChatAccount;
165
+ queryParams.hostName = this.props.Templates.selectedWeChatAccount.hostName;
166
+ queryParams.wabaId = sourceAccountIdentifier;
167
+ queryParams.accessToken = configs.accessToken;
168
+ queryParams.phoneId = configs.promotionalMessagingSSID;
169
+ }
159
170
  if (this.state.channel.toLowerCase() === "mobilepush" && !_.isEmpty(this.props.Templates.selectedWeChatAccount)) {
160
171
  queryParams.accountId = this.props.Templates.selectedWeChatAccount.id;
161
172
  }
@@ -168,11 +179,11 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
168
179
  // this.props.actions.getEdmDefaultTemplates();
169
180
  // }
170
181
  }
171
-
182
+
172
183
  window.addEventListener("message", this.handleFrameTasks);
173
184
  }
174
185
  componentWillReceiveProps(nextProps) {
175
-
186
+
176
187
  const params = {
177
188
  name: this.state.searchText,
178
189
  sortBy: this.state.sortBy,
@@ -202,14 +213,21 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
202
213
  } else if (nextProps.route.name.toLowerCase() === 'line') {
203
214
  channel = 'Line';
204
215
  }
205
- //
216
+ //
206
217
  this.setState({ channel }, () => {
207
- if (this.state.channel.toLowerCase() === 'line' || this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill' || (this.state.channel.toLowerCase() === 'wechat' && !_.isEmpty(nextProps.Templates.selectedWeChatAccount))) {
218
+ if (this.state.channel.toLowerCase() === 'line' || this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill' || (this.state.channel.toLowerCase() === 'wechat' && !_.isEmpty(nextProps.Templates.selectedWeChatAccount)) || (this.state.channel.toLowerCase() === 'whatsapp' && !_.isEmpty(nextProps.Templates.selectedWeChatAccount))) {
208
219
  if (this.state.channel.toLowerCase() === 'wechat' && !_.isEmpty(nextProps.Templates.selectedWeChatAccount)) {
209
220
  params.wecrmId = (nextProps.Templates.selectedWeChatAccount.configs || {}).wecrm_app_id;
210
221
  params.wecrmToken = (nextProps.Templates.selectedWeChatAccount.configs || {}).wecrm_token;
211
222
  params.originalId = nextProps.Templates.selectedWeChatAccount.sourceAccountIdentifier;
212
223
  }
224
+ if (this.state.channel.toLowerCase() === 'whatsapp' && !_.isEmpty(nextProps.Templates.selectedWeChatAccount)) {
225
+ const { configs = {}, sourceAccountIdentifier = '' } = nextProps.Templates.selectedWeChatAccount;
226
+ params.hostName = nextProps.Templates.selectedWeChatAccount.hostName;
227
+ params.wabaId = sourceAccountIdentifier;
228
+ params.accessToken = configs.accessToken;
229
+ params.phoneId = configs.promotionalMessagingSSID;
230
+ }
213
231
  if (this.state.channel.toLowerCase() === "mobilepush" && !_.isEmpty(nextProps.Templates.selectedWeChatAccount)) {
214
232
  params.accountId = nextProps.Templates.selectedWeChatAccount.id;
215
233
  }
@@ -314,14 +332,14 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
314
332
  }
315
333
  if (!nextProps.Templates.deleteTemplateInProgress && !_.isEqual(nextProps.Templates.deleteTemplateInProgress, this.props.Templates.deleteTemplateInProgress) &&
316
334
  nextProps.Templates.deleteResponse) {
317
-
335
+
318
336
  const message = getMessageObject('success', `${this.state.channel.toUpperCase()} ${this.props.intl.formatMessage(messages['Template deleted successfully'])}`, true);
319
337
  nextProps.globalActions.addMessageToQueue(message);
320
338
  this.getAllTemplates({params, resetPage: true});
321
339
  }
322
340
 
323
341
  if (!nextProps.Templates.sendingFile && !_.isEqual(this.props.Templates.sendingFile, nextProps.Templates.sendingFile) && !nextProps.Templates.errorSendingFile) {
324
-
342
+
325
343
  const module = this.props.location.query.module ? this.props.location.query.module : 'default';
326
344
  const isLanguageSupport = (this.props.location.query.isLanguageSupport) ? this.props.location.query.isLanguageSupport : true;
327
345
  const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
@@ -369,14 +387,14 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
369
387
  }
370
388
 
371
389
  componentWillUnmount() {
372
-
390
+
373
391
  window.removeEventListener("message", this.handleFrameTasks);
374
392
  this.props.actions.resetTemplateStoreData();
375
393
  // this.setState({defaultAccount: false});
376
394
  }
377
395
 
378
396
  onAccountSelect(value, option) {
379
-
397
+
380
398
  this.setState({selectedAccount: value}, () => {
381
399
  const params = {
382
400
  name: this.state.searchText,
@@ -391,7 +409,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
391
409
  this.props.actions.setWeChatAccount(this.props.Templates.weCrmAccounts[_.findIndex(this.props.Templates.weCrmAccounts, { name: value})]);
392
410
  params.accountId = this.props.Templates.weCrmAccounts[_.findIndex(this.props.Templates.weCrmAccounts, { name: value})].id;
393
411
  }
394
-
412
+
395
413
  this.getAllTemplates({params, resetPage: true});
396
414
  });
397
415
  }
@@ -404,7 +422,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
404
422
  }
405
423
  locale = this.getMappedLocale(locale);
406
424
  //locale = 'zh';
407
-
425
+
408
426
  moment.locale(locale);
409
427
  };
410
428
 
@@ -419,7 +437,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
419
437
  getAllTemplates = ({params, getNextPage, resetPage}, resetTemplates) => {
420
438
  let queryParams = params;
421
439
  let page = this.state.page;
422
-
440
+
423
441
  if (resetTemplates) {
424
442
  queryParams.name = this.state.searchText;
425
443
  queryParams.sortBy = this.state.sortBy;
@@ -446,6 +464,13 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
446
464
  queryParams.wecrmToken = this.props.Templates.selectedWeChatAccount.configs.wecrm_token;
447
465
  queryParams.originalId = this.props.Templates.selectedWeChatAccount.sourceAccountIdentifier;
448
466
  }
467
+ if (this.state.channel.toLowerCase() === 'whatsapp' && !_.isEmpty(this.props.Templates.selectedWeChatAccount)) {
468
+ const { configs = {}, sourceAccountIdentifier = '' } = this.props.Templates.selectedWeChatAccount;
469
+ queryParams.hostName = this.props.Templates.selectedWeChatAccount.hostName;
470
+ queryParams.wabaId = sourceAccountIdentifier;
471
+ queryParams.accessToken = configs.accessToken;
472
+ queryParams.phoneId = configs.promotionalMessagingSSID;
473
+ }
449
474
  if (this.state.channel.toLowerCase() === "mobilepush" && !_.isEmpty(this.props.Templates.selectedWeChatAccount)) {
450
475
  queryParams.accountId = this.props.Templates.selectedWeChatAccount.id;
451
476
  if (this.state.mode) {
@@ -463,7 +488,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
463
488
  };
464
489
 
465
490
  getCurrentWindow(e) {
466
-
491
+
467
492
  const response = {
468
493
  action: e.action,
469
494
  value: 'templates',
@@ -471,9 +496,9 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
471
496
  };
472
497
  parent.postMessage(JSON.stringify(response), '*');
473
498
  }
474
-
499
+
475
500
  skipTemplateSelection = (e) => {
476
-
501
+
477
502
  const type = this.props.location.query.type;
478
503
  const module = (type === 'embedded') ? this.props.location.query.module : 'default';
479
504
  if (this.state.channel.toLowerCase() === 'email') {
@@ -514,12 +539,12 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
514
539
  }
515
540
 
516
541
  handleMenuAction = (item = {}, key) => {
517
-
542
+
518
543
  if ((item.key || '').toLowerCase() === 'uploadfile') {
519
544
  document.getElementById('filename').click();
520
-
545
+
521
546
  } else if ((item.key || '').toLowerCase() === 'useeditor') {
522
-
547
+
523
548
  this.toggleEdmEmailTemplateSelection();
524
549
  }
525
550
  };
@@ -688,17 +713,17 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
688
713
  return result;
689
714
  }
690
715
  startLoading(ifEdit) {
691
-
716
+
692
717
  if (ifEdit) {
693
718
  this.setState({loading: true});
694
719
  }
695
720
  }
696
721
 
697
722
  startTemplateCreation(data) {
698
-
723
+
699
724
  if (data.edit) {
700
725
  const ifUnicode = checkUnicode(data.content);
701
-
726
+
702
727
  const content = data.content;
703
728
  const tempData = {
704
729
  'sms-editor': content,
@@ -713,10 +738,10 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
713
738
  }
714
739
 
715
740
  handleFrameTasks = (e) => {
716
-
741
+
717
742
  const type = e.data;
718
743
  if (typeof type === 'object') {
719
-
744
+
720
745
  const action = type.action;
721
746
  switch (action) {
722
747
  case "startTemplateCreation":
@@ -737,11 +762,11 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
737
762
  }
738
763
  switch (type) {
739
764
  case "startTemplateCreation":
740
-
765
+
741
766
  //this.getFormData(e);
742
767
  break;
743
768
  case "validateContent":
744
-
769
+
745
770
  this.validateContent(e);
746
771
  break;
747
772
  default:
@@ -801,7 +826,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
801
826
  }
802
827
 
803
828
  searchTemplate(data) {
804
-
829
+
805
830
  this.setState({searchText: data}, () => {
806
831
  const params = {
807
832
  name: this.state.searchText,
@@ -812,6 +837,13 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
812
837
  params.wecrmToken = this.props.Templates.selectedWeChatAccount.configs.wecrm_token;
813
838
  params.originalId = this.props.Templates.selectedWeChatAccount.sourceAccountIdentifier;
814
839
  }
840
+ if (this.state.channel.toLowerCase() === 'whatsapp') {
841
+ const { configs = {}, sourceAccountIdentifier = '' } = this.props.Templates.selectedWeChatAccount;
842
+ params.hostName = this.props.Templates.selectedWeChatAccount.hostName;
843
+ params.wabaId = sourceAccountIdentifier;
844
+ params.accessToken = configs.accessToken;
845
+ params.phoneId = configs.promotionalMessagingSSID;
846
+ }
815
847
  if (this.state.channel.toLowerCase() === "mobilepush") {
816
848
  params.accountId = this.props.Templates.selectedWeChatAccount.id;
817
849
  }
@@ -830,6 +862,13 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
830
862
  params.wecrmToken = this.props.Templates.selectedWeChatAccount.configs.wecrm_token;
831
863
  params.originalId = this.props.Templates.selectedWeChatAccount.sourceAccountIdentifier;
832
864
  }
865
+ if (this.state.channel.toLowerCase() === 'whatsapp') {
866
+ const { configs = {}, sourceAccountIdentifier = '' } = this.props.Templates.selectedWeChatAccount;
867
+ params.hostName = this.props.Templates.selectedWeChatAccount.hostName;
868
+ params.wabaId = sourceAccountIdentifier;
869
+ params.accessToken = configs.accessToken;
870
+ params.phoneId = configs.promotionalMessagingSSID;
871
+ }
833
872
  if (this.state.channel.toLowerCase() === "mobilepush") {
834
873
  params.accountId = this.props.Templates.selectedWeChatAccount.id;
835
874
  }
@@ -855,14 +894,14 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
855
894
  if (this.state.channel.toLowerCase() === 'ebill' || this.state.channel.toLowerCase() === 'email') {
856
895
  this.toggleEmailPreview();
857
896
  } else {
858
-
897
+
859
898
  this.setState( (prevState) => ({
860
899
  previewOpen: !prevState.previewOpen}));
861
900
  }
862
901
  }
863
902
 
864
903
  toggleEdmEmailTemplateSelection = () => {
865
-
904
+
866
905
  this.setState( (prevState) => ({
867
906
  showEdmEmailTemplates: !prevState.showEdmEmailTemplates}), () => {
868
907
  this.props.actions.getEdmDefaultTemplates();
@@ -870,13 +909,13 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
870
909
  };
871
910
 
872
911
  deleteTemplate(template) {
873
-
912
+
874
913
  this.props.actions.deleteTemplate(this.state.channel.toUpperCase(), template._id);
875
914
  this.setState({actionTemplate: {}});
876
915
  }
877
916
 
878
917
  duplicateTemplate(template) {
879
-
918
+
880
919
  const duplicateObj = _.cloneDeep(template);
881
920
  duplicateObj.name = `${this.props.intl.formatMessage(messages.copyOf)} ${template.name} ${moment().format('MM-DD-YYYY HH:mm:ss')}`;
882
921
  delete duplicateObj._id;
@@ -901,7 +940,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
901
940
  }
902
941
 
903
942
  handleOnHoverItem(isHovering, id) {
904
-
943
+
905
944
  if (isHovering) {
906
945
  this.setState({hoveredItem: id});
907
946
  } else {
@@ -910,7 +949,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
910
949
  }
911
950
 
912
951
  handleOnItemClick(isClicked, id) {
913
-
952
+
914
953
  this.setState({clickedItem: id});
915
954
  }
916
955
 
@@ -923,7 +962,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
923
962
  const isLanguageSupport = this.props?.location?.query?.isLanguageSupport === TRUE;
924
963
  const isEdmSupport = this.props?.location?.query?.isEdmSupport !== FALSE;
925
964
  let getQuery = '';
926
-
965
+
927
966
  if (template) {
928
967
  this.props.actions.setEdmTemplate({
929
968
  ...template,
@@ -934,7 +973,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
934
973
 
935
974
  if (this.state.channel && this.state.channel.toLowerCase() === EMAIL) {
936
975
  getQuery = (type === TYPE_EMBEDDED) ? {
937
- type: TYPE_EMBEDDED,
976
+ type: TYPE_EMBEDDED,
938
977
  module,
939
978
  isLanguageSupport: isLanguageSupport ? 1 : 0,
940
979
  isEdmSupport: isEdmSupport ? 1 : 0,
@@ -963,7 +1002,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
963
1002
  };
964
1003
 
965
1004
  handleEditClick(e, id, modeType, path) {
966
-
1005
+
967
1006
  if (modeType && modeType !== undefined) {
968
1007
  this.setState({modeType});
969
1008
  }
@@ -973,9 +1012,9 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
973
1012
  const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
974
1013
  let getQuery = "";
975
1014
  let pathName = path;
976
-
1015
+
977
1016
  e.stopPropagation();
978
-
1017
+
979
1018
  this.props.actions.resetTemplateData();
980
1019
  if (this.state.channel.toLowerCase() === 'sms') {
981
1020
  pathName = `/sms/edit/${id}`;
@@ -1024,7 +1063,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1024
1063
  templateInfo.content = template.versions.base;
1025
1064
  templateInfo.appName = this.props.Templates.selectedWeChatAccount.name;
1026
1065
  } else if (this.state.channel.toLowerCase() === "email") {
1027
-
1066
+
1028
1067
  this.props.actions.getTemplateDetails(template._id, EMAIL);
1029
1068
  } else if (this.state.channel.toLowerCase() === 'ebill') {
1030
1069
  this.props.actions.getTemplateDetails(template._id);
@@ -1115,9 +1154,9 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1115
1154
  });
1116
1155
  }*/
1117
1156
  data.map( (template = {}) => {
1118
- //
1157
+ //
1119
1158
  const temp = {};
1120
- //
1159
+ //
1121
1160
  const updateDateTime = (moment().format('DD-MM-YYYY') === moment(template.updatedAt).format('DD-MM-YYYY')) ? moment(template.updatedAt).format('hh:mma') : moment(template.updatedAt).format('DD MMM YYYY');
1122
1161
  let content = '';
1123
1162
  temp.id = template._id;
@@ -1143,8 +1182,8 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1143
1182
  );
1144
1183
  }
1145
1184
  } else if (this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill') {
1146
- //
1147
-
1185
+ //
1186
+
1148
1187
  const imgSrc = template && template.versions && template.versions.base ? template.versions.base.preview_http_url : '';
1149
1188
  const ifPreviewGenerated = template && template.versions && template.versions.base ? template.versions.base.isPreviewGenerated : 0;
1150
1189
  content = <img src={imgSrc || ''} alt={this.props.intl.formatMessage(messages.previewGenerateText)} width="100%" height="100%"/>;
@@ -1753,4 +1792,4 @@ export default compose(
1753
1792
  withMPushCreateReducer,
1754
1793
  withLineCreateReducer,
1755
1794
  withConnect,
1756
- )(injectIntl(Templates));
1795
+ )(injectIntl(Templates));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "8.0.128",
4
+ "version": "8.0.129-alpha.5",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",
package/services/api.js CHANGED
@@ -381,10 +381,12 @@ export const uploadFile = ({
381
381
  data.append('appSecret', wechatParams.appSecret);
382
382
  }
383
383
  if (whatsappParams) {
384
- data.append('source', whatsappParams.source);
385
- data.append('wabaId', whatsappParams.wabaId);
386
- data.append('accessToken', whatsappParams.accessToken);
387
- data.append('hostName', whatsappParams.hostName);
384
+ const { source, wabaId, accessToken, access_token, phoneId, hostName } = whatsappParams;
385
+ data.append('source', source);
386
+ data.append('wabaId', wabaId);
387
+ data.append('accessToken', accessToken || access_token);
388
+ data.append('phoneId', phoneId);
389
+ data.append('hostName', hostName);
388
390
  }
389
391
  const url = `${API_ENDPOINT}/assets/${assetType}`;
390
392
  // return API.post(url, data, true);
@@ -400,7 +402,7 @@ export const fetchSchemaForEntity = async ({queryParams}) => {
400
402
  if (queryParams.version === "v2" && queryParams.type === "LAYOUT") {
401
403
  const schema = getSchema(queryParams.layout);
402
404
  // Added async/await to ensure the schema object is resolved before returning it
403
- return await schema.then((layout) => layout).catch((err) => {
405
+ return schema.then((layout) => layout).catch((err) => {
404
406
  console.error(err);
405
407
  });
406
408
  }
@@ -617,7 +619,7 @@ export const getSupportVideosConfig = () => {
617
619
 
618
620
  export const getNavigationConfigApi = async () => {
619
621
  const url = `${ARYA_ENDPOINT}/navigations`;
620
- return await request(url, getAPICallObject('GET'));
622
+ return request(url, getAPICallObject('GET'));
621
623
  };
622
624
 
623
625
  export const getLiquidTags = (content) => {