@capillarytech/creatives-library 9.0.45 → 9.0.47
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/CommonTestAndPreview/UnifiedPreview/ViberPreviewContent.js +15 -106
- package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +1 -139
- package/v2Components/CommonTestAndPreview/constants.js +0 -2
- package/v2Components/CommonTestAndPreview/index.js +27 -240
- package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/ViberPreviewContent.test.js +0 -364
- package/v2Components/CommonTestAndPreview/tests/utils.test.js +0 -49
- package/v2Components/CommonTestAndPreview/utils.js +0 -20
- package/v2Containers/Templates/_templates.scss +1 -179
- package/v2Containers/Templates/index.js +10 -97
- package/v2Containers/Viber/constants.js +0 -21
- package/v2Containers/Viber/index.js +49 -719
- package/v2Containers/Viber/index.scss +0 -175
- package/v2Containers/Viber/messages.js +0 -121
- package/v2Containers/Viber/tests/index.test.js +0 -80
- package/v2Containers/Whatsapp/index.js +2 -0
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +612 -0
- package/v2Containers/Whatsapp/tests/index.test.js +8 -0
- package/v2Components/CommonTestAndPreview/UnifiedPreview/ViberCarouselPreviewCards.js +0 -127
- package/v2Components/CommonTestAndPreview/UnifiedPreview/_viberCarouselPreviewCards.scss +0 -133
|
@@ -246,8 +246,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
246
246
|
const [smsFallbackPreviewText, setSmsFallbackPreviewText] = useState(undefined);
|
|
247
247
|
// Track if a preview call has been made (to know when to use previewDataHtml vs raw content)
|
|
248
248
|
const [hasPreviewCallBeenMade, setHasPreviewCallBeenMade] = useState(false);
|
|
249
|
-
// Viber: tag values applied to preview only after explicit Update preview / Discard (not while typing)
|
|
250
|
-
const [viberPreviewTagValues, setViberPreviewTagValues] = useState(null);
|
|
251
249
|
const [previewDataHtml, setPreviewDataHtml] = useState(() => {
|
|
252
250
|
// Initialize preview data based on channel
|
|
253
251
|
if (channel === CHANNELS.EMAIL && formData) {
|
|
@@ -689,159 +687,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
689
687
|
return resolvedText;
|
|
690
688
|
};
|
|
691
689
|
|
|
692
|
-
const getViberMergedFormData = useCallback((formDataOverride) => {
|
|
693
|
-
const formDataObj = formDataOverride && typeof formDataOverride === 'object'
|
|
694
|
-
? formDataOverride
|
|
695
|
-
: (formData && typeof formData === 'object' ? formData : {});
|
|
696
|
-
let contentObj = {};
|
|
697
|
-
if (content && typeof content === 'object') {
|
|
698
|
-
contentObj = content;
|
|
699
|
-
} else if (typeof content === 'string' && content.trim()) {
|
|
700
|
-
try {
|
|
701
|
-
contentObj = JSON.parse(content);
|
|
702
|
-
} catch (e) {
|
|
703
|
-
contentObj = {};
|
|
704
|
-
}
|
|
705
|
-
}
|
|
706
|
-
const previewCards = formDataObj?.viberPreviewContent?.cards
|
|
707
|
-
?? formDataObj?.cards
|
|
708
|
-
?? contentObj?.viberPreviewContent?.cards
|
|
709
|
-
?? contentObj?.cards;
|
|
710
|
-
const isCarousel = Boolean(
|
|
711
|
-
formDataObj.type === MEDIA_TYPE_CAROUSEL
|
|
712
|
-
|| contentObj.type === MEDIA_TYPE_CAROUSEL
|
|
713
|
-
|| (Array.isArray(previewCards) && previewCards.length > 0),
|
|
714
|
-
);
|
|
715
|
-
const mergedPreview = {
|
|
716
|
-
...(contentObj.viberPreviewContent || {}),
|
|
717
|
-
...(formDataObj.viberPreviewContent || {}),
|
|
718
|
-
...(Array.isArray(previewCards) && previewCards.length ? { cards: previewCards } : {}),
|
|
719
|
-
...(isCarousel ? {
|
|
720
|
-
type: MEDIA_TYPE_CAROUSEL,
|
|
721
|
-
showCarouselEditorPreview: true,
|
|
722
|
-
} : {}),
|
|
723
|
-
};
|
|
724
|
-
return {
|
|
725
|
-
...contentObj,
|
|
726
|
-
...formDataObj,
|
|
727
|
-
...(Array.isArray(previewCards) && previewCards.length ? { cards: previewCards } : {}),
|
|
728
|
-
...(isCarousel ? { type: MEDIA_TYPE_CAROUSEL } : {}),
|
|
729
|
-
...(Object.keys(mergedPreview).length ? { viberPreviewContent: mergedPreview } : {}),
|
|
730
|
-
};
|
|
731
|
-
}, [formData, content]);
|
|
732
|
-
|
|
733
|
-
const getViberCarouselCardsFromFormData = (formDataObj) => {
|
|
734
|
-
const previewCards = formDataObj?.viberPreviewContent?.cards;
|
|
735
|
-
if (Array.isArray(previewCards) && previewCards.length) {
|
|
736
|
-
return previewCards;
|
|
737
|
-
}
|
|
738
|
-
const rootCards = formDataObj?.cards;
|
|
739
|
-
if (Array.isArray(rootCards) && rootCards.length) {
|
|
740
|
-
return rootCards;
|
|
741
|
-
}
|
|
742
|
-
return [];
|
|
743
|
-
};
|
|
744
|
-
|
|
745
|
-
const getViberTagExtractionContent = (formDataObj, contentStr = '') => {
|
|
746
|
-
const messageText = formDataObj?.messageContent
|
|
747
|
-
|| formDataObj?.viberPreviewContent?.messageContent
|
|
748
|
-
|| contentStr
|
|
749
|
-
|| '';
|
|
750
|
-
const cardFieldTexts = getViberCarouselCardsFromFormData(formDataObj).flatMap((card) => {
|
|
751
|
-
const fields = [card?.text || ''];
|
|
752
|
-
(card?.buttons || []).forEach((button) => {
|
|
753
|
-
fields.push(button?.title || '', button?.action || '');
|
|
754
|
-
});
|
|
755
|
-
return fields;
|
|
756
|
-
});
|
|
757
|
-
return [messageText, ...cardFieldTexts]
|
|
758
|
-
.filter((value) => typeof value === 'string' && value.trim())
|
|
759
|
-
.join(' ');
|
|
760
|
-
};
|
|
761
|
-
|
|
762
|
-
const resolveViberCarouselCards = (cards, tagValues) => {
|
|
763
|
-
if (!Array.isArray(cards) || !tagValues || !Object.keys(tagValues).length) {
|
|
764
|
-
return cards;
|
|
765
|
-
}
|
|
766
|
-
return cards.map((card) => ({
|
|
767
|
-
...card,
|
|
768
|
-
text: resolveTagsInText(card?.text || '', tagValues),
|
|
769
|
-
buttons: (card?.buttons || []).map((button) => ({
|
|
770
|
-
...button,
|
|
771
|
-
title: resolveTagsInText(button?.title || '', tagValues),
|
|
772
|
-
action: resolveTagsInText(button?.action || '', tagValues),
|
|
773
|
-
})),
|
|
774
|
-
}));
|
|
775
|
-
};
|
|
776
|
-
|
|
777
|
-
const applyViberCustomValuesToContent = (contentObj, tagValues) => {
|
|
778
|
-
if (!contentObj || typeof contentObj !== 'object' || !tagValues || !Object.keys(tagValues).length) {
|
|
779
|
-
return contentObj;
|
|
780
|
-
}
|
|
781
|
-
const result = { ...contentObj };
|
|
782
|
-
if (typeof result.messageContent === 'string') {
|
|
783
|
-
result.messageContent = resolveTagsInText(result.messageContent, tagValues);
|
|
784
|
-
}
|
|
785
|
-
if (Array.isArray(result.cards)) {
|
|
786
|
-
result.cards = resolveViberCarouselCards(result.cards, tagValues);
|
|
787
|
-
}
|
|
788
|
-
if (result.viberPreviewContent && typeof result.viberPreviewContent === 'object') {
|
|
789
|
-
const preview = result.viberPreviewContent;
|
|
790
|
-
result.viberPreviewContent = {
|
|
791
|
-
...preview,
|
|
792
|
-
messageContent: resolveTagsInText(preview.messageContent || '', tagValues),
|
|
793
|
-
cards: resolveViberCarouselCards(preview.cards, tagValues),
|
|
794
|
-
};
|
|
795
|
-
}
|
|
796
|
-
return result;
|
|
797
|
-
};
|
|
798
|
-
|
|
799
|
-
const mergeViberPreviewWithResolved = (base, resolved) => {
|
|
800
|
-
if (!resolved || typeof resolved !== 'object') {
|
|
801
|
-
return base && typeof base === 'object' ? base : {};
|
|
802
|
-
}
|
|
803
|
-
const baseObj = base && typeof base === 'object' ? base : {};
|
|
804
|
-
const basePreview = baseObj.viberPreviewContent || {};
|
|
805
|
-
const resolvedPreview = resolved.viberPreviewContent || {};
|
|
806
|
-
const baseCards = basePreview.cards || baseObj.cards || [];
|
|
807
|
-
const resolvedCards = resolvedPreview.cards || resolved.cards || [];
|
|
808
|
-
const mergedCards = baseCards.length
|
|
809
|
-
? baseCards.map((card, index) => {
|
|
810
|
-
const resolvedCard = resolvedCards[index];
|
|
811
|
-
if (!resolvedCard) {
|
|
812
|
-
return card;
|
|
813
|
-
}
|
|
814
|
-
return {
|
|
815
|
-
...card,
|
|
816
|
-
...(resolvedCard.text != null ? { text: resolvedCard.text } : {}),
|
|
817
|
-
...(resolvedCard.mediaUrl != null ? { mediaUrl: resolvedCard.mediaUrl } : {}),
|
|
818
|
-
buttons: (card.buttons || []).map((button, buttonIndex) => ({
|
|
819
|
-
...button,
|
|
820
|
-
...(resolvedCard.buttons?.[buttonIndex] || {}),
|
|
821
|
-
})),
|
|
822
|
-
};
|
|
823
|
-
})
|
|
824
|
-
: resolvedCards;
|
|
825
|
-
const resolvedMessage = resolved.messageContent ?? resolvedPreview.messageContent;
|
|
826
|
-
|
|
827
|
-
return {
|
|
828
|
-
...baseObj,
|
|
829
|
-
...resolved,
|
|
830
|
-
viberPreviewContent: {
|
|
831
|
-
...basePreview,
|
|
832
|
-
...resolvedPreview,
|
|
833
|
-
type: resolvedPreview.type || basePreview.type || baseObj.type || (mergedCards.length ? MEDIA_TYPE_CAROUSEL : ''),
|
|
834
|
-
cards: mergedCards.length ? mergedCards : (resolvedPreview.cards || basePreview.cards),
|
|
835
|
-
showCarouselEditorPreview: Boolean(
|
|
836
|
-
basePreview.showCarouselEditorPreview
|
|
837
|
-
|| resolvedPreview.showCarouselEditorPreview
|
|
838
|
-
|| mergedCards.length > 0,
|
|
839
|
-
),
|
|
840
|
-
...(resolvedMessage != null ? { messageContent: resolvedMessage } : {}),
|
|
841
|
-
},
|
|
842
|
-
};
|
|
843
|
-
};
|
|
844
|
-
|
|
845
690
|
/**
|
|
846
691
|
* Common handler for saving test customers (both new and existing)
|
|
847
692
|
*/
|
|
@@ -1120,13 +965,11 @@ const CommonTestAndPreview = (props) => {
|
|
|
1120
965
|
templateContent: formDataObj?.bodyText || contentStr,
|
|
1121
966
|
};
|
|
1122
967
|
|
|
1123
|
-
case CHANNELS.VIBER:
|
|
1124
|
-
const viberFormData = getViberMergedFormData(formDataObj);
|
|
968
|
+
case CHANNELS.VIBER:
|
|
1125
969
|
return {
|
|
1126
|
-
templateSubject:
|
|
1127
|
-
templateContent:
|
|
970
|
+
templateSubject: formDataObj?.messageTitle || '',
|
|
971
|
+
templateContent: contentStr,
|
|
1128
972
|
};
|
|
1129
|
-
}
|
|
1130
973
|
|
|
1131
974
|
case CHANNELS.WEBPUSH:
|
|
1132
975
|
return {
|
|
@@ -1590,6 +1433,7 @@ const CommonTestAndPreview = (props) => {
|
|
|
1590
1433
|
// Build templateConfigs
|
|
1591
1434
|
const templateConfigs = {
|
|
1592
1435
|
_id: templateId || '',
|
|
1436
|
+
templateId: formDataObj?.templateId || '',
|
|
1593
1437
|
name: templateNameValue,
|
|
1594
1438
|
template: templateEditorValue,
|
|
1595
1439
|
varMapped,
|
|
@@ -2180,16 +2024,11 @@ const CommonTestAndPreview = (props) => {
|
|
|
2180
2024
|
// 1. formDataObj from getTemplateContent (contains both viberPreviewContent and payload fields)
|
|
2181
2025
|
// 2. formDataObj[0] (array format - legacy)
|
|
2182
2026
|
// 3. contentStr (direct string - legacy)
|
|
2183
|
-
// Merge content prop so listing / preview-only flows include carousel card tags
|
|
2184
|
-
const viberFormData = getViberMergedFormData(formDataObj);
|
|
2185
|
-
formDataObj = viberFormData;
|
|
2186
2027
|
|
|
2187
2028
|
let messageText = '';
|
|
2188
2029
|
let imageData = null;
|
|
2189
2030
|
let videoData = null;
|
|
2190
2031
|
let buttonData = null;
|
|
2191
|
-
let cardsData = [];
|
|
2192
|
-
let messageType = '';
|
|
2193
2032
|
let accountId = null;
|
|
2194
2033
|
let accountDetails = null;
|
|
2195
2034
|
let scenarioKey = '';
|
|
@@ -2204,8 +2043,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
2204
2043
|
imageData = formDataObj.image || null;
|
|
2205
2044
|
videoData = formDataObj.video || null;
|
|
2206
2045
|
buttonData = formDataObj.button || null;
|
|
2207
|
-
cardsData = formDataObj.cards || [];
|
|
2208
|
-
messageType = formDataObj.type || '';
|
|
2209
2046
|
accountId = formDataObj.accountId || null;
|
|
2210
2047
|
accountDetails = formDataObj.accountDetails || null;
|
|
2211
2048
|
scenarioKey = formDataObj.scenarioKey || VIBER_API_SCENARIO_KEY;
|
|
@@ -2232,8 +2069,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
2232
2069
|
url: formDataObj?.buttonURL || '',
|
|
2233
2070
|
};
|
|
2234
2071
|
}
|
|
2235
|
-
cardsData = viberPreview.cards || formDataObj?.cards || [];
|
|
2236
|
-
messageType = viberPreview.type || formDataObj?.type || '';
|
|
2237
2072
|
// Extract account info from parent formDataObj if available
|
|
2238
2073
|
accountId = formDataObj.accountId || null;
|
|
2239
2074
|
accountDetails = formDataObj.accountDetails || null;
|
|
@@ -2276,10 +2111,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
2276
2111
|
text: messageText,
|
|
2277
2112
|
};
|
|
2278
2113
|
|
|
2279
|
-
if (messageType === CHANNELS.VIBER) {
|
|
2280
|
-
messageType = '';
|
|
2281
|
-
}
|
|
2282
|
-
|
|
2283
2114
|
// Add image if present
|
|
2284
2115
|
if (imageData && imageData.url) {
|
|
2285
2116
|
viberContent.image = {
|
|
@@ -2308,34 +2139,9 @@ const CommonTestAndPreview = (props) => {
|
|
|
2308
2139
|
}
|
|
2309
2140
|
}
|
|
2310
2141
|
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
viberContent.
|
|
2314
|
-
text: card?.text || '',
|
|
2315
|
-
mediaUrl: card?.mediaUrl || '',
|
|
2316
|
-
buttons: (card?.buttons || []).map((button) => ({
|
|
2317
|
-
title: button?.title || '',
|
|
2318
|
-
action: button?.action || '',
|
|
2319
|
-
})),
|
|
2320
|
-
}));
|
|
2321
|
-
delete viberContent.button;
|
|
2322
|
-
}
|
|
2323
|
-
|
|
2324
|
-
// Resolve tags in text/cards if custom values are provided
|
|
2325
|
-
if (customValuesObj && Object.keys(customValuesObj).length > 0) {
|
|
2326
|
-
if (viberContent.text) {
|
|
2327
|
-
viberContent.text = resolveTagsInText(viberContent.text, customValuesObj);
|
|
2328
|
-
}
|
|
2329
|
-
if (Array.isArray(viberContent.cards)) {
|
|
2330
|
-
viberContent.cards = resolveViberCarouselCards(viberContent.cards, customValuesObj);
|
|
2331
|
-
}
|
|
2332
|
-
if (viberContent.button) {
|
|
2333
|
-
viberContent.button = {
|
|
2334
|
-
...viberContent.button,
|
|
2335
|
-
text: resolveTagsInText(viberContent.button.text || '', customValuesObj),
|
|
2336
|
-
url: resolveTagsInText(viberContent.button.url || '', customValuesObj),
|
|
2337
|
-
};
|
|
2338
|
-
}
|
|
2142
|
+
// Resolve tags in text if custom values are provided
|
|
2143
|
+
if (customValuesObj && Object.keys(customValuesObj).length > 0 && viberContent.text) {
|
|
2144
|
+
viberContent.text = resolveTagsInText(viberContent.text, customValuesObj);
|
|
2339
2145
|
}
|
|
2340
2146
|
|
|
2341
2147
|
// Build messageBody JSON string
|
|
@@ -2727,39 +2533,33 @@ const CommonTestAndPreview = (props) => {
|
|
|
2727
2533
|
// Only use previewDataHtml if preview call was made
|
|
2728
2534
|
if (hasPreviewCallBeenMade && previewDataHtml?.resolvedBody) {
|
|
2729
2535
|
resolvedContent = previewDataHtml.resolvedBody;
|
|
2730
|
-
if (typeof resolvedContent === 'string') {
|
|
2731
|
-
try {
|
|
2732
|
-
resolvedContent = JSON.parse(resolvedContent);
|
|
2733
|
-
} catch (e) {
|
|
2734
|
-
resolvedContent = null;
|
|
2735
|
-
}
|
|
2736
|
-
}
|
|
2737
2536
|
}
|
|
2738
2537
|
|
|
2739
|
-
// Parse content if it's a string
|
|
2740
|
-
let parsedViberContent =
|
|
2741
|
-
if (
|
|
2742
|
-
|
|
2538
|
+
// Parse content if it's a string
|
|
2539
|
+
let parsedViberContent = content;
|
|
2540
|
+
if (typeof content === 'string') {
|
|
2541
|
+
try {
|
|
2542
|
+
parsedViberContent = JSON.parse(content);
|
|
2543
|
+
} catch (e) {
|
|
2544
|
+
parsedViberContent = {};
|
|
2545
|
+
}
|
|
2743
2546
|
}
|
|
2744
|
-
//
|
|
2547
|
+
// Use resolvedContent if available (from preview call), otherwise use raw content
|
|
2745
2548
|
if (resolvedContent && typeof resolvedContent === 'object') {
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
if (
|
|
2749
|
-
contentObj.accountName =
|
|
2549
|
+
contentObj = { ...resolvedContent };
|
|
2550
|
+
// Merge in accountName and brandName from raw content if not in resolvedContent
|
|
2551
|
+
if (parsedViberContent?.accountName && !contentObj.accountName) {
|
|
2552
|
+
contentObj.accountName = parsedViberContent.accountName;
|
|
2750
2553
|
}
|
|
2751
|
-
if (
|
|
2752
|
-
contentObj.brandName =
|
|
2554
|
+
if (parsedViberContent?.brandName && !contentObj.brandName) {
|
|
2555
|
+
contentObj.brandName = parsedViberContent.brandName;
|
|
2753
2556
|
}
|
|
2754
2557
|
} else {
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
&& Object.keys(viberPreviewTagValues).length > 0
|
|
2761
|
-
) {
|
|
2762
|
-
contentObj = applyViberCustomValuesToContent(contentObj, viberPreviewTagValues);
|
|
2558
|
+
// Use raw content if no preview call was made or resolvedContent is not available
|
|
2559
|
+
contentObj = {...parsedViberContent, messageContent: resolvedContent};
|
|
2560
|
+
if (resolvedContent) {
|
|
2561
|
+
contentObj.viberPreviewContent = {...parsedViberContent?.viberPreviewContent, messageContent: resolvedContent};
|
|
2562
|
+
}
|
|
2763
2563
|
}
|
|
2764
2564
|
} else if (channel === CHANNELS.ZALO) {
|
|
2765
2565
|
// For Zalo, content is an object with templatePreviewUrl, templateStatus, etc.
|
|
@@ -3143,11 +2943,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
3143
2943
|
|
|
3144
2944
|
setCustomValues(updatedValues);
|
|
3145
2945
|
|
|
3146
|
-
// Viber: do not auto-resolve tags in preview; user must click Update preview
|
|
3147
|
-
if (channel === CHANNELS.VIBER) {
|
|
3148
|
-
return;
|
|
3149
|
-
}
|
|
3150
|
-
|
|
3151
2946
|
// Update preview with prefilled values (this is a valid preview call trigger)
|
|
3152
2947
|
// For RCS: always dispatch with RCS channel/content so previewDataHtml stays RCS-shaped.
|
|
3153
2948
|
// SMS fallback preview is kept in sync by syncSmsFallbackPreview via smsFallbackPreviewText.
|
|
@@ -3230,7 +3025,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
3230
3025
|
setPreviewDevice(DESKTOP);
|
|
3231
3026
|
setPreviewDataHtml('');
|
|
3232
3027
|
setHasPreviewCallBeenMade(false); // Reset preview call flag
|
|
3233
|
-
setViberPreviewTagValues(null);
|
|
3234
3028
|
setSelectedTestEntities([]);
|
|
3235
3029
|
setBeeContent('');
|
|
3236
3030
|
previousBeeContentRef.current = '';
|
|
@@ -3268,7 +3062,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
3268
3062
|
const handleClearSelection = () => {
|
|
3269
3063
|
setSelectedCustomer(null);
|
|
3270
3064
|
setHasPreviewCallBeenMade(false); // Reset flag when customer is cleared
|
|
3271
|
-
setViberPreviewTagValues(null);
|
|
3272
3065
|
|
|
3273
3066
|
// Clear all preview errors when customer is cleared
|
|
3274
3067
|
actions.clearPreviewErrors();
|
|
@@ -3327,9 +3120,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
3327
3120
|
emptyValues,
|
|
3328
3121
|
selectedCustomer
|
|
3329
3122
|
);
|
|
3330
|
-
if (channel === CHANNELS.VIBER) {
|
|
3331
|
-
setViberPreviewTagValues({ ...emptyValues });
|
|
3332
|
-
}
|
|
3333
3123
|
actions.updatePreviewRequested(payload);
|
|
3334
3124
|
setHasPreviewCallBeenMade(true); // Mark that preview call was made
|
|
3335
3125
|
};
|
|
@@ -3355,9 +3145,6 @@ const CommonTestAndPreview = (props) => {
|
|
|
3355
3145
|
customValues,
|
|
3356
3146
|
selectedCustomer
|
|
3357
3147
|
);
|
|
3358
|
-
if (channel === CHANNELS.VIBER) {
|
|
3359
|
-
setViberPreviewTagValues({ ...customValues });
|
|
3360
|
-
}
|
|
3361
3148
|
await actions.updatePreviewRequested(payload);
|
|
3362
3149
|
|
|
3363
3150
|
await syncSmsFallbackPreview(customValues, selectedCustomer);
|