@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.
@@ -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 [whatsappVideoSrc, setWhatsappVideoSrc] = useState('');
135
- const [whatsappVideoPreviewImg, setWhatsappVideoPreviewImg] = useState('');
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
- setWhatsappVideoSrc(videoUrl);
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 !== HOST_KARIX
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 !== HOST_KARIX,
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 !== HOST_KARIX
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 !== HOST_KARIX,
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 !== HOST_KARIX
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 !== HOST_KARIX,
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
- setWhatsappVideoSrc(data?.videoSrc);
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
- name: templateName,
944
- versions: {
945
- base: {
946
- content: {
947
- whatsapp: {
948
- category: templateCategory,
949
- languages: [
950
- {
951
- language: templateLanguage,
952
- content: getPayloadContent(),
953
- },
954
- ],
955
- ...(isBtnTypeCta && {
956
- buttonType,
957
- buttons: getCtaPayload(),
958
- }),
959
- mediaType: templateMediaType,
960
- ...(isMediaTypeImage && {
961
- imageUrl: getCdnUrl({url: whatsappImageSrc, channelName: 'WHATSAPP' }),
962
- karixFileHandle,
963
- }),
964
- ...(isMediaTypeVideo && {
965
- videoUrl: getCdnUrl({url: whatsappVideoSrc, channelName: 'WHATSAPP'}),
966
- karixFileHandle,
967
- videoPreviewImg: getCdnUrl({url: whatsappVideoPreviewImg, channelName: 'WHATSAPP'}),
968
- }),
969
- ...(isMediaTypeDoc && {
970
- documentUrl: getCdnUrl({url: whatsappDocSource, channelName: 'WHATSAPP'}),
971
- whatsappDocParams,
972
- karixFileHandle,
973
- }),
974
- varMapped: !isFullMode ? varMap : {},
975
- templateEditor: !isFullMode && tempMsgArray.join(''),
976
- accountId,
977
- accessToken,
978
- hostName: host,
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
- type: WHATSAPP,
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
- {isMediaTypeImage && renderImageComponent()}
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
- {isMediaTypeImage && renderImageComponent()}
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
- ...(isMediaTypeImage && {
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: #F4F5F7;
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: #5f6d85;
24
+ color: $CAP_G04;
24
25
  font-size: 8px;
25
26
  font-weight: 400;
26
27
  line-height: 12px;