@capillarytech/creatives-library 8.0.138 → 8.0.139-alpha.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "8.0.138",
4
+ "version": "8.0.139-alpha.0",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",
@@ -57,7 +57,7 @@
57
57
  }
58
58
  img {
59
59
  object-fit: cover;
60
- max-height: 150px;
60
+ max-height: 9.375rem;
61
61
  max-width: 18.75rem;
62
62
  }
63
63
  }
@@ -61,6 +61,22 @@ const CAROUSEL_INITIAL_DATA = {
61
61
  // Maximum number of carousel cards allowed
62
62
  const MAX_CAROUSEL_ALLOWED = 10;
63
63
 
64
+ // Helper function to find selected deep link with fallback to base URL
65
+ const findSelectedDeepLink = (links, value) => {
66
+ if (!links || !value) return undefined;
67
+
68
+ // Try to find exact match first
69
+ let selectedDeepLink = links.find((link) => link?.value === value);
70
+
71
+ // If no exact match and value contains query parameters, try base URL match
72
+ if (!selectedDeepLink && value?.includes('?')) {
73
+ const baseDeepLinkValue = value.split('?')[0];
74
+ selectedDeepLink = links.find((link) => link?.value === baseDeepLinkValue);
75
+ }
76
+
77
+ return selectedDeepLink;
78
+ };
79
+
64
80
  const MediaUploaders = ({
65
81
  mediaType,
66
82
  activeTab,
@@ -616,12 +632,7 @@ const MediaUploaders = ({
616
632
  </CapRow>
617
633
  )}
618
634
  {button?.linkType === DEEP_LINK && button?.deepLinkValue && button?.actionOnClick && (() => {
619
- // Try to find exact match first, then try match without query parameters
620
- let selectedDeepLink = deepLink?.find((link) => link?.value === button?.deepLinkValue);
621
- if (!selectedDeepLink && button?.deepLinkValue && button?.deepLinkValue.includes('?')) {
622
- const baseDeepLinkValue = button?.deepLinkValue.split('?')[0];
623
- selectedDeepLink = deepLink?.find((link) => link?.value === baseDeepLinkValue);
624
- }
635
+ const selectedDeepLink = findSelectedDeepLink(deepLink, button?.deepLinkValue);
625
636
  const deepLinkKeysFromSelection = selectedDeepLink?.keys;
626
637
  let deepLinkKeysFromSelectionArray = [];
627
638
  if (Array.isArray(deepLinkKeysFromSelection)) {
@@ -638,12 +649,7 @@ const MediaUploaders = ({
638
649
  </CapHeading>
639
650
  <CapLabel type="label2" className="deep-link-keys-value">
640
651
  {(() => {
641
- // Try to find exact match first, then try match without query parameters
642
- let selectedDeepLink = deepLink?.find((link) => link?.value === button?.deepLinkValue);
643
- if (!selectedDeepLink && button?.deepLinkValue && button?.deepLinkValue.includes('?')) {
644
- const baseDeepLinkValue = button?.deepLinkValue.split('?')[0];
645
- selectedDeepLink = deepLink?.find((link) => link?.value === baseDeepLinkValue);
646
- }
652
+ const selectedDeepLink = findSelectedDeepLink(deepLink, button?.deepLinkValue);
647
653
  const deepLinkKeysFromSelection = selectedDeepLink?.keys;
648
654
  let deepLinkKeysArray = [];
649
655
  if (Array.isArray(button?.deepLinkKeys)) {
@@ -671,12 +677,7 @@ const MediaUploaders = ({
671
677
  onChange={(e) => handleCarouselDeepLinkKeysChange(cardIndex, e.target.value)}
672
678
  placeholder={formatMessage(messages.deepLinkKeysPlaceholder, {
673
679
  key: (() => {
674
- // Try to find exact match first, then try match without query parameters
675
- let selectedDeepLink = deepLink?.find((link) => link?.value === button?.deepLinkValue);
676
- if (!selectedDeepLink && button?.deepLinkValue && button?.deepLinkValue.includes('?')) {
677
- const baseDeepLinkValue = button?.deepLinkValue.split('?')[0];
678
- selectedDeepLink = deepLink?.find((link) => link?.value === baseDeepLinkValue);
679
- }
680
+ const selectedDeepLink = findSelectedDeepLink(deepLink, button?.deepLinkValue);
680
681
  const deepLinkKeysFromSelection = selectedDeepLink?.keys;
681
682
  let deepLinkKeysFromSelectionArray = [];
682
683
  if (Array.isArray(deepLinkKeysFromSelection)) {
@@ -93,6 +93,27 @@ import messages from "./messages";
93
93
  import { EXTERNAL_URL } from "../CreativesContainer/constants";
94
94
  import createMobilePushPayloadWithIntl from "../../utils/createMobilePushPayload";
95
95
 
96
+ // Helper function to extract deep link keys from URL where value equals key
97
+ const extractDeepLinkKeys = (deepLinkValue) => {
98
+ try {
99
+ if (deepLinkValue && deepLinkValue.includes('?')) {
100
+ const queryString = deepLinkValue.split('?')[1];
101
+ const searchParams = new URLSearchParams(queryString);
102
+ const extractedKeys = [];
103
+ searchParams.forEach((value, key) => {
104
+ if (value === key) { // Only extract keys where value equals key
105
+ extractedKeys.push(key);
106
+ }
107
+ });
108
+ return extractedKeys.length > 0 ? extractedKeys : [];
109
+ }
110
+ return [];
111
+ } catch (error) {
112
+ console.error("[MobilePushNew] Error extracting deep link keys from CTA button:", error);
113
+ return [];
114
+ }
115
+ };
116
+
96
117
  const MobilePushNew = ({
97
118
  isFullMode,
98
119
  intl,
@@ -636,24 +657,9 @@ const MobilePushNew = ({
636
657
  // Use deep link keys from the button if available, otherwise try to extract from URL
637
658
  let deepLinkKeys = button?.deepLinkKeys || [];
638
659
  if (!deepLinkKeys.length && button?.type === DEEP_LINK && button?.actionLink) {
639
- try {
640
- // Extract query parameters from deep link URL using the same approach as main content
641
- const deepLinkValue = button?.actionLink;
642
- if (deepLinkValue && deepLinkValue.includes('?')) {
643
- const queryString = deepLinkValue.split('?')[1];
644
- const searchParams = new URLSearchParams(queryString);
645
- const extractedKeys = [];
646
- searchParams.forEach((value, key) => {
647
- if (value === key) { // Only extract keys where value equals key
648
- extractedKeys.push(key);
649
- }
650
- });
651
- if (extractedKeys?.length > 0) {
652
- deepLinkKeys = extractedKeys;
653
- }
654
- }
655
- } catch (error) {
656
- console.error("[MobilePushNew] Error extracting deep link keys from CTA button:", error);
660
+ const extractedKeys = extractDeepLinkKeys(button?.actionLink);
661
+ if (extractedKeys?.length > 0) {
662
+ deepLinkKeys = extractedKeys;
657
663
  }
658
664
  }
659
665
 
@@ -968,24 +974,9 @@ const MobilePushNew = ({
968
974
  // Use deep link keys from the button if available, otherwise try to extract from URL
969
975
  let deepLinkKeys = button?.deepLinkKeys || [];
970
976
  if (!deepLinkKeys?.length && button?.type === DEEP_LINK && button?.actionLink) {
971
- try {
972
- // Extract query parameters from deep link URL using the same approach as main content
973
- const deepLinkValue = button?.actionLink;
974
- if (deepLinkValue && deepLinkValue.includes('?')) {
975
- const queryString = deepLinkValue.split('?')[1];
976
- const searchParams = new URLSearchParams(queryString);
977
- const extractedKeys = [];
978
- searchParams.forEach((value, key) => {
979
- if (value === key) { // Only extract keys where value equals key
980
- extractedKeys.push(key);
981
- }
982
- });
983
- if (extractedKeys?.length > 0) {
984
- deepLinkKeys = extractedKeys;
985
- }
986
- }
987
- } catch (error) {
988
- console.error("[MobilePushNew] Error extracting deep link keys from CTA button:", error);
977
+ const extractedKeys = extractDeepLinkKeys(button?.actionLink);
978
+ if (extractedKeys?.length > 0) {
979
+ deepLinkKeys = extractedKeys;
989
980
  }
990
981
  }
991
982
 
@@ -1264,24 +1255,9 @@ const MobilePushNew = ({
1264
1255
  // Use deep link keys from the button if available, otherwise try to extract from URL
1265
1256
  let deepLinkKeys = button?.deepLinkKeys || [];
1266
1257
  if (!deepLinkKeys.length && button?.type === DEEP_LINK && button?.actionLink) {
1267
- try {
1268
- // Extract query parameters from deep link URL using the same approach as main content
1269
- const deepLinkValue = button?.actionLink;
1270
- if (deepLinkValue && deepLinkValue.includes('?')) {
1271
- const queryString = deepLinkValue.split('?')[1];
1272
- const searchParams = new URLSearchParams(queryString);
1273
- const extractedKeys = [];
1274
- searchParams.forEach((value, key) => {
1275
- if (value === key) { // Only extract keys where value equals key
1276
- extractedKeys.push(key);
1277
- }
1278
- });
1279
- if (extractedKeys?.length > 0) {
1280
- deepLinkKeys = extractedKeys;
1281
- }
1282
- }
1283
- } catch (error) {
1284
- console.error("[MobilePushNew] Error extracting deep link keys from CTA button:", error);
1258
+ const extractedKeys = extractDeepLinkKeys(button?.actionLink);
1259
+ if (extractedKeys?.length > 0) {
1260
+ deepLinkKeys = extractedKeys;
1285
1261
  }
1286
1262
  }
1287
1263
 
@@ -1596,24 +1572,9 @@ const MobilePushNew = ({
1596
1572
  // Use deep link keys from the button if available, otherwise try to extract from URL
1597
1573
  let deepLinkKeys = button?.deepLinkKeys || [];
1598
1574
  if (!deepLinkKeys?.length && button?.type === DEEP_LINK && button?.actionLink) {
1599
- try {
1600
- // Extract query parameters from deep link URL using the same approach as main content
1601
- const deepLinkValue = button?.actionLink;
1602
- if (deepLinkValue && deepLinkValue.includes('?')) {
1603
- const queryString = deepLinkValue.split('?')[1];
1604
- const searchParams = new URLSearchParams(queryString);
1605
- const extractedKeys = [];
1606
- searchParams.forEach((value, key) => {
1607
- if (value === key) { // Only extract keys where value equals key
1608
- extractedKeys.push(key);
1609
- }
1610
- });
1611
- if (extractedKeys?.length > 0) {
1612
- deepLinkKeys = extractedKeys;
1613
- }
1614
- }
1615
- } catch (error) {
1616
- console.error("[MobilePushNew] Error extracting deep link keys from CTA button:", error);
1575
+ const extractedKeys = extractDeepLinkKeys(button?.actionLink);
1576
+ if (extractedKeys?.length > 0) {
1577
+ deepLinkKeys = extractedKeys;
1617
1578
  }
1618
1579
  }
1619
1580
 
@@ -1300,7 +1300,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1300
1300
  )}
1301
1301
  {style === VIDEO && (
1302
1302
  <div className="video-preview">
1303
- <video>
1303
+ <video aria-label="Template video preview" controls={false} tabIndex="0">
1304
1304
  <source src={url} type="video/mp4" />
1305
1305
  </video>
1306
1306
  <div className="icon-position">