@capillarytech/creatives-library 7.14.10 → 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/package.json +1 -1
- package/v2Components/CapDocumentUpload/index.js +20 -13
- package/v2Components/CapDocumentUpload/index.scss +2 -2
- package/v2Components/CapDocumentUpload/messages.js +2 -2
- package/v2Components/CapDocumentUpload/tests/index.test.js +2 -3
- package/v2Components/CapVideoUpload/index.js +11 -18
- package/v2Components/CapVideoUpload/index.scss +11 -4
- package/v2Components/CapVideoUpload/messages.js +1 -1
- package/v2Components/TemplatePreview/index.js +1 -1
- 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 -69
- 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 +4 -0
- package/v2Containers/Whatsapp/utils.js +24 -11
- package/v2Containers/mockdata.js +118 -0
|
@@ -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 !== '' &&
|
|
@@ -799,6 +807,8 @@ export const Whatsapp = (props) => {
|
|
|
799
807
|
setWhatsappDocParams={setWhatsappDocParams}
|
|
800
808
|
channel={WHATSAPP}
|
|
801
809
|
docPreview={docPreview}
|
|
810
|
+
supportedMaxSize={'16 MB'}
|
|
811
|
+
supportedFormat={'PDF'}
|
|
802
812
|
/>
|
|
803
813
|
);
|
|
804
814
|
|
|
@@ -938,49 +948,63 @@ export const Whatsapp = (props) => {
|
|
|
938
948
|
};
|
|
939
949
|
});
|
|
940
950
|
|
|
941
|
-
const createPayload = () =>
|
|
942
|
-
|
|
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
|
-
|
|
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
|
+
},
|
|
978
1002
|
},
|
|
979
1003
|
},
|
|
980
1004
|
},
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
}
|
|
1005
|
+
type: WHATSAPP,
|
|
1006
|
+
});
|
|
1007
|
+
};
|
|
984
1008
|
|
|
985
1009
|
const actionCallback = ({ errorMessage }) => {
|
|
986
1010
|
if (!errorMessage) {
|
|
@@ -1077,6 +1101,14 @@ export const Whatsapp = (props) => {
|
|
|
1077
1101
|
</>
|
|
1078
1102
|
);
|
|
1079
1103
|
|
|
1104
|
+
const renderMediaComponent = () => (
|
|
1105
|
+
<>
|
|
1106
|
+
{isMediaTypeImage && renderImageComponent()}
|
|
1107
|
+
{isMediaTypeVideo && renderVideoComonent()}
|
|
1108
|
+
{isMediaTypeDoc && renderDocumentComponent()}
|
|
1109
|
+
</>
|
|
1110
|
+
);
|
|
1111
|
+
|
|
1080
1112
|
const createModeContent = (
|
|
1081
1113
|
<>
|
|
1082
1114
|
{/* template name */}
|
|
@@ -1128,9 +1160,7 @@ export const Whatsapp = (props) => {
|
|
|
1128
1160
|
/>
|
|
1129
1161
|
{/* template media type */}
|
|
1130
1162
|
{renderMediaSection()}
|
|
1131
|
-
{
|
|
1132
|
-
{isMediaTypeVideo && renderVideoComonent()}
|
|
1133
|
-
{isMediaTypeDoc && renderDocumentComponent()}
|
|
1163
|
+
{renderMediaComponent()}
|
|
1134
1164
|
{/* template message create flow */}
|
|
1135
1165
|
<CapHeader
|
|
1136
1166
|
className={`${isMediaTypeImage ? 'whatsapp-heading-spacing' : ''}`}
|
|
@@ -1363,10 +1393,7 @@ export const Whatsapp = (props) => {
|
|
|
1363
1393
|
{/* template media type */}
|
|
1364
1394
|
{renderLabel('mediaLabel')}
|
|
1365
1395
|
<CapLabel type="label15">{capitalizeString(templateMediaType)}</CapLabel>
|
|
1366
|
-
{
|
|
1367
|
-
{isMediaTypeVideo && renderVideoComonent()}
|
|
1368
|
-
{isMediaTypeDoc && renderDocumentComponent()}
|
|
1369
|
-
|
|
1396
|
+
{renderMediaComponent()}
|
|
1370
1397
|
<CapRow className="whatsapp-render-heading">
|
|
1371
1398
|
<CapHeader
|
|
1372
1399
|
title={
|
|
@@ -1450,19 +1477,27 @@ export const Whatsapp = (props) => {
|
|
|
1450
1477
|
)}
|
|
1451
1478
|
</>
|
|
1452
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
|
+
}
|
|
1453
1496
|
return (
|
|
1454
1497
|
<TemplatePreview
|
|
1455
1498
|
channel={WHATSAPP}
|
|
1456
1499
|
content={{
|
|
1457
|
-
...
|
|
1458
|
-
whatsappImageSrc,
|
|
1459
|
-
}),
|
|
1460
|
-
...(isMediaTypeVideo && {
|
|
1461
|
-
whatsappVideoPreviewImg,
|
|
1462
|
-
}),
|
|
1463
|
-
...(isMediaTypeDoc && {
|
|
1464
|
-
docPreview,
|
|
1465
|
-
}),
|
|
1500
|
+
...mediaPreview,
|
|
1466
1501
|
templateMsg,
|
|
1467
1502
|
...(isBtnTypeCta && {
|
|
1468
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;
|