@capillarytech/creatives-library 7.14.9 → 7.14.11
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/assets/videoPlay.svg +3 -0
- package/package.json +1 -1
- package/v2Components/CapDocumentUpload/index.js +22 -20
- package/v2Components/CapDocumentUpload/index.scss +8 -2
- package/v2Components/CapDocumentUpload/messages.js +3 -3
- package/v2Components/CapDocumentUpload/tests/index.test.js +14 -4
- package/v2Components/CapVideoUpload/index.js +12 -20
- package/v2Components/CapVideoUpload/index.scss +11 -4
- package/v2Components/CapVideoUpload/messages.js +1 -1
- package/v2Components/CapVideoUpload/tests/index.test.js +47 -16
- package/v2Components/TemplatePreview/_templatePreview.scss +16 -0
- package/v2Components/TemplatePreview/index.js +11 -5
- package/v2Containers/CreativesContainer/index.js +41 -29
- package/v2Containers/Templates/_templates.scss +16 -0
- package/v2Containers/Templates/index.js +14 -2
- package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +3 -0
- package/v2Containers/Whatsapp/constants.js +3 -0
- package/v2Containers/Whatsapp/index.js +104 -70
- package/v2Containers/Whatsapp/messages.js +4 -0
- package/v2Containers/Whatsapp/styles.scss +3 -2
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +2058 -4188
- package/v2Containers/Whatsapp/tests/__snapshots__/utils.test.js.snap +93 -0
- package/v2Containers/Whatsapp/tests/utils.test.js +26 -0
- package/v2Containers/Whatsapp/utils.js +24 -11
- package/v2Containers/mockdata.js +164 -0
|
@@ -786,6 +786,7 @@ exports[`Test Templates container Test max templates exceeded 1`] = `
|
|
|
786
786
|
className="whatsapp-image"
|
|
787
787
|
src="https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/c9edc114-923b-4ac7-82d0-d6682213.jpg"
|
|
788
788
|
/>
|
|
789
|
+
|
|
789
790
|
<div
|
|
790
791
|
className="whatsapp-doc"
|
|
791
792
|
/>
|
|
@@ -1223,6 +1224,7 @@ exports[`Test Templates container Test max templates not exceeded 1`] = `
|
|
|
1223
1224
|
className="whatsapp-image"
|
|
1224
1225
|
src="https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/c9edc114-923b-4ac7-82d0-d6682213.jpg"
|
|
1225
1226
|
/>
|
|
1227
|
+
|
|
1226
1228
|
<div
|
|
1227
1229
|
className="whatsapp-doc"
|
|
1228
1230
|
/>
|
|
@@ -1660,6 +1662,7 @@ exports[`Test Templates container Test max templates warning 1`] = `
|
|
|
1660
1662
|
className="whatsapp-image"
|
|
1661
1663
|
src="https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/c9edc114-923b-4ac7-82d0-d6682213.jpg"
|
|
1662
1664
|
/>
|
|
1665
|
+
|
|
1663
1666
|
<div
|
|
1664
1667
|
className="whatsapp-doc"
|
|
1665
1668
|
/>
|
|
@@ -187,6 +187,9 @@ export const WHATSAPP_DOCUMENT_SIZE = 16000000; // 16MB
|
|
|
187
187
|
export const HOST_TWILIO = 'twiliowhatsapptrans';
|
|
188
188
|
export const HOST_KARIX = 'karixwhatsappbulk';
|
|
189
189
|
export const SIZE_UNITS = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
190
|
+
export const PAGES = "pages";
|
|
191
|
+
export const PAGE = "page";
|
|
192
|
+
export const PDF = "PDF";
|
|
190
193
|
|
|
191
194
|
export const LANGUAGE_OPTIONS = [
|
|
192
195
|
{
|
|
@@ -58,6 +58,7 @@ import {
|
|
|
58
58
|
INITIAL_CTA_DATA,
|
|
59
59
|
ALLOWED_IMAGE_EXTENSIONS_REGEX,
|
|
60
60
|
WHATSAPP_IMG_SIZE,
|
|
61
|
+
HOST_TWILIO,
|
|
61
62
|
HOST_KARIX,
|
|
62
63
|
ALLOWED_EXTENSIONS_VIDEO_REGEX,
|
|
63
64
|
ALLOWED_EXTENSIONS_DOCUMENT_REGEX,
|
|
@@ -131,8 +132,10 @@ export const Whatsapp = (props) => {
|
|
|
131
132
|
const [spin, setSpin] = useState(false);
|
|
132
133
|
const [unsubscribeRequired, setUnsubscribeRequired] = useState(false);
|
|
133
134
|
const [whatsappImageSrc, setWhatsappImageSrc] = useState('');
|
|
134
|
-
const [
|
|
135
|
-
|
|
135
|
+
const [whatsappVideoSrcAndPreview, setWhatsappVideoSrcAndPreview] = useState({
|
|
136
|
+
whatsappVideoSrc: '',
|
|
137
|
+
whatsappVideoPreviewImg: '',
|
|
138
|
+
});
|
|
136
139
|
const [whatsappDocSource, setWhatsappDocSource] = useState('');
|
|
137
140
|
const [whatsappDocParams, setWhatsappDocParams] = useState({});
|
|
138
141
|
const [karixFileHandle, setKarixFileHandle] = useState('');
|
|
@@ -239,7 +242,10 @@ export const Whatsapp = (props) => {
|
|
|
239
242
|
setTemplateLanguage(languages[0]?.language);
|
|
240
243
|
setTemplateMediaType(mediaType);
|
|
241
244
|
setWhatsappImageSrc(imageUrl);
|
|
242
|
-
|
|
245
|
+
setWhatsappVideoSrcAndPreview({
|
|
246
|
+
whatsappVideoSrc: videoUrl,
|
|
247
|
+
whatsappVideoPreviewImg: videoPreviewImg,
|
|
248
|
+
});
|
|
243
249
|
setWhatsappDocSource(documentUrl);
|
|
244
250
|
setWhatsappDocParams(whatsappDocParams);
|
|
245
251
|
updateAssetList({
|
|
@@ -248,7 +254,6 @@ export const Whatsapp = (props) => {
|
|
|
248
254
|
videoSrc: videoUrl,
|
|
249
255
|
fileHandle: karixFileHandle,
|
|
250
256
|
});
|
|
251
|
-
setWhatsappVideoPreviewImg(videoPreviewImg);
|
|
252
257
|
setKarixFileHandle(karixFileHandle);
|
|
253
258
|
setButtonType(btnType);
|
|
254
259
|
if (btnType === WHATSAPP_BUTTON_TYPES.CTA && buttons.length > 0) {
|
|
@@ -478,7 +483,7 @@ export const Whatsapp = (props) => {
|
|
|
478
483
|
label: (
|
|
479
484
|
<CapTooltip
|
|
480
485
|
title={
|
|
481
|
-
host
|
|
486
|
+
host === HOST_TWILIO
|
|
482
487
|
? formatMessage(messages.disabledFeatureTooltip)
|
|
483
488
|
: ''
|
|
484
489
|
}
|
|
@@ -486,35 +491,35 @@ export const Whatsapp = (props) => {
|
|
|
486
491
|
{formatMessage(messages.mediaImage)}
|
|
487
492
|
</CapTooltip>
|
|
488
493
|
),
|
|
489
|
-
disabled: host
|
|
494
|
+
disabled: host === HOST_TWILIO,
|
|
490
495
|
},
|
|
491
496
|
{
|
|
492
497
|
value: WHATSAPP_MEDIA_TYPES.VIDEO,
|
|
493
498
|
label: (
|
|
494
499
|
<CapTooltip
|
|
495
500
|
title={
|
|
496
|
-
host
|
|
501
|
+
host === HOST_TWILIO
|
|
497
502
|
? formatMessage(messages.disabledFeatureTooltip)
|
|
498
503
|
: ''
|
|
499
504
|
}>
|
|
500
505
|
{formatMessage(messages.mediaVideo)}
|
|
501
506
|
</CapTooltip>
|
|
502
507
|
),
|
|
503
|
-
disabled: host
|
|
508
|
+
disabled: host === HOST_TWILIO,
|
|
504
509
|
},
|
|
505
510
|
{
|
|
506
511
|
value: WHATSAPP_MEDIA_TYPES.DOCUMENT,
|
|
507
512
|
label: (
|
|
508
513
|
<CapTooltip
|
|
509
514
|
title={
|
|
510
|
-
host
|
|
515
|
+
host === HOST_TWILIO
|
|
511
516
|
? formatMessage(messages.disabledFeatureTooltip)
|
|
512
517
|
: ''
|
|
513
518
|
}>
|
|
514
519
|
{formatMessage(messages.mediaDocument)}
|
|
515
520
|
</CapTooltip>
|
|
516
521
|
),
|
|
517
|
-
disabled: host
|
|
522
|
+
disabled: host === HOST_TWILIO,
|
|
518
523
|
},
|
|
519
524
|
];
|
|
520
525
|
|
|
@@ -724,13 +729,15 @@ export const Whatsapp = (props) => {
|
|
|
724
729
|
|
|
725
730
|
const setUpdateWhatsappVideoSrc = useCallback(
|
|
726
731
|
(index, data) => {
|
|
727
|
-
|
|
732
|
+
setWhatsappVideoSrcAndPreview({
|
|
733
|
+
whatsappVideoSrc: data?.videoSrc,
|
|
734
|
+
whatsappVideoPreviewImg: data?.previewUrl,
|
|
735
|
+
});
|
|
728
736
|
setKarixFileHandle(data?.fileHandle);
|
|
729
|
-
setWhatsappVideoPreviewImg(data?.previewUrl);
|
|
730
737
|
updateAssetList(data);
|
|
731
738
|
actions.clearWhatsappAsset(0);
|
|
732
739
|
},
|
|
733
|
-
[whatsappVideoSrc],
|
|
740
|
+
[whatsappVideoSrcAndPreview?.whatsappVideoSrc],
|
|
734
741
|
);
|
|
735
742
|
|
|
736
743
|
const setUpdateWhatsappDocSrc = useCallback(
|
|
@@ -777,6 +784,7 @@ export const Whatsapp = (props) => {
|
|
|
777
784
|
videoData={editData}
|
|
778
785
|
className="cap-custom-video-upload"
|
|
779
786
|
channel={WHATSAPP}
|
|
787
|
+
errorMessage={formatMessage(messages.videoErrorMessage)}
|
|
780
788
|
/>
|
|
781
789
|
);
|
|
782
790
|
const docPreview = ( whatsappDocSource !== '' &&
|
|
@@ -784,7 +792,6 @@ export const Whatsapp = (props) => {
|
|
|
784
792
|
);
|
|
785
793
|
const renderDocumentComponent = () => (
|
|
786
794
|
<CapDocumentUpload
|
|
787
|
-
style={{ paddingTop: '20px' }}
|
|
788
795
|
allowedExtensionsRegex={ALLOWED_EXTENSIONS_DOCUMENT_REGEX}
|
|
789
796
|
documentSize={WHATSAPP_DOCUMENT_SIZE}
|
|
790
797
|
uploadAsset={uploadWhatsappImage}
|
|
@@ -800,6 +807,8 @@ export const Whatsapp = (props) => {
|
|
|
800
807
|
setWhatsappDocParams={setWhatsappDocParams}
|
|
801
808
|
channel={WHATSAPP}
|
|
802
809
|
docPreview={docPreview}
|
|
810
|
+
supportedMaxSize={'16 MB'}
|
|
811
|
+
supportedFormat={'PDF'}
|
|
803
812
|
/>
|
|
804
813
|
);
|
|
805
814
|
|
|
@@ -939,49 +948,63 @@ export const Whatsapp = (props) => {
|
|
|
939
948
|
};
|
|
940
949
|
});
|
|
941
950
|
|
|
942
|
-
const createPayload = () =>
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
951
|
+
const createPayload = () => {
|
|
952
|
+
let mediaParams = {};
|
|
953
|
+
switch (templateMediaType) {
|
|
954
|
+
case WHATSAPP_MEDIA_TYPES.IMAGE:
|
|
955
|
+
mediaParams = {
|
|
956
|
+
imageUrl: getCdnUrl({url: whatsappImageSrc, channelName: WHATSAPP }),
|
|
957
|
+
karixFileHandle,
|
|
958
|
+
};
|
|
959
|
+
break;
|
|
960
|
+
case WHATSAPP_MEDIA_TYPES.VIDEO:
|
|
961
|
+
mediaParams = {
|
|
962
|
+
videoUrl: getCdnUrl({url: whatsappVideoSrcAndPreview?.whatsappVideoSrc, channelName: WHATSAPP }),
|
|
963
|
+
videoPreviewImg: getCdnUrl({url: whatsappVideoSrcAndPreview?.whatsappVideoPreviewImg, channelName: WHATSAPP}),
|
|
964
|
+
karixFileHandle,
|
|
965
|
+
};
|
|
966
|
+
break;
|
|
967
|
+
case WHATSAPP_MEDIA_TYPES.DOCUMENT:
|
|
968
|
+
mediaParams = {
|
|
969
|
+
documentUrl: getCdnUrl({url: whatsappDocSource, channelName: WHATSAPP}),
|
|
970
|
+
whatsappDocParams,
|
|
971
|
+
karixFileHandle,
|
|
972
|
+
};
|
|
973
|
+
break;
|
|
974
|
+
default:
|
|
975
|
+
break;
|
|
976
|
+
}
|
|
977
|
+
return ({
|
|
978
|
+
name: templateName,
|
|
979
|
+
versions: {
|
|
980
|
+
base: {
|
|
981
|
+
content: {
|
|
982
|
+
whatsapp: {
|
|
983
|
+
category: templateCategory,
|
|
984
|
+
languages: [
|
|
985
|
+
{
|
|
986
|
+
language: templateLanguage,
|
|
987
|
+
content: getPayloadContent(),
|
|
988
|
+
},
|
|
989
|
+
],
|
|
990
|
+
...(isBtnTypeCta && {
|
|
991
|
+
buttonType,
|
|
992
|
+
buttons: getCtaPayload(),
|
|
993
|
+
}),
|
|
994
|
+
mediaType: templateMediaType,
|
|
995
|
+
...mediaParams,
|
|
996
|
+
varMapped: !isFullMode ? varMap : {},
|
|
997
|
+
templateEditor: !isFullMode && tempMsgArray.join(''),
|
|
998
|
+
accountId,
|
|
999
|
+
accessToken,
|
|
1000
|
+
hostName: host,
|
|
1001
|
+
},
|
|
979
1002
|
},
|
|
980
1003
|
},
|
|
981
1004
|
},
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
}
|
|
1005
|
+
type: WHATSAPP,
|
|
1006
|
+
});
|
|
1007
|
+
};
|
|
985
1008
|
|
|
986
1009
|
const actionCallback = ({ errorMessage }) => {
|
|
987
1010
|
if (!errorMessage) {
|
|
@@ -1078,6 +1101,14 @@ export const Whatsapp = (props) => {
|
|
|
1078
1101
|
</>
|
|
1079
1102
|
);
|
|
1080
1103
|
|
|
1104
|
+
const renderMediaComponent = () => (
|
|
1105
|
+
<>
|
|
1106
|
+
{isMediaTypeImage && renderImageComponent()}
|
|
1107
|
+
{isMediaTypeVideo && renderVideoComonent()}
|
|
1108
|
+
{isMediaTypeDoc && renderDocumentComponent()}
|
|
1109
|
+
</>
|
|
1110
|
+
);
|
|
1111
|
+
|
|
1081
1112
|
const createModeContent = (
|
|
1082
1113
|
<>
|
|
1083
1114
|
{/* template name */}
|
|
@@ -1129,9 +1160,7 @@ export const Whatsapp = (props) => {
|
|
|
1129
1160
|
/>
|
|
1130
1161
|
{/* template media type */}
|
|
1131
1162
|
{renderMediaSection()}
|
|
1132
|
-
{
|
|
1133
|
-
{isMediaTypeVideo && renderVideoComonent()}
|
|
1134
|
-
{isMediaTypeDoc && renderDocumentComponent()}
|
|
1163
|
+
{renderMediaComponent()}
|
|
1135
1164
|
{/* template message create flow */}
|
|
1136
1165
|
<CapHeader
|
|
1137
1166
|
className={`${isMediaTypeImage ? 'whatsapp-heading-spacing' : ''}`}
|
|
@@ -1364,10 +1393,7 @@ export const Whatsapp = (props) => {
|
|
|
1364
1393
|
{/* template media type */}
|
|
1365
1394
|
{renderLabel('mediaLabel')}
|
|
1366
1395
|
<CapLabel type="label15">{capitalizeString(templateMediaType)}</CapLabel>
|
|
1367
|
-
{
|
|
1368
|
-
{isMediaTypeVideo && renderVideoComonent()}
|
|
1369
|
-
{isMediaTypeDoc && renderDocumentComponent()}
|
|
1370
|
-
|
|
1396
|
+
{renderMediaComponent()}
|
|
1371
1397
|
<CapRow className="whatsapp-render-heading">
|
|
1372
1398
|
<CapHeader
|
|
1373
1399
|
title={
|
|
@@ -1451,19 +1477,27 @@ export const Whatsapp = (props) => {
|
|
|
1451
1477
|
)}
|
|
1452
1478
|
</>
|
|
1453
1479
|
);
|
|
1480
|
+
let mediaPreview = {};
|
|
1481
|
+
switch (templateMediaType) {
|
|
1482
|
+
case WHATSAPP_MEDIA_TYPES.IMAGE:
|
|
1483
|
+
mediaPreview = {whatsappImageSrc};
|
|
1484
|
+
break;
|
|
1485
|
+
case WHATSAPP_MEDIA_TYPES.VIDEO:
|
|
1486
|
+
mediaPreview = {
|
|
1487
|
+
whatsappVideoPreviewImg: whatsappVideoSrcAndPreview?.whatsappVideoPreviewImg,
|
|
1488
|
+
};
|
|
1489
|
+
break;
|
|
1490
|
+
case WHATSAPP_MEDIA_TYPES.DOCUMENT:
|
|
1491
|
+
mediaPreview = {docPreview};
|
|
1492
|
+
break;
|
|
1493
|
+
default:
|
|
1494
|
+
break;
|
|
1495
|
+
}
|
|
1454
1496
|
return (
|
|
1455
1497
|
<TemplatePreview
|
|
1456
1498
|
channel={WHATSAPP}
|
|
1457
1499
|
content={{
|
|
1458
|
-
...
|
|
1459
|
-
whatsappImageSrc,
|
|
1460
|
-
}),
|
|
1461
|
-
...(isMediaTypeVideo && {
|
|
1462
|
-
whatsappVideoPreviewImg,
|
|
1463
|
-
}),
|
|
1464
|
-
...(isMediaTypeDoc && {
|
|
1465
|
-
docPreview,
|
|
1466
|
-
}),
|
|
1500
|
+
...mediaPreview,
|
|
1467
1501
|
templateMsg,
|
|
1468
1502
|
...(isBtnTypeCta && {
|
|
1469
1503
|
ctaData,
|
|
@@ -296,6 +296,10 @@ export default defineMessages({
|
|
|
296
296
|
id: `${prefix}.optional`,
|
|
297
297
|
defaultMessage: '(Optional)',
|
|
298
298
|
},
|
|
299
|
+
videoErrorMessage: {
|
|
300
|
+
id: `${prefix}.videoErrorMessage`,
|
|
301
|
+
defaultMessage: 'Please upload the video with allowed file extension, size, dimension and aspect ratio',
|
|
302
|
+
},
|
|
299
303
|
|
|
300
304
|
afrikaans: {
|
|
301
305
|
id: `${prefix}.afrikaans`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@import '~@capillarytech/cap-ui-library/styles/_variables.scss';
|
|
1
2
|
.pdf-img-box {
|
|
2
3
|
width: 162px;
|
|
3
4
|
height: 80px;
|
|
@@ -9,7 +10,7 @@
|
|
|
9
10
|
.pdf-label {
|
|
10
11
|
width: 162px;
|
|
11
12
|
height: 44px;
|
|
12
|
-
background-color:
|
|
13
|
+
background-color: $CAP_G09;
|
|
13
14
|
display: flex;
|
|
14
15
|
.cap-image-v2 {
|
|
15
16
|
margin: 6px 4px;
|
|
@@ -20,7 +21,7 @@
|
|
|
20
21
|
margin: 8px 4px;
|
|
21
22
|
max-width: 114px;
|
|
22
23
|
.pdf-info-sec {
|
|
23
|
-
color:
|
|
24
|
+
color: $CAP_G04;
|
|
24
25
|
font-size: 8px;
|
|
25
26
|
font-weight: 400;
|
|
26
27
|
line-height: 12px;
|