@capillarytech/creatives-library 7.10.39 → 7.10.40
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/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +0 -2
- package/containers/Email/index.js +2 -3
- package/index.js +6 -0
- package/package.json +1 -1
- package/routes.js +5 -0
- package/services/api.js +6 -1
- package/v2Components/TemplatePreview/_templatePreview.scss +7 -0
- package/v2Components/TemplatePreview/assets/images/whatsapp_mobile_android.svg +2041 -0
- package/v2Components/TemplatePreview/index.js +57 -3
- package/v2Components/TemplatePreview/messages.js +8 -0
- package/v2Containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +0 -2
- package/v2Containers/Assets/images/whatsappIllustration.png +0 -0
- package/v2Containers/CreativesContainer/SlideBoxContent.js +24 -2
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -0
- package/v2Containers/CreativesContainer/constants.js +1 -0
- package/v2Containers/Email/index.js +1 -3
- package/v2Containers/Line/Container/index.js +1 -1
- package/v2Containers/Templates/_templates.scss +43 -0
- package/v2Containers/Templates/actions.js +18 -10
- package/v2Containers/Templates/constants.js +3 -1
- package/v2Containers/Templates/index.js +259 -43
- package/v2Containers/Templates/messages.js +32 -0
- package/v2Containers/Templates/reducer.js +2 -0
- package/v2Containers/TemplatesV2/index.js +2 -0
- package/v2Containers/TemplatesV2/messages.js +4 -0
- package/v2Containers/Whatsapp/actions.js +17 -0
- package/v2Containers/Whatsapp/constants.js +98 -0
- package/v2Containers/Whatsapp/index.js +469 -0
- package/v2Containers/Whatsapp/index.scss +36 -0
- package/v2Containers/Whatsapp/messages.js +184 -0
- package/v2Containers/Whatsapp/reducer.js +39 -0
- package/v2Containers/Whatsapp/sagas.js +48 -0
- package/v2Containers/Whatsapp/selectors.js +25 -0
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +123185 -0
- package/v2Containers/Whatsapp/tests/index.test.js +132 -0
- package/v2Containers/Whatsapp/tests/mockData.js +10 -0
- package/v2Containers/Whatsapp/utils.js +106 -0
|
@@ -14,13 +14,17 @@ import {CapColumn, CapRow, CapHeading, CapIcon, CapButton, CapImage} from '@capi
|
|
|
14
14
|
import './_templatePreview.scss';
|
|
15
15
|
import {updateCharCount} from '../../utils/smsCharCountV2';
|
|
16
16
|
import messages from './messages';
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
WECHAT,
|
|
19
|
+
WHATSAPP,
|
|
20
|
+
} from '../../v2Containers/CreativesContainer/constants';
|
|
18
21
|
import Carousel from '../Carousel';
|
|
19
22
|
import { VIBER, FACEBOOK } from '../../v2Containers/App/constants';
|
|
20
23
|
const wechatBodyNew = require('./assets/images/wechat_mobile_android.svg');
|
|
21
24
|
const smsMobileAndroid = require('./assets/images/sms_mobile_android.svg');
|
|
22
25
|
const lineMobileAndroid = require('../../assets/line.png');
|
|
23
26
|
const viberMobileAndroid = require('./assets/images/viberMobile.svg');
|
|
27
|
+
const whatsappMobileAndroid = require('./assets/images/whatsapp_mobile_android.svg');
|
|
24
28
|
|
|
25
29
|
const lineImgPlaceholder = require('../../assets/line-image-placeholder.svg');
|
|
26
30
|
const lineStickerPlaceholder = require('../../assets/smiley-placeholder.svg');
|
|
@@ -28,9 +32,10 @@ const lineVideoPlaceholder = require('../../assets/rich-video-placeholder.svg');
|
|
|
28
32
|
const androidPushMessagePhone = require('./assets/images/androidPushMessage.svg');
|
|
29
33
|
const iPhonePushMessagePhone = require('./assets/images/iPhonePushMessage.svg');
|
|
30
34
|
|
|
31
|
-
import { CAP_COLOR_03, CAP_WHITE, FONT_COLOR_01, CAP_G08, CAP_G06, CAP_G15, CAP_PURPLE01, CAP_G16 } from '@capillarytech/cap-ui-library/styled/variables';
|
|
35
|
+
import { CAP_COLOR_03, CAP_WHITE, FONT_COLOR_01, CAP_G08, CAP_G06, CAP_G15, CAP_PURPLE01, CAP_G16, CAP_SPACE_08 } from '@capillarytech/cap-ui-library/styled/variables';
|
|
32
36
|
import { TEMPLATE, IMAGE_CAROUSEL, IMAGE, STICKER, TEXT, IMAGE_MAP, VIDEO } from '../../v2Containers/Line/Container/constants';
|
|
33
37
|
import CapFacebookPreview from '../../v2Containers/CapFacebookPreview';
|
|
38
|
+
import { getWhatsappStatusContainer } from '../../v2Containers/Whatsapp/utils';
|
|
34
39
|
|
|
35
40
|
class TemplatePreview extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
36
41
|
onPreviewContentClicked = (channel) => {
|
|
@@ -132,7 +137,8 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
132
137
|
|
|
133
138
|
render() {
|
|
134
139
|
let content = channel && channel.toLowerCase() === 'sms' ? [this.props.content] : this.props.content;
|
|
135
|
-
const { channel, showTestAndPreviewIcon, module, viberBrandName, viberAccountName } = this.props;
|
|
140
|
+
const { channel, showTestAndPreviewIcon, module, viberBrandName, viberAccountName, whatsappAccountName, intl, templateData } = this.props;
|
|
141
|
+
const { formatMessage } = intl;
|
|
136
142
|
const { buttonText, imageURL, messageContent: viberMessageContent } = content || {};
|
|
137
143
|
let smsDetails = {};
|
|
138
144
|
// let smsText = '';
|
|
@@ -187,6 +193,13 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
187
193
|
'background-color': CAP_G15,
|
|
188
194
|
'width': '81%',
|
|
189
195
|
};
|
|
196
|
+
const whatsappSectionStyle = {
|
|
197
|
+
"padding": '3.5px 0 0',
|
|
198
|
+
'border-radius': '6px',
|
|
199
|
+
'background-color': CAP_G15,
|
|
200
|
+
'width': '88%',
|
|
201
|
+
'left': '10%',
|
|
202
|
+
};
|
|
190
203
|
const getVideoContent = ({
|
|
191
204
|
video,
|
|
192
205
|
actionUrl,
|
|
@@ -271,6 +284,17 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
271
284
|
{smsDetails.optoutUrlPresent && <CapHeading type="h6">
|
|
272
285
|
<FormattedMessage {...messages.optoutCharactersTotal} values={{optoutUrlLength: smsDetails.optouturlLength}} />
|
|
273
286
|
</CapHeading>}
|
|
287
|
+
{channel && channel.toLowerCase() === WHATSAPP.toLowerCase() ? (
|
|
288
|
+
<>
|
|
289
|
+
{getWhatsappStatusContainer(templateData)}
|
|
290
|
+
<CapHeading type="h3" style={{ marginTop: '12px' }}>
|
|
291
|
+
<FormattedMessage {...messages.whatsappCharactersTotal} values={{charCount: content?.templateMsg?.length}} />
|
|
292
|
+
</CapHeading>
|
|
293
|
+
<CapHeading type="h6">
|
|
294
|
+
<FormattedMessage {...messages.whatsappUnsubscribeLength} />
|
|
295
|
+
</CapHeading>
|
|
296
|
+
</>
|
|
297
|
+
) : null}
|
|
274
298
|
</CapColumn>}
|
|
275
299
|
<CapColumn span={this.props.showCount ? 8 : 24}>
|
|
276
300
|
{showTestAndPreview && (
|
|
@@ -638,6 +662,36 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
638
662
|
</div>
|
|
639
663
|
) : ''
|
|
640
664
|
}
|
|
665
|
+
{channel && channel?.toUpperCase() === WHATSAPP ? (
|
|
666
|
+
<div className="shell-v2 align-center" id="sms-preview">
|
|
667
|
+
<CapImage
|
|
668
|
+
className="preview-image"
|
|
669
|
+
src={whatsappMobileAndroid}
|
|
670
|
+
alt={formatMessage(messages.previewGenerated)}
|
|
671
|
+
/>
|
|
672
|
+
<div className='whatsapp-brand-name'>{whatsappAccountName || ""}</div>
|
|
673
|
+
<div
|
|
674
|
+
className="msgContainer"
|
|
675
|
+
style={{
|
|
676
|
+
maxHeight: 292,
|
|
677
|
+
marginLeft: 28,
|
|
678
|
+
}}
|
|
679
|
+
>
|
|
680
|
+
<div
|
|
681
|
+
className="message-pop align-left"
|
|
682
|
+
style={whatsappSectionStyle}>
|
|
683
|
+
<p
|
|
684
|
+
style={{
|
|
685
|
+
"color": CAP_G16,
|
|
686
|
+
"margin": '1.5px 6px 1px 7px',
|
|
687
|
+
}}>{content?.templateMsg || ''}
|
|
688
|
+
</p>
|
|
689
|
+
<div style={{ paddingBottom: CAP_SPACE_08 }}></div>
|
|
690
|
+
</div>
|
|
691
|
+
</div>
|
|
692
|
+
</div>
|
|
693
|
+
) : ('')
|
|
694
|
+
}
|
|
641
695
|
{channel && channel.toLowerCase() === FACEBOOK && (
|
|
642
696
|
<div style={{position: 'absolute', left: '80%'}} id="facebook-preview">
|
|
643
697
|
<CapFacebookPreview
|
|
@@ -22,10 +22,18 @@ export default defineMessages({
|
|
|
22
22
|
id: 'creatives.componentsV2.TemplatePreview.charactersTotal',
|
|
23
23
|
defaultMessage: "{smsCount} SMS ({charCount} characters)",
|
|
24
24
|
},
|
|
25
|
+
whatsappCharactersTotal: {
|
|
26
|
+
id: 'creatives.componentsV2.TemplatePreview.whatsappCharactersTotal',
|
|
27
|
+
defaultMessage: "{charCount} characters",
|
|
28
|
+
},
|
|
25
29
|
optoutCharactersTotal: {
|
|
26
30
|
id: 'app.components.TemplatePreview.optoutCharactersTotal',
|
|
27
31
|
defaultMessage: "Includes optout tag ({optoutUrlLength} characters)",
|
|
28
32
|
},
|
|
33
|
+
whatsappUnsubscribeLength: {
|
|
34
|
+
id: 'app.components.TemplatePreview.whatsappUnsubscribeLength',
|
|
35
|
+
defaultMessage: "Includes 36 characters of (Click {{unsubscribe}} to unsubscribe)",
|
|
36
|
+
},
|
|
29
37
|
smsFormatType: {
|
|
30
38
|
id: 'creatives.componentsV2.TemplatePreview.smsFormatType',
|
|
31
39
|
defaultMessage: 'Message has unicode characters',
|
|
Binary file
|
|
@@ -21,6 +21,8 @@ import * as constants from './constants';
|
|
|
21
21
|
import LineContainer from '../Line/Container';
|
|
22
22
|
import FTP from '../FTP';
|
|
23
23
|
import Viber from '../Viber';
|
|
24
|
+
import Whatsapp from '../Whatsapp';
|
|
25
|
+
import { getWhatsappContent } from '../Whatsapp/utils';
|
|
24
26
|
import * as commonUtil from '../../utils/common';
|
|
25
27
|
const CreativesWrapper = styled.div`
|
|
26
28
|
.ant-popover,
|
|
@@ -172,7 +174,7 @@ function SlideBoxContent(props) {
|
|
|
172
174
|
|
|
173
175
|
const isCreateSms = slidBoxContent === 'createTemplate' && channel === constants.SMS;
|
|
174
176
|
const isCreateFacebook = slidBoxContent === 'createTemplate' && channel === constants.FACEBOOK;
|
|
175
|
-
|
|
177
|
+
const isCreateWhatsapp = slidBoxContent === 'createTemplate' && channel === constants.WHATSAPP;
|
|
176
178
|
const isCreateMPush = slidBoxContent === 'createTemplate' && channel === constants.MOBILE_PUSH;
|
|
177
179
|
const isCreateCallTask = slidBoxContent === 'createTemplate' && channel === constants.CALL_TASK;
|
|
178
180
|
let isEditSms = false;
|
|
@@ -185,6 +187,7 @@ function SlideBoxContent(props) {
|
|
|
185
187
|
let isEditMPush = false;
|
|
186
188
|
let isEditFacebook = false;
|
|
187
189
|
let isEditFTP = false;
|
|
190
|
+
let isEditWhatsapp = false;
|
|
188
191
|
const isEmailCreate = slidBoxContent === 'createTemplate' && channel === constants.EMAIL;
|
|
189
192
|
if (templateData && channel) {
|
|
190
193
|
channel = templateData.type;// for edit mode with template data
|
|
@@ -194,7 +197,8 @@ function SlideBoxContent(props) {
|
|
|
194
197
|
isEditEmailWithId = slidBoxContent === 'editTemplate' && channel === constants.EMAIL && templateData._id;
|
|
195
198
|
isEmailEditWithContent = slidBoxContent === 'editTemplate' && channel === constants.EMAIL && !templateData._id;
|
|
196
199
|
isEditFacebook = slidBoxContent === 'editTemplate' && channel === constants.FACEBOOK;
|
|
197
|
-
|
|
200
|
+
isEditWhatsapp = slidBoxContent === 'editTemplate' && channel === constants.WHATSAPP;
|
|
201
|
+
isPreview = slidBoxContent === 'preview' && (channel === constants.SMS || channel === constants.LINE || channel === constants.VIBER || channel === constants.FACEBOOK || channel === constants.WHATSAPP);
|
|
198
202
|
isEmailPreview = slidBoxContent === 'preview' && channel === constants.EMAIL;
|
|
199
203
|
isMpushPreview = slidBoxContent === 'preview' && channel === constants.MOBILE_PUSH;
|
|
200
204
|
isEditFTP = slidBoxContent === 'editTemplate' && [constants.NO_COMMUNICATION, constants.FTP].includes(channel);
|
|
@@ -321,6 +325,11 @@ function SlideBoxContent(props) {
|
|
|
321
325
|
};
|
|
322
326
|
return fbContent;
|
|
323
327
|
}
|
|
328
|
+
case constants.WHATSAPP: {
|
|
329
|
+
return {
|
|
330
|
+
templateMsg: getWhatsappContent(templateDataObject),
|
|
331
|
+
};
|
|
332
|
+
}
|
|
324
333
|
default:
|
|
325
334
|
return get(templateDataObject, `versions.base.content`);
|
|
326
335
|
}
|
|
@@ -678,6 +687,19 @@ function SlideBoxContent(props) {
|
|
|
678
687
|
templateData={templateData}
|
|
679
688
|
createNew/> }
|
|
680
689
|
|
|
690
|
+
{isCreateWhatsapp && (<Whatsapp
|
|
691
|
+
isFullMode={isFullMode}
|
|
692
|
+
onCreateComplete={onCreateComplete}
|
|
693
|
+
handleClose={handleClose}
|
|
694
|
+
templateData={templateData}
|
|
695
|
+
location={{
|
|
696
|
+
pathname: `/whatsapp`,
|
|
697
|
+
query,
|
|
698
|
+
search: '',
|
|
699
|
+
}}
|
|
700
|
+
selectedWeChatAccount={selectedWeChatAccount} />
|
|
701
|
+
)}
|
|
702
|
+
|
|
681
703
|
</CreativesWrapper>
|
|
682
704
|
);
|
|
683
705
|
}
|
|
@@ -16,6 +16,7 @@ export const FACEBOOK = "FACEBOOK";
|
|
|
16
16
|
export const FTP = "FTP";
|
|
17
17
|
export const NO_COMMUNICATION = "NO_COMMUNICATION";
|
|
18
18
|
export const VIBER = "VIBER";
|
|
19
|
+
export const WHATSAPP = "WHATSAPP";
|
|
19
20
|
|
|
20
21
|
export const SHOW_CONTANER_LOADER = "app/CreativesContainer/SHOW_CONTANER_LOADER";
|
|
21
22
|
export const HIDE_CONTAINER_LOADER = "app/CreativesContainer/HIDE_CONTAINER_LOADER";
|
|
@@ -2179,9 +2179,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2179
2179
|
} else {
|
|
2180
2180
|
this.setState({injectedTags: data.tags});
|
|
2181
2181
|
}
|
|
2182
|
-
|
|
2183
|
-
this.props.globalActions.setInjectedTags(data.tags);
|
|
2184
|
-
}
|
|
2182
|
+
this.props.globalActions.setInjectedTags(data.tags);
|
|
2185
2183
|
}
|
|
2186
2184
|
|
|
2187
2185
|
startLoading = (ifEdit) => {
|
|
@@ -83,7 +83,7 @@ export const LineContainer = ({
|
|
|
83
83
|
|
|
84
84
|
const onAccountSelect = (account) => {
|
|
85
85
|
const { value } = account.target;
|
|
86
|
-
templateActions.
|
|
86
|
+
templateActions.setChannelAccount(LINE, Templates.weCrmAccounts.find((item) => item.name === value));
|
|
87
87
|
updateSelectedAccount(value);
|
|
88
88
|
updateAccountSelectFlow(false);
|
|
89
89
|
createNew();
|
|
@@ -499,3 +499,46 @@
|
|
|
499
499
|
box-shadow: none;
|
|
500
500
|
}
|
|
501
501
|
}
|
|
502
|
+
|
|
503
|
+
.whatsapp-filters {
|
|
504
|
+
display: flex;
|
|
505
|
+
width: 100%;
|
|
506
|
+
padding-left: 8px;
|
|
507
|
+
padding-bottom: 16px;
|
|
508
|
+
.cap-select-filter-v2 {
|
|
509
|
+
margin: 0 8px;
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
.selected-whatsapp-filters {
|
|
514
|
+
margin-top: -16px;
|
|
515
|
+
|
|
516
|
+
.cap-tag-v2{
|
|
517
|
+
font-size: 12px;
|
|
518
|
+
color: $CAP_G04;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
.ant-anchor-link-title {
|
|
522
|
+
font-size: 12px;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
.whatsapp-card-title {
|
|
527
|
+
|
|
528
|
+
.whatsapp-status-container {
|
|
529
|
+
margin-top: 12px;
|
|
530
|
+
width: 150%;
|
|
531
|
+
height: 20px;
|
|
532
|
+
|
|
533
|
+
.cap-colored-tag-v2 {
|
|
534
|
+
font-weight: normal;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
.whatsapp-illustration-desc {
|
|
540
|
+
font-size: 14px;
|
|
541
|
+
color: rgba(0, 0, 0, 0.87);
|
|
542
|
+
margin: 8px 0;
|
|
543
|
+
white-space: pre-wrap;
|
|
544
|
+
}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import * as types from './constants';
|
|
8
|
+
import { LINE, WHATSAPP } from '../CreativesContainer/constants';
|
|
8
9
|
|
|
9
10
|
export function getAllTemplates(channel, queryParams) {
|
|
10
|
-
//
|
|
11
11
|
return {
|
|
12
12
|
type: types.GET_ALL_TEMPLATES_REQUEST, channel, queryParams,
|
|
13
13
|
};
|
|
@@ -26,7 +26,6 @@ export function resetAccount() {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export function deleteTemplate(channel, id) {
|
|
29
|
-
|
|
30
29
|
return {
|
|
31
30
|
type: types.DELETE_TEMPLATE_REQUEST, channel, id,
|
|
32
31
|
};
|
|
@@ -51,18 +50,29 @@ export function getAccountsSettings() {
|
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
export function setWeChatAccount(weChatAccount) {
|
|
54
|
-
|
|
55
53
|
return {
|
|
56
54
|
type: types.SET_WECHAT_ACCOUNT,
|
|
57
55
|
weChatAccount,
|
|
58
56
|
};
|
|
59
57
|
}
|
|
60
58
|
|
|
61
|
-
export function
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
export function setChannelAccount(channel, account) {
|
|
60
|
+
switch (channel) {
|
|
61
|
+
case LINE: {
|
|
62
|
+
return {
|
|
63
|
+
type: types.SET_LINE_ACCOUNT,
|
|
64
|
+
account,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
case WHATSAPP: {
|
|
68
|
+
return {
|
|
69
|
+
type: types.SET_WHATSAPP_ACCOUNT,
|
|
70
|
+
account,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
default:
|
|
74
|
+
return {};
|
|
75
|
+
}
|
|
66
76
|
}
|
|
67
77
|
|
|
68
78
|
export function setViberAccount(viberAccount) {
|
|
@@ -114,7 +124,6 @@ export function setBEETemplate(template) {
|
|
|
114
124
|
};
|
|
115
125
|
}
|
|
116
126
|
export function getTemplateDetails(id, channel) {
|
|
117
|
-
|
|
118
127
|
return {
|
|
119
128
|
type: types.GET_TEMPLATE_DETAILS_REQUEST,
|
|
120
129
|
id,
|
|
@@ -129,7 +138,6 @@ export function resetTemplateData() {
|
|
|
129
138
|
}
|
|
130
139
|
|
|
131
140
|
export function resetUploadData() {
|
|
132
|
-
|
|
133
141
|
return {
|
|
134
142
|
type: types.RESET_UPLOAD_DATA,
|
|
135
143
|
};
|
|
@@ -45,7 +45,7 @@ export const CLEAR_TEMPLATE_STORE_DATA = "app/v2Containers/Templates/CLEAR_TEMPL
|
|
|
45
45
|
export const SET_LINE_ACCOUNT = "app/v2Containers/Templates/SET_LINE_ACCOUNT";
|
|
46
46
|
export const SET_VIBER_ACCOUNT = "app/v2Containers/Templates/SET_VIBER_ACCOUNT";
|
|
47
47
|
export const SET_FACEBOOK_ACCOUNT = "app/v2Containers/Templates/SET_FACEBOOK_ACCOUNT";
|
|
48
|
-
|
|
48
|
+
export const SET_WHATSAPP_ACCOUNT = "app/v2Containers/Templates/SET_WHATSAPP_ACCOUNT";
|
|
49
49
|
|
|
50
50
|
export const GET_DEAFULT_BEE_TEMPLATES_REQUEST = 'app/v2Containers/Templates/GET_DEAFULT_BEE_TEMPLATES_REQUEST';
|
|
51
51
|
export const GET_DEAFULT_BEE_TEMPLATES_SUCCESS = 'app/v2Containers/Templates/GET_DEAFULT_BEE_TEMPLATES_SUCCESS';
|
|
@@ -57,3 +57,5 @@ export const GET_ORG_LEVEL_CAMPAIGN_SETTINGS_SUCCESS =
|
|
|
57
57
|
'app/v2Containers/Templates/GET_ORG_LEVEL_CAMPAIGN_SETTINGS_SUCCESS';
|
|
58
58
|
export const GET_ORG_LEVEL_CAMPAIGN_SETTINGS_FAILURE =
|
|
59
59
|
'app/v2Containers/Templates/GET_ORG_LEVEL_CAMPAIGN_SETTINGS_FAILURE';
|
|
60
|
+
|
|
61
|
+
export const MAX_WHATSAPP_TEMPLATES = 250;
|