@capillarytech/creatives-library 7.11.14 → 7.12.0
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 +0 -1
- package/index.js +0 -6
- package/package.json +1 -1
- package/routes.js +2 -7
- package/services/api.js +2 -8
- package/v2Components/CapImageUpload/index.js +11 -24
- package/v2Components/CapImageUpload/index.scss +27 -12
- package/v2Components/CapImageUpload/messages.js +5 -10
- package/v2Components/TemplatePreview/_templatePreview.scss +1 -13
- package/v2Components/TemplatePreview/index.js +2 -41
- package/v2Components/TemplatePreview/tests/__snapshots__/index.test.js.snap +1 -33
- package/v2Components/TemplatePreview/tests/index.test.js +7 -7
- package/v2Containers/App/constants.js +1 -2
- package/v2Containers/Cap/messages.js +1 -20
- package/v2Containers/CreativesContainer/SlideBoxContent.js +11 -57
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -5
- package/v2Containers/CreativesContainer/constants.js +0 -1
- package/v2Containers/CreativesContainer/messages.js +0 -4
- package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +4 -24
- package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +4 -23
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +2 -147
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +1 -99
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -71
- package/v2Containers/CreativesContainer/tests/index.test.js +9 -21
- package/v2Containers/Facebook/Advertisement/index.js +2 -4
- package/v2Containers/MobilePush/Edit/index.js +34 -21
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +4 -4
- package/v2Containers/Templates/_templates.scss +1 -9
- package/v2Containers/Templates/actions.js +1 -2
- package/v2Containers/Templates/constants.js +0 -1
- package/v2Containers/Templates/index.js +174 -235
- package/v2Containers/Templates/messages.js +0 -20
- package/v2Containers/Templates/reducer.js +0 -2
- package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +80 -520
- package/v2Containers/TemplatesV2/index.js +1 -2
- package/v2Containers/TemplatesV2/messages.js +0 -4
- package/v2Containers/Whatsapp/constants.js +0 -287
- package/v2Containers/Whatsapp/index.js +22 -34
- package/v2Containers/Whatsapp/index.scss +2 -3
- package/v2Containers/Whatsapp/messages.js +13 -284
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +1700 -35583
- package/v2Containers/Whatsapp/tests/__snapshots__/utils.test.js.snap +26 -32
- package/v2Containers/Whatsapp/tests/index.test.js +0 -13
- package/v2Containers/Whatsapp/tests/utils.test.js +8 -15
- package/v2Containers/mockdata.js +2181 -1190
- package/v2Containers/Assets/images/addCreativesIllustration.svg +0 -30
- package/v2Containers/Assets/images/rcsIllustration.png +0 -0
- package/v2Containers/Rcs/actions.js +0 -57
- package/v2Containers/Rcs/constants.js +0 -51
- package/v2Containers/Rcs/index.js +0 -1064
- package/v2Containers/Rcs/index.scss +0 -72
- package/v2Containers/Rcs/messages.js +0 -122
- package/v2Containers/Rcs/reducer.js +0 -107
- package/v2Containers/Rcs/sagas.js +0 -141
- package/v2Containers/Rcs/selectors.js +0 -8
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +0 -145080
- package/v2Containers/Rcs/tests/index.test.js +0 -226
- package/v2Containers/Rcs/tests/mockData.js +0 -169
- package/v2Containers/Rcs/utils.js +0 -40
|
@@ -70,7 +70,6 @@ import * as lineActions from '../Line/Container/actions';
|
|
|
70
70
|
import * as viberActions from '../Viber/actions';
|
|
71
71
|
import * as facebookActions from '../Facebook/actions';
|
|
72
72
|
import * as whatsappActions from '../Whatsapp/actions';
|
|
73
|
-
import * as rcsActions from '../Rcs/actions';
|
|
74
73
|
import CardGrid from '../../v2Components/CardGrid';
|
|
75
74
|
import config from '../../config/app';
|
|
76
75
|
import './_templates.scss';
|
|
@@ -98,9 +97,7 @@ import {
|
|
|
98
97
|
WHATSAPP_STATUSES,
|
|
99
98
|
} from '../Whatsapp/constants';
|
|
100
99
|
import { getWhatsappContent, getWhatsappStatus, getWhatsappCategory } from '../Whatsapp/utils';
|
|
101
|
-
import {
|
|
102
|
-
|
|
103
|
-
import { MOBILE_PUSH, WECHAT, SMS, EMAIL, EBILL, LINE, VIBER, FACEBOOK, WHATSAPP, RCS } from '../CreativesContainer/constants';
|
|
100
|
+
import { MOBILE_PUSH, WECHAT, SMS, EMAIL, EBILL, LINE, VIBER, FACEBOOK, WHATSAPP } from '../CreativesContainer/constants';
|
|
104
101
|
|
|
105
102
|
import {CREATIVE} from '../Facebook/constants';
|
|
106
103
|
|
|
@@ -108,8 +105,6 @@ import emailIllustration from '../Assets/images/emailIllustration.svg';
|
|
|
108
105
|
import smsIllustration from '../Assets/images/smsIllustration.svg';
|
|
109
106
|
import pushIllustration from '../Assets/images/pushIllustration.svg';
|
|
110
107
|
import whatsappIllustration from '../Assets/images/whatsappIllustration.png';
|
|
111
|
-
import rcsIllustration from '../Assets/images/rcsIllustration.png';
|
|
112
|
-
|
|
113
108
|
import { CAP_SPACE_16, CAP_SPACE_44 } from '@capillarytech/cap-ui-library/styled/variables';
|
|
114
109
|
import { GA } from '@capillarytech/cap-ui-utils';
|
|
115
110
|
const { timeTracker } = GA;
|
|
@@ -149,18 +144,10 @@ const SMS_FILTERS = {
|
|
|
149
144
|
};
|
|
150
145
|
|
|
151
146
|
const WHATSAPP_LOWERCASE = WHATSAPP.toLowerCase();
|
|
152
|
-
const RCS_LOWERCASE = RCS.toLowerCase();
|
|
153
147
|
const SMS_LOWERCASE = SMS.toLowerCase();
|
|
154
148
|
const MOBILE_PUSH_LOWERCASE = MOBILE_PUSH.toLowerCase();
|
|
155
149
|
const EBILL_LOWERCASE = EBILL.toLowerCase();
|
|
156
150
|
const LINE_LOWERCASE = LINE.toLowerCase();
|
|
157
|
-
const duplicateEnum = {
|
|
158
|
-
sms: "smsActions",
|
|
159
|
-
line: "lineActions",
|
|
160
|
-
[VIBER_CHANNEL]: "viberActions",
|
|
161
|
-
[FACEBOOK_CHANNEL]: "facebookActions",
|
|
162
|
-
[RCS_LOWERCASE]: "rcsActions",
|
|
163
|
-
};
|
|
164
151
|
export class Templates extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
165
152
|
constructor(props) {
|
|
166
153
|
super(props);
|
|
@@ -190,7 +177,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
190
177
|
lineFilter: LINE_FILTERS.ALL,
|
|
191
178
|
smsFilter: SMS_FILTERS.ALL,
|
|
192
179
|
selectedWhatsappStatus: '',
|
|
193
|
-
selectedWhatsappCategory: ''
|
|
180
|
+
selectedWhatsappCategory: ''
|
|
194
181
|
};
|
|
195
182
|
|
|
196
183
|
this.handleOnHoverItem = this.handleOnHoverItem.bind(this);
|
|
@@ -261,9 +248,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
261
248
|
activeMode = ACCOUNT_SELECTION_MODE;
|
|
262
249
|
this.props.actions.getWeCrmAccounts(channel);
|
|
263
250
|
break;
|
|
264
|
-
case RCS:
|
|
265
|
-
channel = 'Rcs';
|
|
266
|
-
break;
|
|
267
251
|
default:
|
|
268
252
|
channel = '';
|
|
269
253
|
}
|
|
@@ -294,7 +278,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
294
278
|
if (this.props.location.query.type === 'embedded') {
|
|
295
279
|
this.props.actions.resetAccount();
|
|
296
280
|
}
|
|
297
|
-
if (['line', VIBER_CHANNEL, FACEBOOK_CHANNEL, 'sms', 'email', 'ebill'
|
|
281
|
+
if (['line', VIBER_CHANNEL, FACEBOOK_CHANNEL, 'sms', 'email', 'ebill'].includes((this.state.channel || '').toLowerCase())) {
|
|
298
282
|
const queryParams = {
|
|
299
283
|
// name: this.state.searchText,
|
|
300
284
|
// sortBy: this.state.sortBy,
|
|
@@ -357,7 +341,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
357
341
|
}
|
|
358
342
|
|
|
359
343
|
this.setState({ channel }, () => {
|
|
360
|
-
if (['line', VIBER_CHANNEL, FACEBOOK_CHANNEL, 'sms', 'email', 'ebill'
|
|
344
|
+
if (['line', VIBER_CHANNEL, FACEBOOK_CHANNEL, 'sms', 'email', 'ebill'].includes(this.state.channel.toLowerCase()) || (this.state.channel.toLowerCase() === 'wechat' && !isEmpty(nextProps.Templates.selectedWeChatAccount))) {
|
|
361
345
|
if (this.state.channel.toLowerCase() === 'wechat' && !isEmpty(nextProps.Templates.selectedWeChatAccount)) {
|
|
362
346
|
params.wecrmId = (nextProps.Templates.selectedWeChatAccount.configs || {}).wecrm_app_id;
|
|
363
347
|
params.wecrmToken = (nextProps.Templates.selectedWeChatAccount.configs || {}).wecrm_token;
|
|
@@ -420,13 +404,12 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
420
404
|
});
|
|
421
405
|
}
|
|
422
406
|
}
|
|
423
|
-
|
|
424
|
-
if ((selectedChannel === 'wechat' || selectedChannel === 'mobilepush') && isEmpty(nextProps.Templates.selectedWeChatAccount) && (this.props.location.query.type === 'embedded') && !this.isEnabledInLibraryModule("showAccountSelection")) {
|
|
407
|
+
if ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && isEmpty(nextProps.Templates.selectedWeChatAccount) && (this.props.location.query.type === 'embedded') && !this.isEnabledInLibraryModule("showAccountSelection")) {
|
|
425
408
|
let selectedAccount = '';
|
|
426
409
|
if (isEmpty(nextProps.Templates.weCrmAccounts)) {
|
|
427
410
|
return;
|
|
428
411
|
}
|
|
429
|
-
if (
|
|
412
|
+
if (this.state.channel.toLowerCase() === 'wechat') {
|
|
430
413
|
forEach(nextProps.Templates.weCrmAccounts, (account) => {
|
|
431
414
|
if (account.configs && account.configs.is_wecrm_enabled) {
|
|
432
415
|
if (nextProps.location.query.source_account_id && account.sourceAccountIdentifier === nextProps.location.query.source_account_id) {
|
|
@@ -441,7 +424,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
441
424
|
nextProps.actions.setWeChatAccount(selectedAccount);
|
|
442
425
|
this.getAllTemplates({params});
|
|
443
426
|
});
|
|
444
|
-
} else if (
|
|
427
|
+
} else if (this.state.channel.toLowerCase() === 'mobilepush' && (nextProps.location.query.account_id || nextProps.location.query.source_account_id)) {
|
|
445
428
|
forEach(nextProps.Templates.weCrmAccounts, (account) => {
|
|
446
429
|
if ((nextProps.location.query.account_id && account.id === Number(nextProps.location.query.account_id)) || (nextProps.location.query.source_account_id && account.sourceAccountIdentifier && account.sourceAccountIdentifier === nextProps.location.query.source_account_id)) {
|
|
447
430
|
selectedAccount = account;
|
|
@@ -452,38 +435,37 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
452
435
|
this.getAllTemplates({params});
|
|
453
436
|
}
|
|
454
437
|
}
|
|
455
|
-
if (
|
|
438
|
+
if ((this.state.channel || '').toLowerCase() === "mobilepush" && nextProps.CreateMobilePush && nextProps.CreateMobilePush.response && nextProps.CreateMobilePush.response.templateId && nextProps.CreateMobilePush.response.templateId !== '') {
|
|
456
439
|
|
|
457
440
|
}
|
|
458
441
|
|
|
459
|
-
if (
|
|
442
|
+
if ((this.state.channel || '').toLowerCase() === "ebill" && nextProps.CreateEbill && nextProps.CreateEbill.createResponse && nextProps.CreateEbill.createResponse.templateId && nextProps.CreateEbill.createResponse.templateId !== '') {
|
|
460
443
|
const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
|
|
461
444
|
CapNotification.success({key: 'duplicateSucess', message});
|
|
462
445
|
this.getAllTemplates({params, resetPage: true});
|
|
463
446
|
this.props.ebillActions.clearStoreValues();
|
|
464
447
|
}
|
|
465
448
|
|
|
466
|
-
if (
|
|
449
|
+
if ((this.state.channel || '').toLowerCase() === "email" && nextProps.EmailCreate && nextProps.EmailCreate.duplicateResponse && nextProps.EmailCreate.duplicateResponse.templateId && nextProps.EmailCreate.duplicateResponse.templateId !== '') {
|
|
467
450
|
const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
|
|
468
451
|
CapNotification.success({key: 'duplicateSucess', message});
|
|
469
452
|
this.getAllTemplates({params, resetPage: true});
|
|
470
453
|
this.props.emailActions.clearStoreValues();
|
|
471
454
|
}
|
|
472
455
|
|
|
473
|
-
if (
|
|
456
|
+
if ((this.state.channel || '').toLowerCase() === "line" && nextProps.Line && nextProps.Line.response && nextProps.Line.response.templateId && nextProps.Line.response.templateId !== '') {
|
|
474
457
|
const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
|
|
475
458
|
CapNotification.success({key: 'duplicateSuccess', message});
|
|
476
459
|
this.getAllTemplates({params, resetPage: true});
|
|
477
460
|
this.props.lineActions.clearCreateResponse();
|
|
478
461
|
}
|
|
479
462
|
|
|
480
|
-
|
|
481
463
|
if (nextProps.Create && this.props.Create && nextProps.Create.createTemplateError && !isEqual(nextProps.Create.createTemplateError, this.props.Create.createTemplateError)) {
|
|
482
464
|
const message = this.props.intl.formatMessage(messages.somethingWentWrong);
|
|
483
465
|
if ((this.state.channel || '').toLowerCase() !== "sms") {
|
|
484
466
|
CapNotification.error({key: 'somethingWrong', message});
|
|
485
467
|
}
|
|
486
|
-
const { smsActions, mobilepushActions, ebillActions, lineActions, viberActions, facebookActions, whatsappActions
|
|
468
|
+
const { smsActions, mobilepushActions, ebillActions, lineActions, viberActions, facebookActions, whatsappActions } = this.props;
|
|
487
469
|
switch (selectedChannel) {
|
|
488
470
|
case SMS_LOWERCASE:
|
|
489
471
|
smsActions.clearCreateResponse();
|
|
@@ -506,9 +488,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
506
488
|
case WHATSAPP_LOWERCASE:
|
|
507
489
|
whatsappActions.clearCreateResponse();
|
|
508
490
|
break;
|
|
509
|
-
case RCS_LOWERCASE:
|
|
510
|
-
rcsActions.clearCreateResponse();
|
|
511
|
-
break;
|
|
512
491
|
default:
|
|
513
492
|
break;
|
|
514
493
|
}
|
|
@@ -550,30 +529,28 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
550
529
|
if (!isEmpty(nextProps.Templates.templateDetails) && !isEqual(nextProps.Templates.templateDetails, this.props.Templates.templateDetails)) {
|
|
551
530
|
this.setState({previewTemplate: nextProps.Templates.templateDetails});
|
|
552
531
|
}
|
|
553
|
-
const weCrmAccountsList = get(nextProps, `Templates.weCrmAccounts`, []);
|
|
554
|
-
const weCrmChannels = ['wechat', WHATSAPP_LOWERCASE];
|
|
555
532
|
|
|
556
|
-
if (
|
|
533
|
+
if (nextProps.Templates.weCrmAccounts !== undefined && nextProps.Templates.weCrmAccounts.length === 1 && this.state.defaultAccount && (['wechat', WHATSAPP_LOWERCASE].indexOf(this.state.channel.toLowerCase()) > -1 )) {
|
|
557
534
|
const paramsDefault = {
|
|
558
535
|
name: this.state.searchText,
|
|
559
536
|
sortBy: this.state.sortBy,
|
|
560
537
|
};
|
|
561
|
-
if (
|
|
562
|
-
paramsDefault.wecrmId =
|
|
563
|
-
paramsDefault.wecrmToken =
|
|
564
|
-
paramsDefault.originalId =
|
|
565
|
-
if (
|
|
538
|
+
if (['wechat', WHATSAPP_LOWERCASE].includes(this.state.channel.toLowerCase())) {
|
|
539
|
+
paramsDefault.wecrmId = nextProps.Templates.weCrmAccounts[0].configs.wecrm_app_id;
|
|
540
|
+
paramsDefault.wecrmToken = nextProps.Templates.weCrmAccounts[0].configs.wecrm_token;
|
|
541
|
+
paramsDefault.originalId = nextProps.Templates.weCrmAccounts[0].sourceAccountIdentifier;
|
|
542
|
+
if (this.state.channel.toLowerCase() === WHATSAPP_LOWERCASE) {
|
|
566
543
|
nextProps.actions.setChannelAccount(
|
|
567
|
-
|
|
568
|
-
|
|
544
|
+
WHATSAPP,
|
|
545
|
+
nextProps.Templates.weCrmAccounts[0],
|
|
569
546
|
);
|
|
570
547
|
} else {
|
|
571
548
|
nextProps.actions.setWeChatAccount(
|
|
572
|
-
|
|
549
|
+
nextProps.Templates.weCrmAccounts[0],
|
|
573
550
|
);
|
|
574
551
|
}
|
|
575
552
|
}
|
|
576
|
-
this.setState({
|
|
553
|
+
this.setState({defaultAccount: false, activeMode: TEMPLATES_MODE, selectedAccount: nextProps.Templates.weCrmAccounts[0].name });
|
|
577
554
|
this.getAllTemplates({params: paramsDefault}, true);
|
|
578
555
|
}
|
|
579
556
|
}
|
|
@@ -593,13 +570,12 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
593
570
|
name: this.state.searchText,
|
|
594
571
|
sortBy: this.state.sortBy,
|
|
595
572
|
};
|
|
596
|
-
|
|
597
|
-
if (selectedChannel === 'wechat') {
|
|
573
|
+
if (this.state.channel.toLowerCase() === 'wechat') {
|
|
598
574
|
params.wecrmId = this.props.Templates.weCrmAccounts[findIndex(this.props.Templates.weCrmAccounts, { name: value})].configs.wecrm_app_id;
|
|
599
575
|
params.wecrmToken = this.props.Templates.weCrmAccounts[findIndex(this.props.Templates.weCrmAccounts, { name: value})].configs.wecrm_token;
|
|
600
576
|
this.props.actions.setWeChatAccount(this.props.Templates.weCrmAccounts[findIndex(this.props.Templates.weCrmAccounts, { name: value})]);
|
|
601
577
|
params.originalId = this.props.Templates.weCrmAccounts[findIndex(this.props.Templates.weCrmAccounts, { name: value})].sourceAccountIdentifier;
|
|
602
|
-
} else if (
|
|
578
|
+
} else if (this.state.channel.toLowerCase() === 'mobilepush') {
|
|
603
579
|
this.props.actions.setWeChatAccount(this.props.Templates.weCrmAccounts[findIndex(this.props.Templates.weCrmAccounts, { name: value})]);
|
|
604
580
|
const account = this.props.Templates.weCrmAccounts[findIndex(this.props.Templates.weCrmAccounts, { name: value})];
|
|
605
581
|
params.accountId = account.id;
|
|
@@ -612,8 +588,10 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
612
588
|
} else {
|
|
613
589
|
this.setState({selectedAccountError: false});
|
|
614
590
|
}
|
|
615
|
-
} else if (
|
|
616
|
-
this.props.actions.setChannelAccount(
|
|
591
|
+
} else if (this.state.channel.toLowerCase() === LINE.toLowerCase()) {
|
|
592
|
+
this.props.actions.setChannelAccount(LINE, this.props.Templates.weCrmAccounts.find((item) => item.name === this.state.selectedAccount));
|
|
593
|
+
} else if (this.state.channel.toLowerCase() === WHATSAPP_LOWERCASE) {
|
|
594
|
+
this.props.actions.setChannelAccount(WHATSAPP, this.props.Templates.weCrmAccounts.find((item) => item.name === this.state.selectedAccount));
|
|
617
595
|
}
|
|
618
596
|
|
|
619
597
|
this.setState({activeMode: TEMPLATES_MODE});
|
|
@@ -662,7 +640,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
662
640
|
const { name = '', versions = {} } = whatsappSelectedTemplateData;
|
|
663
641
|
creativesParams.whatsappTemplateName = name;
|
|
664
642
|
creativesParams.whatsappTemplateCategory = get(versions, `base.content.whatsapp.category`, '');
|
|
665
|
-
creativesParams.whatsappTemplateLanguageCode = get(versions, `base.content.whatsapp.languages[0].language`, '');
|
|
666
643
|
}
|
|
667
644
|
}
|
|
668
645
|
creativesParams.type = this.state.channel.toUpperCase();
|
|
@@ -766,12 +743,13 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
766
743
|
}
|
|
767
744
|
|
|
768
745
|
isStatusMatching = (status, selectedWhatsappStatus) => {
|
|
769
|
-
if
|
|
746
|
+
if(this.props.isFullMode && selectedWhatsappStatus) {
|
|
770
747
|
if ( [WHATSAPP_STATUSES.unsubmitted, WHATSAPP_STATUSES.pending].includes(status) ) {
|
|
771
748
|
return selectedWhatsappStatus === WHATSAPP_STATUSES.awaitingApproval;
|
|
772
749
|
}
|
|
773
|
-
|
|
774
|
-
}
|
|
750
|
+
return selectedWhatsappStatus === status;
|
|
751
|
+
}
|
|
752
|
+
else if (!this.props.isFullMode){
|
|
775
753
|
return status === WHATSAPP_STATUSES.approved;
|
|
776
754
|
}
|
|
777
755
|
return true;
|
|
@@ -792,7 +770,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
792
770
|
);
|
|
793
771
|
});
|
|
794
772
|
}
|
|
795
|
-
|
|
773
|
+
|
|
796
774
|
filterSMSTemplates = (templates) => {
|
|
797
775
|
const { smsFilter } = this.state;
|
|
798
776
|
if (SMS_FILTERS.ALL === smsFilter) {
|
|
@@ -808,43 +786,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
808
786
|
return messages.creativesTemplatesEdit;
|
|
809
787
|
}
|
|
810
788
|
|
|
811
|
-
whatsappIllustrationText = (title, desc) =>
|
|
812
|
-
<CapHeader
|
|
813
|
-
title={
|
|
814
|
-
<CapHeading type="h3" className="channel-specific-illustration-text">
|
|
815
|
-
{this.props.intl.formatMessage(messages[title])}
|
|
816
|
-
</CapHeading>
|
|
817
|
-
}
|
|
818
|
-
description={
|
|
819
|
-
<CapLabel style={{ textAlign: "center" }}>
|
|
820
|
-
{this.props.intl.formatMessage(messages[desc])}
|
|
821
|
-
</CapLabel>
|
|
822
|
-
}
|
|
823
|
-
/>
|
|
824
|
-
|
|
825
|
-
getSmsEmailIllustration = () =>
|
|
826
|
-
this.props.isDltFromRcs ? (
|
|
827
|
-
<CapHeader
|
|
828
|
-
title={
|
|
829
|
-
<CapHeading type="h3" className="channel-specific-illustration-text">
|
|
830
|
-
{this.props.intl.formatMessage(messages.rcsDltIllustrationTitle)}
|
|
831
|
-
</CapHeading>
|
|
832
|
-
}
|
|
833
|
-
description={
|
|
834
|
-
<CapLabel style={{ textAlign: 'center' }}>
|
|
835
|
-
{this.props.intl.formatMessage(messages.rcsDltIllustrationDesc)}
|
|
836
|
-
</CapLabel>
|
|
837
|
-
}
|
|
838
|
-
/>
|
|
839
|
-
) : (
|
|
840
|
-
<CapIllustration
|
|
841
|
-
buttonClassName={`create-new-${this.state.channel.toLowerCase()}`}
|
|
842
|
-
{...this.getChannelTypeIllustrationInfo(
|
|
843
|
-
this.state.channel.toUpperCase(),
|
|
844
|
-
)}
|
|
845
|
-
/>
|
|
846
|
-
);
|
|
847
|
-
|
|
848
789
|
getTemplateDataForGrid = ({templates, handlers, filterContent, channel, isLoading, loadingTip}) => {
|
|
849
790
|
const currentChannel = channel.toUpperCase();
|
|
850
791
|
const {channel: stateChannel} = this.state;
|
|
@@ -886,7 +827,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
886
827
|
className={`view-${channelLowerCase}`}
|
|
887
828
|
style={{marginRight: '16px'}}
|
|
888
829
|
type="eye"
|
|
889
|
-
onClick={() => { if (
|
|
830
|
+
onClick={() => { if (this.props.isFullMode) { handlers.handlePreviewClick(template); } else { this.props.handlePeviewTemplate(template); } }}
|
|
890
831
|
/>,
|
|
891
832
|
],
|
|
892
833
|
hoverOption: <CapButton className={this.props.isFullMode ? `edit-${channelLowerCase}` : `select-${channelLowerCase}`} onClick={(e) => handlers.handleEditClick(e, template, undefined, undefined, {account: this.state.selectedAccount})}>{hoverButtonText}</CapButton>,
|
|
@@ -903,7 +844,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
903
844
|
} = {},
|
|
904
845
|
} = {},
|
|
905
846
|
} = template;
|
|
906
|
-
if (this.props.isFullMode && !
|
|
847
|
+
if (this.props.isFullMode && !(this.state.channel.toUpperCase() === WHATSAPP && status === WHATSAPP_STATUSES.approved)) {
|
|
907
848
|
templateData.extra.push(<CapDropdown
|
|
908
849
|
overlay={
|
|
909
850
|
<CapMenu>
|
|
@@ -1054,11 +995,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1054
995
|
|
|
1055
996
|
templateData.content = getWhatsappContent(template).templateMsg;
|
|
1056
997
|
break;
|
|
1057
|
-
case RCS: {
|
|
1058
|
-
templateData.title = template.name;
|
|
1059
|
-
templateData.content = getRCSContent(template);
|
|
1060
|
-
break;
|
|
1061
|
-
}
|
|
1062
998
|
default:
|
|
1063
999
|
templateData.content = "";
|
|
1064
1000
|
}
|
|
@@ -1066,12 +1002,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1066
1002
|
}) : [];
|
|
1067
1003
|
const accountId = get(this.props, 'Templates.selectedWeChatAccount.uuid');
|
|
1068
1004
|
const accounts = get(this.props, 'Templates.weCrmAccounts');
|
|
1069
|
-
const noWhatsappTemplates = this.isFullMode() && isEmpty(templates);
|
|
1070
|
-
const noFilteredWhatsappTemplates = this.isFullMode() && !isEmpty(templates) && isEmpty(filteredTemplates);
|
|
1071
|
-
const noApprovedWhatsappTemplates = !this.isFullMode() && isEmpty(filteredTemplates);
|
|
1072
|
-
const showWhatsappIllustration = !isEmpty(this.props.Templates.selectedWhatsappAccount) && [WHATSAPP_LOWERCASE].includes(channelLowerCase);
|
|
1073
|
-
const showRcsIllustration = channelLowerCase === RCS_LOWERCASE && isEmpty(templates);
|
|
1074
|
-
const noLoaderAndSearchText = isEmpty(this.state.searchText) && !isLoading;
|
|
1075
1005
|
return (<div>
|
|
1076
1006
|
{[WECHAT, MOBILE_PUSH].includes(currentChannel) && this.showAccountName()}
|
|
1077
1007
|
{filterContent}
|
|
@@ -1088,7 +1018,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1088
1018
|
fbType={"list"}
|
|
1089
1019
|
/>
|
|
1090
1020
|
</div>)
|
|
1091
|
-
: ['sms', "email"].includes(this.state.channel.toLowerCase()) && !isLoading && this.
|
|
1021
|
+
: ['sms', "email"].includes(this.state.channel.toLowerCase()) && !isLoading && <CapIllustration buttonClassName={`create-new-${channelLowerCase}`} {...this.getChannelTypeIllustrationInfo(currentChannel)} />
|
|
1092
1022
|
}
|
|
1093
1023
|
|
|
1094
1024
|
{(this.state.selectedAccount === '' && isEmpty(this.props.Templates.selectedWeChatAccount)) && (this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === "mobilepush") &&
|
|
@@ -1114,27 +1044,52 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1114
1044
|
</div>
|
|
1115
1045
|
)
|
|
1116
1046
|
}
|
|
1117
|
-
{
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
</
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
noLoaderAndSearchText &&
|
|
1047
|
+
{ !isEmpty(this.props.Templates.selectedWhatsappAccount) && [WHATSAPP_LOWERCASE].includes(this.state.channel.toLowerCase()) && this.state.selectedAccountError ?
|
|
1048
|
+
<div style={{ height: '65vh', textAlign: 'center', lineHeight: '65vh'}}>
|
|
1049
|
+
<CapHeading type="h6" >
|
|
1050
|
+
{this.props.intl.formatMessage(messages.accountConfigError)}
|
|
1051
|
+
<InlineDiv>
|
|
1052
|
+
<CapLink title="here" style={{display: 'inline'}} onClick={() => { window.open(config.production.accountConfig`${accountId}`); }}/>
|
|
1053
|
+
</InlineDiv>
|
|
1054
|
+
</CapHeading>
|
|
1055
|
+
</div> : (
|
|
1056
|
+
[WHATSAPP_LOWERCASE].includes(this.state.channel.toLowerCase()) &&
|
|
1057
|
+
isEmpty(this.state.searchText) &&
|
|
1058
|
+
!isLoading &&
|
|
1130
1059
|
<div style={this.isFullMode() ? { height: "calc(100vh - 325px)", overflow: 'auto' } : {}}>
|
|
1131
|
-
|
|
1060
|
+
{this.isFullMode() && isEmpty(templates) && <CapIllustration buttonClassName={`create-new-${channelLowerCase}`} {...this.getChannelTypeIllustrationInfo(currentChannel)} />}
|
|
1061
|
+
{this.isFullMode() && !isEmpty(templates) && isEmpty(filteredTemplates) && <CapHeader
|
|
1062
|
+
title={
|
|
1063
|
+
<CapHeading type="h3" style={{ textAlign: "center", marginTop: CAP_SPACE_44 }}>
|
|
1064
|
+
{this.props.intl.formatMessage(messages.noFilteredWhatsappTemplatesTitle)}
|
|
1065
|
+
</CapHeading>
|
|
1066
|
+
}
|
|
1067
|
+
description={
|
|
1068
|
+
<CapLabel style={{ textAlign: "center" }}>
|
|
1069
|
+
{this.props.intl.formatMessage(messages.noFilteredWhatsappTemplatesDesc)}
|
|
1070
|
+
</CapLabel>
|
|
1071
|
+
}
|
|
1072
|
+
/>}
|
|
1073
|
+
{!this.isFullMode() && isEmpty(filteredTemplates) && <CapHeader
|
|
1074
|
+
title={
|
|
1075
|
+
<CapHeading type="h3" style={{ textAlign: "center", marginTop: CAP_SPACE_44 }}>
|
|
1076
|
+
{this.props.intl.formatMessage(messages.noApprovedWhatsappTemplatesTitle)}
|
|
1077
|
+
</CapHeading>
|
|
1078
|
+
}
|
|
1079
|
+
description={
|
|
1080
|
+
<CapLabel style={{ textAlign: "center" }}>
|
|
1081
|
+
{this.props.intl.formatMessage(messages.noApprovedWhatsappTemplatesDesc)}
|
|
1082
|
+
</CapLabel>
|
|
1083
|
+
}
|
|
1084
|
+
/>}
|
|
1132
1085
|
</div>
|
|
1133
1086
|
)
|
|
1134
1087
|
}
|
|
1135
1088
|
</div>
|
|
1136
1089
|
}
|
|
1090
|
+
|
|
1137
1091
|
</CapSpin>
|
|
1092
|
+
|
|
1138
1093
|
</div>);
|
|
1139
1094
|
}
|
|
1140
1095
|
filterLineTemplates = (templates) => {
|
|
@@ -1553,27 +1508,26 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1553
1508
|
this.props.actions.deleteTemplate(this.state.channel.toUpperCase(), template._id);
|
|
1554
1509
|
this.setState({actionTemplate: {}});
|
|
1555
1510
|
}
|
|
1556
|
-
commonDuplicate(action, duplicateObj) {
|
|
1557
|
-
const params = {
|
|
1558
|
-
name: this.state.searchText,
|
|
1559
|
-
sortBy: this.state.sortBy,
|
|
1560
|
-
};
|
|
1561
|
-
this.props[action].createTemplate(duplicateObj, (response) => {
|
|
1562
|
-
if (response && response.templateId) {
|
|
1563
|
-
const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
|
|
1564
|
-
CapNotification.success({key: 'duplicateSucess', message});
|
|
1565
|
-
this.getAllTemplates({params, resetPage: true});
|
|
1566
|
-
this.props[action].clearCreateResponse();
|
|
1567
|
-
}
|
|
1568
|
-
});
|
|
1569
|
-
}
|
|
1570
1511
|
|
|
1571
1512
|
duplicateTemplate(template) {
|
|
1572
1513
|
const duplicateObj = cloneDeep(template);
|
|
1573
1514
|
duplicateObj.name = `Copy of ${template.name} ${moment().format('MM-DD-YYYY HH:mm:ss')}`;
|
|
1574
1515
|
delete duplicateObj._id;
|
|
1575
|
-
|
|
1576
|
-
|
|
1516
|
+
const params = {
|
|
1517
|
+
name: this.state.searchText,
|
|
1518
|
+
sortBy: this.state.sortBy,
|
|
1519
|
+
};
|
|
1520
|
+
if (this.state.channel.toLowerCase() === "sms") {
|
|
1521
|
+
this.props.smsActions.createTemplate(duplicateObj, (response) => {
|
|
1522
|
+
if (response && response.templateId) {
|
|
1523
|
+
const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
|
|
1524
|
+
CapNotification.success({key: 'duplicateSucess', message});
|
|
1525
|
+
|
|
1526
|
+
this.getAllTemplates({params, resetPage: true});
|
|
1527
|
+
this.props.smsActions.clearCreateResponse();
|
|
1528
|
+
}
|
|
1529
|
+
});
|
|
1530
|
+
} else if (this.state.channel.toLowerCase() === "mobilepush") {
|
|
1577
1531
|
duplicateObj.definition.accountId = this.props.Templates.selectedWeChatAccount.id;
|
|
1578
1532
|
this.props.mobilepushActions.createTemplate(duplicateObj, () => {
|
|
1579
1533
|
const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
|
|
@@ -1585,8 +1539,33 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1585
1539
|
this.props.ebillActions.createTemplate(duplicateObj);
|
|
1586
1540
|
} else if (this.state.channel.toLowerCase() === "email") {
|
|
1587
1541
|
this.props.emailActions.duplicateTemplate(template._id, "EMAIL");
|
|
1588
|
-
} else if (
|
|
1589
|
-
this.
|
|
1542
|
+
} else if (this.state.channel.toLowerCase() === "line") {
|
|
1543
|
+
this.props.lineActions.createTemplate(duplicateObj, (response) => {
|
|
1544
|
+
if (response && response.templateId) {
|
|
1545
|
+
const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
|
|
1546
|
+
CapNotification.success({key: 'duplicateSucess', message});
|
|
1547
|
+
this.getAllTemplates({params, resetPage: true});
|
|
1548
|
+
this.props.lineActions.clearCreateResponse();
|
|
1549
|
+
}
|
|
1550
|
+
});
|
|
1551
|
+
} else if (this.state.channel.toLowerCase() === VIBER_CHANNEL) {
|
|
1552
|
+
this.props.viberActions.createTemplate(duplicateObj, (response) => {
|
|
1553
|
+
if (response && response.templateId) {
|
|
1554
|
+
const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
|
|
1555
|
+
CapNotification.success({key: 'duplicateSucess', message});
|
|
1556
|
+
this.getAllTemplates({params, resetPage: true});
|
|
1557
|
+
this.props.viberActions.clearCreateResponse();
|
|
1558
|
+
}
|
|
1559
|
+
});
|
|
1560
|
+
} else if (this.state.channel.toLowerCase() === FACEBOOK_CHANNEL) {
|
|
1561
|
+
this.props.facebookActions.createTemplate(duplicateObj, (response) => {
|
|
1562
|
+
if (response && response.templateId) {
|
|
1563
|
+
const message = `${this.state.channel} ${this.props.intl.formatMessage(messages.templateDuplicateSuccess)}`;
|
|
1564
|
+
CapNotification.success({key: 'duplicateSucess', message});
|
|
1565
|
+
this.getAllTemplates({params, resetPage: true});
|
|
1566
|
+
this.props.facebookActions.clearCreateResponse();
|
|
1567
|
+
}
|
|
1568
|
+
});
|
|
1590
1569
|
}
|
|
1591
1570
|
}
|
|
1592
1571
|
|
|
@@ -1637,74 +1616,55 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1637
1616
|
const module = this.props.location.query.module;
|
|
1638
1617
|
const isLanguageSupport = (this.props.location.query.isLanguageSupport) ? this.props.location.query.isLanguageSupport : false;
|
|
1639
1618
|
const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
|
|
1640
|
-
|
|
1641
|
-
const channelUpperCase = this.state.channel.toUpperCase();
|
|
1642
|
-
let getQuery = type === 'embedded' ? { type: 'embedded', module, account_id: this.props.location.query.account_id } : { module };
|
|
1619
|
+
let getQuery = "";
|
|
1643
1620
|
let pathName = path;
|
|
1644
1621
|
e.stopPropagation();
|
|
1645
1622
|
|
|
1646
1623
|
this.props.actions.resetTemplateData();
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
pathName = `/sms/edit/${id}`;
|
|
1650
|
-
break;
|
|
1651
|
-
}
|
|
1652
|
-
case 'mobilepush': {
|
|
1653
|
-
pathName = `/mobilepush/edit/${id}`;
|
|
1654
|
-
break;
|
|
1655
|
-
}
|
|
1656
|
-
case 'email': {
|
|
1657
|
-
pathName = `/email/edit/${id}`;
|
|
1658
|
-
getQuery = type === 'embedded' ? { type: 'embedded', module, isLanguageSupport, isEdmSupport } : { module, isEdmSupport };
|
|
1659
|
-
break;
|
|
1660
|
-
}
|
|
1661
|
-
case 'ebill': {
|
|
1662
|
-
pathName = `/ebill/edit/${id}`;
|
|
1663
|
-
break;
|
|
1664
|
-
}
|
|
1665
|
-
case 'line': {
|
|
1666
|
-
const { messages } = template.versions.base.content;
|
|
1667
|
-
const type = messages && messages[0] && messages[0].type;
|
|
1668
|
-
pathName = `/line/edit/${id}/${type}`;
|
|
1669
|
-
if (options && options.account) {
|
|
1670
|
-
pathName += `/${options.account}`;
|
|
1671
|
-
}
|
|
1672
|
-
break;
|
|
1673
|
-
}
|
|
1674
|
-
case VIBER_CHANNEL: {
|
|
1675
|
-
pathName = `/viber/edit/${id}/`;
|
|
1676
|
-
break;
|
|
1677
|
-
}
|
|
1678
|
-
case FACEBOOK_CHANNEL: {
|
|
1679
|
-
pathName = `/facebook/edit/${id}/`;
|
|
1680
|
-
break;
|
|
1681
|
-
}
|
|
1682
|
-
default:
|
|
1683
|
-
break;
|
|
1624
|
+
if (this.state.channel.toLowerCase() === 'sms') {
|
|
1625
|
+
pathName = `/sms/edit/${id}`;
|
|
1684
1626
|
}
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1627
|
+
if (this.state.channel.toLowerCase() === 'mobilepush') {
|
|
1628
|
+
pathName = `/mobilepush/edit/${id}`;
|
|
1629
|
+
}
|
|
1630
|
+
if (this.state.channel.toLowerCase() === 'email') {
|
|
1631
|
+
pathName = `/email/edit/${id}`;
|
|
1632
|
+
}
|
|
1633
|
+
if (this.state.channel.toLowerCase() === 'email') {
|
|
1634
|
+
getQuery = type === 'embedded' ? {type: 'embedded', module, isLanguageSupport, isEdmSupport} : {module, isEdmSupport};
|
|
1635
|
+
} else {
|
|
1636
|
+
getQuery = type === 'embedded' ? {type: 'embedded', module, account_id: this.props.location.query.account_id} : {module};
|
|
1637
|
+
}
|
|
1638
|
+
if (this.state.channel.toLowerCase() === 'ebill') {
|
|
1639
|
+
pathName = `/ebill/edit/${id}`;
|
|
1640
|
+
}
|
|
1641
|
+
if (this.state.channel.toLowerCase() === 'line') {
|
|
1642
|
+
const { messages } = template.versions.base.content;
|
|
1643
|
+
const type = messages && messages[0] && messages[0].type;
|
|
1644
|
+
pathName = `/line/edit/${id}/${type}`;
|
|
1645
|
+
if (options && options.account) {
|
|
1646
|
+
pathName += `/${options.account}`;
|
|
1697
1647
|
}
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1648
|
+
}
|
|
1649
|
+
if (this.state.channel.toLowerCase() === VIBER_CHANNEL) {
|
|
1650
|
+
pathName = `/viber/edit/${id}/`;
|
|
1651
|
+
}
|
|
1652
|
+
if (this.state.channel.toLowerCase() === FACEBOOK_CHANNEL) {
|
|
1653
|
+
pathName = `/facebook/edit/${id}/`;
|
|
1654
|
+
}
|
|
1655
|
+
if (this.state.channel.toUpperCase() === WECHAT) {
|
|
1656
|
+
if (get(template, 'definition.msgcontent', '') === "RICH_MEDIA_WECHAT") {
|
|
1657
|
+
pathName = `/wechat/richmedia/edit/${id}`;
|
|
1658
|
+
} else {
|
|
1659
|
+
pathName = `/wechat/edit/${id}`;
|
|
1701
1660
|
}
|
|
1702
|
-
|
|
1703
|
-
|
|
1661
|
+
}
|
|
1662
|
+
if (this.state.channel.toUpperCase() === WHATSAPP) {
|
|
1663
|
+
pathName = `/whatsapp/edit/${id}/`;
|
|
1704
1664
|
}
|
|
1705
1665
|
if (this.isEnabledInLibraryModule("callSelectFromProps")) {
|
|
1706
1666
|
let data = id;
|
|
1707
|
-
if (this.props.fbAdManager
|
|
1667
|
+
if (this.props.fbAdManager) {
|
|
1708
1668
|
data = this.selectTemplate(id);
|
|
1709
1669
|
}
|
|
1710
1670
|
this.props.onSelectTemplate(data, this.props.fbAdManager);
|
|
@@ -1993,12 +1953,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
1993
1953
|
return isDisabled;
|
|
1994
1954
|
}
|
|
1995
1955
|
|
|
1996
|
-
checkLoader = (channel) => {
|
|
1997
|
-
const {
|
|
1998
|
-
getAllTemplatesInProgress,
|
|
1999
|
-
} = this.props.Templates || {};
|
|
2000
|
-
return (getAllTemplatesInProgress && this.state.channel.toLowerCase() === channel);
|
|
2001
|
-
}
|
|
2002
1956
|
|
|
2003
1957
|
isLoading = () => {
|
|
2004
1958
|
const { EmailCreate, Templates } = this.props;
|
|
@@ -2008,11 +1962,10 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2008
1962
|
fetchingWeCrmAccounts,
|
|
2009
1963
|
sendingFile,
|
|
2010
1964
|
} = Templates;
|
|
2011
|
-
const lineLoader = this.
|
|
2012
|
-
const smsLoader = this.
|
|
2013
|
-
const viberLoader = this.
|
|
2014
|
-
const facebookLoader = this.
|
|
2015
|
-
const rcsLoader = this.checkLoader(RCS_LOWERCASE);
|
|
1965
|
+
const lineLoader = (getAllTemplatesInProgress && this.state.channel.toLowerCase() === 'line');
|
|
1966
|
+
const smsLoader = (getAllTemplatesInProgress && this.state.channel.toLowerCase() === 'sms');
|
|
1967
|
+
const viberLoader = (getAllTemplatesInProgress && this.state.channel.toLowerCase() === VIBER_CHANNEL);
|
|
1968
|
+
const facebookLoader = (getAllTemplatesInProgress && this.state.channel.toLowerCase() === FACEBOOK_CHANNEL);
|
|
2016
1969
|
|
|
2017
1970
|
const wechatLoader = (((this.state.selectedAccount !== '' && getAllTemplatesInProgress) || (fetchingWeCrmAccounts)) && this.state.channel.toLowerCase() === 'wechat');
|
|
2018
1971
|
const whatsappLoader = (((this.state.selectedAccount !== '' && getAllTemplatesInProgress) || (fetchingWeCrmAccounts)) && this.state.channel.toLowerCase() === WHATSAPP_LOWERCASE);
|
|
@@ -2031,8 +1984,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2031
1984
|
(mobilePushLoader !== undefined ? mobilePushLoader : false) ||
|
|
2032
1985
|
(lineLoader !== undefined ? lineLoader : false) ||
|
|
2033
1986
|
(facebookLoader !== undefined ? facebookLoader : false) ||
|
|
2034
|
-
(viberLoader !== undefined ? viberLoader : false)
|
|
2035
|
-
(rcsLoader !== undefined ? rcsLoader : false);
|
|
1987
|
+
(viberLoader !== undefined ? viberLoader : false);
|
|
2036
1988
|
return isLoading;
|
|
2037
1989
|
}
|
|
2038
1990
|
getChannelTypeIllustrationInfo = (type) => {
|
|
@@ -2069,17 +2021,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2069
2021
|
title: <FormattedMessage {...messages.whatsappTitleIllustration} values={{ template: templateText }} />,
|
|
2070
2022
|
description: <FormattedMessage {...messages.whatsappDescIllustration} />,
|
|
2071
2023
|
descriptionPosition: 'bottom',
|
|
2072
|
-
descriptionClassName: 'illustration-desc',
|
|
2073
|
-
};
|
|
2074
|
-
case RCS:
|
|
2075
|
-
return {
|
|
2076
|
-
buttonLabel: <FormattedMessage {...messages.newRCSTemplate} values={{ template: templateText }} />,
|
|
2077
|
-
onClick: this.createTemplate,
|
|
2078
|
-
illustrationImage: rcsIllustration,
|
|
2079
|
-
title: <FormattedMessage {...messages.rcsTitleIllustartion} values={{ template: templateText }} />,
|
|
2080
|
-
description: <FormattedMessage {...messages.rcsDescIllustartion} />,
|
|
2081
|
-
descriptionPosition: 'bottom',
|
|
2082
|
-
descriptionClassName: 'illustration-desc rcs-illustration',
|
|
2024
|
+
descriptionClassName: 'whatsapp-illustration-desc',
|
|
2083
2025
|
};
|
|
2084
2026
|
default:
|
|
2085
2027
|
return {};
|
|
@@ -2136,7 +2078,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2136
2078
|
const { weCrmAccounts = [], fetchingWeCrmAccounts = false, campaignSettings = {} } = templates;
|
|
2137
2079
|
const isWechatChannel = channel === WECHAT;
|
|
2138
2080
|
const isMobilePushChannel = channel === MOBILE_PUSH;
|
|
2139
|
-
const isFacebookChannel = channel === FACEBOOK;
|
|
2081
|
+
const isFacebookChannel = channel === FACEBOOK;
|
|
2140
2082
|
|
|
2141
2083
|
if ([WECHAT, MOBILE_PUSH, LINE, WHATSAPP].includes(channel) && !isEmpty(weCrmAccounts) && !isFacebookChannel) {
|
|
2142
2084
|
forEach(weCrmAccounts, (account) => {
|
|
@@ -2275,7 +2217,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2275
2217
|
[MOBILE_PUSH]: 'mobilepushAccount',
|
|
2276
2218
|
[WECHAT]: 'wechatAccount',
|
|
2277
2219
|
[WHATSAPP]: 'whatsappAccount',
|
|
2278
|
-
}
|
|
2220
|
+
}
|
|
2279
2221
|
return formatMessage(messages[channelObj[channel?.toUpperCase()]]);
|
|
2280
2222
|
}
|
|
2281
2223
|
|
|
@@ -2384,13 +2326,13 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2384
2326
|
}
|
|
2385
2327
|
}
|
|
2386
2328
|
|
|
2387
|
-
const
|
|
2329
|
+
const showForViber = (![VIBER_CHANNEL, FACEBOOK_CHANNEL].includes(channel.toLowerCase()) ||
|
|
2388
2330
|
(channel.toLowerCase() === VIBER_CHANNEL && !this.props.isFullMode && isEmpty(get(this.props, 'Templates.selectedViberAccount', {}))) ||
|
|
2389
2331
|
(channel.toLowerCase() === FACEBOOK_CHANNEL && showFbAds)
|
|
2390
2332
|
);
|
|
2391
2333
|
|
|
2392
2334
|
|
|
2393
|
-
if (activeMode === ACCOUNT_SELECTION_MODE &&
|
|
2335
|
+
if (activeMode === ACCOUNT_SELECTION_MODE && showForViber ) {
|
|
2394
2336
|
return this.renderAccountSelection();
|
|
2395
2337
|
}
|
|
2396
2338
|
|
|
@@ -2424,12 +2366,12 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2424
2366
|
const channelLowerCase = (channel || '').toLowerCase();
|
|
2425
2367
|
const isTraiDltFeature = this.checkDLTfeatureEnable();
|
|
2426
2368
|
|
|
2427
|
-
const createButton =
|
|
2369
|
+
const createButton =
|
|
2428
2370
|
( channelLowerCase === WHATSAPP_LOWERCASE && !this.props.isFullMode )
|
|
2429
2371
|
? (
|
|
2430
|
-
<CapLink
|
|
2431
|
-
onClick={this.openCreativesFullMode}
|
|
2432
|
-
title={formatMessage(messages.createNewTemplateLink)}
|
|
2372
|
+
<CapLink
|
|
2373
|
+
onClick={this.openCreativesFullMode}
|
|
2374
|
+
title={formatMessage(messages.createNewTemplateLink)}
|
|
2433
2375
|
suffix={<CapIcon type="open-in-new" size="s" />}
|
|
2434
2376
|
className="create-new-link"
|
|
2435
2377
|
/>
|
|
@@ -2484,7 +2426,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2484
2426
|
onSelect={this.setWhatsappStatus}
|
|
2485
2427
|
selectedValue={this.state.selectedWhatsappStatus}
|
|
2486
2428
|
placeholder="Status"
|
|
2487
|
-
showBadge
|
|
2429
|
+
showBadge={true}
|
|
2488
2430
|
width="90px"
|
|
2489
2431
|
/>
|
|
2490
2432
|
) : null
|
|
@@ -2495,12 +2437,12 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2495
2437
|
onSelect={this.setWhatsappCategory}
|
|
2496
2438
|
selectedValue={this.state.selectedWhatsappCategory}
|
|
2497
2439
|
placeholder="Category"
|
|
2498
|
-
showBadge
|
|
2440
|
+
showBadge={true}
|
|
2499
2441
|
width="105px"
|
|
2500
2442
|
overlayStyle={{ overflowY: "hidden" }}
|
|
2501
2443
|
/>
|
|
2502
2444
|
</div>
|
|
2503
|
-
|
|
2445
|
+
|
|
2504
2446
|
)
|
|
2505
2447
|
}
|
|
2506
2448
|
{
|
|
@@ -2578,7 +2520,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
|
|
|
2578
2520
|
</div>
|
|
2579
2521
|
</CapTooltip>
|
|
2580
2522
|
)
|
|
2581
|
-
|
|
2523
|
+
: isfilterContentVisisble && !isWechatEmbedded && createButton
|
|
2582
2524
|
}
|
|
2583
2525
|
</div>
|
|
2584
2526
|
|
|
@@ -2709,9 +2651,7 @@ Templates.propTypes = {
|
|
|
2709
2651
|
viberActions: PropTypes.object,
|
|
2710
2652
|
facebookActions: PropTypes.object,
|
|
2711
2653
|
whatsappActions: PropTypes.object,
|
|
2712
|
-
rcsActions: PropTypes.object,
|
|
2713
2654
|
smsRegister: PropTypes.any,
|
|
2714
|
-
isDltFromRcs: PropTypes.bool,
|
|
2715
2655
|
};
|
|
2716
2656
|
|
|
2717
2657
|
const mapStateToProps = createStructuredSelector({
|
|
@@ -2740,7 +2680,6 @@ function mapDispatchToProps(dispatch) {
|
|
|
2740
2680
|
viberActions: bindActionCreators(viberActions, dispatch),
|
|
2741
2681
|
facebookActions: bindActionCreators(facebookActions, dispatch),
|
|
2742
2682
|
whatsappActions: bindActionCreators(whatsappActions, dispatch),
|
|
2743
|
-
rcsActions: bindActionCreators(rcsActions, dispatch),
|
|
2744
2683
|
};
|
|
2745
2684
|
}
|
|
2746
2685
|
|