@capillarytech/creatives-library 8.0.263 → 8.0.265
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/Android.png +0 -0
- package/assets/iOS.png +0 -0
- package/constants/unified.js +1 -3
- package/initialReducer.js +0 -2
- package/package.json +1 -1
- package/services/api.js +0 -15
- package/services/tests/api.test.js +0 -34
- package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +35 -17
- package/tests/integration/TemplateCreation/api-response.js +1 -31
- package/tests/integration/TemplateCreation/msw-handler.js +0 -2
- package/utils/common.js +0 -11
- package/utils/commonUtils.js +5 -28
- package/utils/tests/commonUtil.test.js +0 -224
- package/utils/tests/transformerUtils.test.js +0 -297
- package/utils/transformTemplateConfig.js +10 -0
- package/utils/transformerUtils.js +0 -40
- package/v2Components/CapDeviceContent/index.js +56 -61
- package/v2Components/CapImageUpload/constants.js +0 -2
- package/v2Components/CapImageUpload/index.js +16 -65
- package/v2Components/CapImageUpload/index.scss +1 -4
- package/v2Components/CapImageUpload/messages.js +1 -5
- package/v2Components/CapTagList/index.js +1 -6
- package/v2Components/CapTagListWithInput/index.js +1 -5
- package/v2Components/CapTagListWithInput/messages.js +1 -1
- package/v2Components/CapWhatsappCTA/tests/index.test.js +0 -5
- package/v2Components/ErrorInfoNote/index.js +72 -402
- package/v2Components/ErrorInfoNote/messages.js +6 -32
- package/v2Components/ErrorInfoNote/style.scss +6 -278
- package/v2Components/FormBuilder/tests/index.test.js +4 -13
- package/v2Components/HtmlEditor/HTMLEditor.js +99 -418
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +133 -1882
- package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +16 -27
- package/v2Components/HtmlEditor/_htmlEditor.scss +45 -108
- package/v2Components/HtmlEditor/_index.lazy.scss +1 -0
- package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +102 -23
- package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +140 -148
- package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +1 -2
- package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
- package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +1 -9
- package/v2Components/HtmlEditor/components/EditorToolbar/index.js +6 -31
- package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +0 -22
- package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +7 -4
- package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +45 -35
- package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +3 -1
- package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
- package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +6 -7
- package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +10 -7
- package/v2Components/HtmlEditor/components/PreviewPane/index.js +43 -22
- package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +152 -0
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/_validationErrorDisplay.scss +0 -18
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +31 -36
- package/v2Components/HtmlEditor/components/ValidationPanel/_validationPanel.scss +34 -46
- package/v2Components/HtmlEditor/components/ValidationPanel/index.js +46 -52
- package/v2Components/HtmlEditor/constants.js +20 -45
- package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +16 -373
- package/v2Components/HtmlEditor/hooks/__tests__/useValidation.test.js +16 -351
- package/v2Components/HtmlEditor/hooks/useEditorContent.js +2 -5
- package/v2Components/HtmlEditor/hooks/useInAppContent.js +146 -88
- package/v2Components/HtmlEditor/hooks/useValidation.js +56 -213
- package/v2Components/HtmlEditor/index.js +1 -1
- package/v2Components/HtmlEditor/messages.js +94 -102
- package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +45 -214
- package/v2Components/HtmlEditor/utils/__tests__/validationAdapter.test.js +0 -134
- package/v2Components/HtmlEditor/utils/contentSanitizer.js +41 -40
- package/v2Components/HtmlEditor/utils/htmlValidator.js +72 -71
- package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +124 -158
- package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +25 -23
- package/v2Components/HtmlEditor/utils/validationAdapter.js +41 -66
- package/v2Components/MobilePushPreviewV2/index.js +7 -33
- package/v2Components/TemplatePreview/_templatePreview.scss +24 -55
- package/v2Components/TemplatePreview/index.js +32 -47
- package/v2Components/TemplatePreview/messages.js +0 -4
- package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +0 -1
- package/v2Containers/App/constants.js +0 -5
- package/v2Containers/BeeEditor/index.js +90 -172
- package/v2Containers/CreativesContainer/SlideBoxContent.js +53 -184
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +13 -163
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -3
- package/v2Containers/CreativesContainer/constants.js +0 -4
- package/v2Containers/CreativesContainer/index.js +46 -408
- package/v2Containers/CreativesContainer/messages.js +0 -12
- package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +0 -210
- package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +2 -11
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +50 -342
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -103
- package/v2Containers/Email/actions.js +0 -7
- package/v2Containers/Email/constants.js +1 -5
- package/v2Containers/Email/index.js +36 -237
- package/v2Containers/Email/messages.js +0 -32
- package/v2Containers/Email/reducer.js +1 -12
- package/v2Containers/Email/sagas.js +7 -61
- package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +0 -2
- package/v2Containers/Email/tests/reducer.test.js +0 -46
- package/v2Containers/Email/tests/sagas.test.js +29 -320
- package/v2Containers/EmailWrapper/components/EmailWrapperView.js +21 -211
- package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +74 -40
- package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +67 -2
- package/v2Containers/EmailWrapper/constants.js +0 -2
- package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +77 -629
- package/v2Containers/EmailWrapper/index.js +23 -103
- package/v2Containers/EmailWrapper/messages.js +1 -65
- package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +214 -0
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +77 -594
- package/v2Containers/InApp/actions.js +0 -7
- package/v2Containers/InApp/constants.js +4 -20
- package/v2Containers/InApp/index.js +359 -802
- package/v2Containers/InApp/index.scss +3 -4
- package/v2Containers/InApp/messages.js +3 -7
- package/v2Containers/InApp/reducer.js +3 -21
- package/v2Containers/InApp/sagas.js +9 -29
- package/v2Containers/InApp/selectors.js +5 -25
- package/v2Containers/InApp/tests/index.test.js +50 -154
- package/v2Containers/InApp/tests/reducer.test.js +0 -34
- package/v2Containers/InApp/tests/sagas.test.js +9 -61
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +0 -3
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +0 -2
- package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +0 -2
- package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +0 -9
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +0 -12
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +0 -4
- package/v2Containers/TagList/index.js +19 -62
- package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
- package/v2Containers/Templates/_templates.scss +1 -265
- package/v2Containers/Templates/actions.js +1 -2
- package/v2Containers/Templates/constants.js +0 -1
- package/v2Containers/Templates/index.js +38 -363
- package/v2Containers/Templates/messages.js +0 -28
- package/v2Containers/Templates/reducer.js +0 -2
- package/v2Containers/Templates/tests/index.test.js +0 -10
- package/v2Containers/TemplatesV2/TemplatesV2.style.js +2 -4
- package/v2Containers/TemplatesV2/index.js +7 -15
- package/v2Containers/TemplatesV2/messages.js +0 -4
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +0 -34
- package/utils/imageUrlUpload.js +0 -141
- package/v2Components/CapImageUrlUpload/constants.js +0 -26
- package/v2Components/CapImageUrlUpload/index.js +0 -365
- package/v2Components/CapImageUrlUpload/index.scss +0 -35
- package/v2Components/CapImageUrlUpload/messages.js +0 -47
- package/v2Components/ErrorInfoNote/constants.js +0 -1
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +0 -870
- package/v2Components/HtmlEditor/components/ValidationPanel/constants.js +0 -6
- package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +0 -281
- package/v2Components/HtmlEditor/components/ValidationTabs/index.js +0 -295
- package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +0 -51
- package/v2Components/HtmlEditor/utils/validationConstants.js +0 -38
- package/v2Components/MobilePushPreviewV2/constants.js +0 -6
- package/v2Containers/BeePopupEditor/_beePopupEditor.scss +0 -14
- package/v2Containers/BeePopupEditor/constants.js +0 -10
- package/v2Containers/BeePopupEditor/index.js +0 -194
- package/v2Containers/BeePopupEditor/tests/index.test.js +0 -627
- package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +0 -1246
- package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +0 -2472
- package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +0 -520
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +0 -956
- package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +0 -376
- package/v2Containers/InApp/__tests__/sagas.test.js +0 -363
- package/v2Containers/InApp/tests/selectors.test.js +0 -612
- package/v2Containers/InAppWrapper/components/InAppWrapperView.js +0 -151
- package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +0 -267
- package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +0 -23
- package/v2Containers/InAppWrapper/constants.js +0 -16
- package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +0 -473
- package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +0 -198
- package/v2Containers/InAppWrapper/index.js +0 -148
- package/v2Containers/InAppWrapper/messages.js +0 -49
- package/v2Containers/InappAdvance/index.js +0 -1099
- package/v2Containers/InappAdvance/index.scss +0 -10
- package/v2Containers/InappAdvance/tests/index.test.js +0 -448
- package/v2Containers/WebPush/Create/components/BrandIconSection.js +0 -108
- package/v2Containers/WebPush/Create/components/ButtonForm.js +0 -172
- package/v2Containers/WebPush/Create/components/ButtonItem.js +0 -101
- package/v2Containers/WebPush/Create/components/ButtonList.js +0 -145
- package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +0 -164
- package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +0 -463
- package/v2Containers/WebPush/Create/components/FormActions.js +0 -54
- package/v2Containers/WebPush/Create/components/FormActions.test.js +0 -163
- package/v2Containers/WebPush/Create/components/MediaSection.js +0 -142
- package/v2Containers/WebPush/Create/components/MediaSection.test.js +0 -341
- package/v2Containers/WebPush/Create/components/MessageSection.js +0 -103
- package/v2Containers/WebPush/Create/components/MessageSection.test.js +0 -268
- package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +0 -87
- package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +0 -210
- package/v2Containers/WebPush/Create/components/TemplateNameSection.js +0 -54
- package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +0 -143
- package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +0 -86
- package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +0 -16
- package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +0 -41
- package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +0 -54
- package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +0 -37
- package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +0 -21
- package/v2Containers/WebPush/Create/components/_buttons.scss +0 -246
- package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +0 -554
- package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +0 -607
- package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +0 -633
- package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +0 -666
- package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +0 -74
- package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +0 -78
- package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +0 -138
- package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +0 -406
- package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +0 -30
- package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +0 -151
- package/v2Containers/WebPush/Create/hooks/useImageUpload.js +0 -104
- package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +0 -538
- package/v2Containers/WebPush/Create/hooks/useTagManagement.js +0 -122
- package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +0 -633
- package/v2Containers/WebPush/Create/index.js +0 -1148
- package/v2Containers/WebPush/Create/index.scss +0 -134
- package/v2Containers/WebPush/Create/messages.js +0 -211
- package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +0 -228
- package/v2Containers/WebPush/Create/preview/NotificationContainer.js +0 -294
- package/v2Containers/WebPush/Create/preview/PreviewContent.js +0 -90
- package/v2Containers/WebPush/Create/preview/PreviewControls.js +0 -305
- package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +0 -25
- package/v2Containers/WebPush/Create/preview/WebPushPreview.js +0 -155
- package/v2Containers/WebPush/Create/preview/assets/Light.svg +0 -53
- package/v2Containers/WebPush/Create/preview/assets/Top.svg +0 -5
- package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
- package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
- package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +0 -106
- package/v2Containers/WebPush/Create/preview/assets/iOS.svg +0 -26
- package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +0 -18
- package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +0 -29
- package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +0 -9
- package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +0 -51
- package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -145
- package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +0 -45
- package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +0 -68
- package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +0 -61
- package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +0 -99
- package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +0 -733
- package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +0 -571
- package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +0 -85
- package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +0 -81
- package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +0 -50
- package/v2Containers/WebPush/Create/preview/constants.js +0 -637
- package/v2Containers/WebPush/Create/preview/notification-container.scss +0 -79
- package/v2Containers/WebPush/Create/preview/preview.scss +0 -358
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +0 -370
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +0 -12
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +0 -12
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +0 -12
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +0 -47
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +0 -11
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +0 -11
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +0 -11
- package/v2Containers/WebPush/Create/preview/styles/_base.scss +0 -207
- package/v2Containers/WebPush/Create/preview/styles/_ios.scss +0 -153
- package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +0 -107
- package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +0 -101
- package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +0 -229
- package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +0 -909
- package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +0 -1081
- package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +0 -723
- package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +0 -1327
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +0 -131
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +0 -112
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +0 -144
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +0 -129
- package/v2Containers/WebPush/Create/utils/payloadBuilder.js +0 -96
- package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +0 -396
- package/v2Containers/WebPush/Create/utils/previewUtils.js +0 -89
- package/v2Containers/WebPush/Create/utils/urlValidation.js +0 -115
- package/v2Containers/WebPush/Create/utils/urlValidation.test.js +0 -449
- package/v2Containers/WebPush/Create/utils/validation.js +0 -75
- package/v2Containers/WebPush/Create/utils/validation.test.js +0 -283
- package/v2Containers/WebPush/actions.js +0 -60
- package/v2Containers/WebPush/constants.js +0 -132
- package/v2Containers/WebPush/index.js +0 -2
- package/v2Containers/WebPush/reducer.js +0 -104
- package/v2Containers/WebPush/sagas.js +0 -119
- package/v2Containers/WebPush/selectors.js +0 -65
- package/v2Containers/WebPush/tests/reducer.test.js +0 -863
- package/v2Containers/WebPush/tests/sagas.test.js +0 -566
- package/v2Containers/WebPush/tests/selectors.test.js +0 -960
|
@@ -16,7 +16,7 @@ const VALIDATION_SOURCES = {
|
|
|
16
16
|
EMAIL_SPECIFIC: 'email-specific',
|
|
17
17
|
INAPP_SPECIFIC: 'inapp-specific',
|
|
18
18
|
EMAIL_COMPATIBILITY: 'email-compatibility',
|
|
19
|
-
MOBILE_OPTIMIZATION: 'mobile-optimization'
|
|
19
|
+
MOBILE_OPTIMIZATION: 'mobile-optimization'
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -30,47 +30,42 @@ export const transformValidationToErrorInfo = (validation, variant = 'email') =>
|
|
|
30
30
|
return { errorMessages: { LIQUID_ERROR_MSG: [], STANDARD_ERROR_MSG: [] } };
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
if (typeof validation.getAllIssues !== 'function') {
|
|
34
|
-
console.warn('[validationAdapter] validation.getAllIssues is not a function:', validation);
|
|
35
|
-
return { errorMessages: { LIQUID_ERROR_MSG: [], STANDARD_ERROR_MSG: [] } };
|
|
36
|
-
}
|
|
37
|
-
|
|
38
33
|
const allIssues = validation.getAllIssues();
|
|
39
|
-
// Safety check: ensure allIssues is an array
|
|
40
|
-
if (!Array.isArray(allIssues)) {
|
|
41
|
-
console.warn('[validationAdapter] validation.getAllIssues() did not return an array:', allIssues);
|
|
42
|
-
return { errorMessages: { LIQUID_ERROR_MSG: [], STANDARD_ERROR_MSG: [] } };
|
|
43
|
-
}
|
|
44
34
|
|
|
45
35
|
// Separate liquid and standard errors
|
|
46
|
-
const liquidErrors = allIssues.filter(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
const liquidErrors = allIssues.filter(issue =>
|
|
37
|
+
issue.source === VALIDATION_SOURCES.LIQUID ||
|
|
38
|
+
issue.rule?.includes('liquid') ||
|
|
39
|
+
issue.message?.toLowerCase().includes('liquid')
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
const standardErrors = allIssues.filter(issue =>
|
|
43
|
+
issue.source !== VALIDATION_SOURCES.LIQUID &&
|
|
44
|
+
!issue.rule?.includes('liquid') &&
|
|
45
|
+
!issue.message?.toLowerCase().includes('liquid')
|
|
46
|
+
);
|
|
53
47
|
|
|
54
48
|
// Format errors for ErrorInfoNote
|
|
55
|
-
const formatErrors = (errors) =>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
49
|
+
const formatErrors = (errors) =>
|
|
50
|
+
errors.map(error => {
|
|
51
|
+
let message = error.message;
|
|
52
|
+
|
|
53
|
+
// Add line/column info if available
|
|
54
|
+
if (error.line) {
|
|
55
|
+
message += ` Line ${error.line}`;
|
|
56
|
+
if (error.column) {
|
|
57
|
+
message += `, Char ${error.column}`;
|
|
58
|
+
}
|
|
59
|
+
message += '.';
|
|
63
60
|
}
|
|
64
|
-
message += '.';
|
|
65
|
-
}
|
|
66
61
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
62
|
+
// Add rule info if available
|
|
63
|
+
if (error.rule) {
|
|
64
|
+
message += ` • ${error.rule}`;
|
|
65
|
+
}
|
|
71
66
|
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
return message;
|
|
68
|
+
});
|
|
74
69
|
|
|
75
70
|
// Handle InApp variant with platform-specific errors (if needed in future)
|
|
76
71
|
if (variant === 'inapp') {
|
|
@@ -79,8 +74,8 @@ export const transformValidationToErrorInfo = (validation, variant = 'email') =>
|
|
|
79
74
|
return {
|
|
80
75
|
errorMessages: {
|
|
81
76
|
LIQUID_ERROR_MSG: formatErrors(liquidErrors),
|
|
82
|
-
STANDARD_ERROR_MSG: formatErrors(standardErrors)
|
|
83
|
-
}
|
|
77
|
+
STANDARD_ERROR_MSG: formatErrors(standardErrors)
|
|
78
|
+
}
|
|
84
79
|
};
|
|
85
80
|
}
|
|
86
81
|
|
|
@@ -88,8 +83,8 @@ export const transformValidationToErrorInfo = (validation, variant = 'email') =>
|
|
|
88
83
|
return {
|
|
89
84
|
errorMessages: {
|
|
90
85
|
LIQUID_ERROR_MSG: formatErrors(liquidErrors),
|
|
91
|
-
STANDARD_ERROR_MSG: formatErrors(standardErrors)
|
|
92
|
-
}
|
|
86
|
+
STANDARD_ERROR_MSG: formatErrors(standardErrors)
|
|
87
|
+
}
|
|
93
88
|
};
|
|
94
89
|
};
|
|
95
90
|
|
|
@@ -103,18 +98,7 @@ export const hasValidationErrors = (validation) => {
|
|
|
103
98
|
return false;
|
|
104
99
|
}
|
|
105
100
|
|
|
106
|
-
if (typeof validation.getAllIssues !== 'function') {
|
|
107
|
-
console.warn('[validationAdapter] validation.getAllIssues is not a function:', validation);
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
101
|
const allIssues = validation.getAllIssues();
|
|
112
|
-
// Safety check: ensure allIssues is an array
|
|
113
|
-
if (!Array.isArray(allIssues)) {
|
|
114
|
-
console.warn('[validationAdapter] validation.getAllIssues() did not return an array:', allIssues);
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
102
|
return allIssues.length > 0;
|
|
119
103
|
};
|
|
120
104
|
|
|
@@ -128,28 +112,19 @@ export const getValidationSummary = (validation) => {
|
|
|
128
112
|
return { totalErrors: 0, totalWarnings: 0, hasLiquidErrors: false };
|
|
129
113
|
}
|
|
130
114
|
|
|
131
|
-
if (typeof validation.getAllIssues !== 'function') {
|
|
132
|
-
console.warn('[validationAdapter] validation.getAllIssues is not a function:', validation);
|
|
133
|
-
return { totalErrors: 0, totalWarnings: 0, hasLiquidErrors: false };
|
|
134
|
-
}
|
|
135
|
-
|
|
136
115
|
const allIssues = validation.getAllIssues();
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const warnings = allIssues.filter((issue) => issue.severity === 'warning');
|
|
145
|
-
const liquidErrors = allIssues.filter((issue) => issue.source === VALIDATION_SOURCES.LIQUID
|
|
146
|
-
|| issue.rule?.includes('liquid')
|
|
147
|
-
|| issue.message?.toLowerCase().includes('liquid'));
|
|
116
|
+
const errors = allIssues.filter(issue => issue.severity === 'error');
|
|
117
|
+
const warnings = allIssues.filter(issue => issue.severity === 'warning');
|
|
118
|
+
const liquidErrors = allIssues.filter(issue =>
|
|
119
|
+
issue.source === VALIDATION_SOURCES.LIQUID ||
|
|
120
|
+
issue.rule?.includes('liquid') ||
|
|
121
|
+
issue.message?.toLowerCase().includes('liquid')
|
|
122
|
+
);
|
|
148
123
|
|
|
149
124
|
return {
|
|
150
125
|
totalErrors: errors.length,
|
|
151
126
|
totalWarnings: warnings.length,
|
|
152
127
|
hasLiquidErrors: liquidErrors.length > 0,
|
|
153
|
-
totalIssues: allIssues.length
|
|
128
|
+
totalIssues: allIssues.length
|
|
154
129
|
};
|
|
155
130
|
};
|
|
@@ -16,7 +16,6 @@ import { INAPP } from '../../v2Containers/App/constants';
|
|
|
16
16
|
import { ANDROID, IOS } from '../../v2Containers/InApp/constants';
|
|
17
17
|
import { getCtaObject } from '../../v2Containers/InApp/utils';
|
|
18
18
|
import { CAROUSEL, VIDEO } from '../../v2Containers/MobilePushNew/constants';
|
|
19
|
-
import { DEVICE_TYPES, IPHONE } from './constants';
|
|
20
19
|
|
|
21
20
|
class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
22
21
|
constructor(props) {
|
|
@@ -27,17 +26,8 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
|
|
|
27
26
|
this.getPreview = this.getPreview.bind(this);
|
|
28
27
|
this.setContent = this.setContent.bind(this);
|
|
29
28
|
this.goToDuplicate = this.goToDuplicate.bind(this);
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
let hasAndroid;
|
|
33
|
-
let hasIos;
|
|
34
|
-
if (channel === INAPP.toUpperCase()) {
|
|
35
|
-
hasAndroid = get(templateData, 'versions.base.content.ANDROID') || get(templateData, 'androidContent');
|
|
36
|
-
hasIos = get(templateData, 'versions.base.content.IOS') || get(templateData, 'iosContent');
|
|
37
|
-
} else {
|
|
38
|
-
hasAndroid = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent.title');
|
|
39
|
-
hasIos = get(templateData, 'versions.base.IOS') || get(templateData, 'iosContent.title');
|
|
40
|
-
}
|
|
29
|
+
const hasAndroid = get(props, 'templateData.versions.base.ANDROID') || get(props, 'templateData.androidContent.title');
|
|
30
|
+
const hasIos = get(props, 'templateData.versions.base.IOS') || get(props, 'templateData.iosContent.title');
|
|
41
31
|
let device = "android";
|
|
42
32
|
if (hasAndroid) {
|
|
43
33
|
device = 'android';
|
|
@@ -55,17 +45,6 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
|
|
|
55
45
|
if (channel === INAPP.toUpperCase()) {
|
|
56
46
|
const androidContent = get(templateData, 'versions.base.content.ANDROID') || get(templateData, 'androidContent');
|
|
57
47
|
const iosContent = get(templateData, 'versions.base.content.IOS') || get(templateData, 'iosContent');
|
|
58
|
-
const isBeeFreeTemplate = get(androidContent, 'isBEEeditor') || get(iosContent, 'isBEEeditor');
|
|
59
|
-
if (isBeeFreeTemplate) {
|
|
60
|
-
// Normalize device to 'android' or 'ios' for comparison
|
|
61
|
-
const normalizedDevice = device === IPHONE ? DEVICE_TYPES.IOS : device?.toLowerCase();
|
|
62
|
-
const isAndroid = normalizedDevice === ANDROID.toLowerCase();
|
|
63
|
-
content = {
|
|
64
|
-
inAppPreviewContent: isAndroid ? androidContent?.beeHtml : iosContent?.beeHtml,
|
|
65
|
-
isBeeFreeTemplate: true,
|
|
66
|
-
};
|
|
67
|
-
return content;
|
|
68
|
-
}
|
|
69
48
|
const androidPreviewContent = {
|
|
70
49
|
templateTitle: androidContent?.title,
|
|
71
50
|
templateMsg: androidContent?.message,
|
|
@@ -78,12 +57,9 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
|
|
|
78
57
|
mediaPreview: { inAppImageSrcIos: iosContent?.expandableDetails?.image },
|
|
79
58
|
ctaData: getCtaObject(iosContent?.expandableDetails?.ctas),
|
|
80
59
|
};
|
|
81
|
-
// Normalize device to 'android' or 'ios' for comparison
|
|
82
|
-
const normalizedDevice = device === IPHONE ? DEVICE_TYPES.IOS : device?.toLowerCase();
|
|
83
|
-
const isAndroid = normalizedDevice === ANDROID.toLowerCase();
|
|
84
60
|
content = {
|
|
85
|
-
inAppPreviewContent:
|
|
86
|
-
templateLayoutType:
|
|
61
|
+
inAppPreviewContent: device === ANDROID.toLowerCase() ? androidPreviewContent : iosPreviewContent,
|
|
62
|
+
templateLayoutType: device === ANDROID.toLowerCase() ? androidContent?.bodyType : iosContent?.bodyType,
|
|
87
63
|
};
|
|
88
64
|
} else if (channel === MOBILE_PUSH) {
|
|
89
65
|
const androidContent = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent');
|
|
@@ -149,9 +125,7 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
|
|
|
149
125
|
}
|
|
150
126
|
|
|
151
127
|
getPreview(device) {
|
|
152
|
-
|
|
153
|
-
const normalizedDevice = device === IPHONE ? DEVICE_TYPES.IOS : device?.toLowerCase();
|
|
154
|
-
const deviceParam = normalizedDevice === ANDROID.toLowerCase() ? ANDROID : IOS;
|
|
128
|
+
const deviceParam = device === ANDROID.toLowerCase() ? ANDROID : IOS;
|
|
155
129
|
return (
|
|
156
130
|
<TemplatePreview
|
|
157
131
|
device={this.props.channel === INAPP.toUpperCase() ? deviceParam : device}
|
|
@@ -185,8 +159,8 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
|
|
|
185
159
|
hasAndroid = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent.title');
|
|
186
160
|
hasIos = get(templateData, 'versions.base.IOS') || get(templateData, 'iosContent.title');
|
|
187
161
|
} else if (this.props.channel === INAPP.toUpperCase()) {
|
|
188
|
-
hasAndroid = get(templateData, 'versions.base.content.ANDROID') || get(templateData, 'androidContent');
|
|
189
|
-
hasIos = get(templateData, 'versions.base.content.IOS') || get(templateData, 'iosContent');
|
|
162
|
+
hasAndroid = get(templateData, 'versions.base.content.ANDROID') || get(templateData, 'androidContent.title');
|
|
163
|
+
hasIos = get(templateData, 'versions.base.content.IOS') || get(templateData, 'iosContent.title');
|
|
190
164
|
}
|
|
191
165
|
const hasBothAndroidAndIos = hasAndroid && hasIos;
|
|
192
166
|
return (
|
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
@import '~@capillarytech/cap-ui-library/styles/_variables.scss';
|
|
2
2
|
|
|
3
|
-
.shell-v2 {
|
|
4
|
-
&.align-center {
|
|
5
|
-
.preview-image-container {
|
|
6
|
-
position: relative;
|
|
7
|
-
display: inline-block;
|
|
8
|
-
width: 100%;
|
|
9
|
-
height: 100%;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
3
|
.shell-v2 {
|
|
15
4
|
position: relative;
|
|
16
5
|
-webkit-transform: translate(-50%);
|
|
@@ -27,11 +16,10 @@
|
|
|
27
16
|
&.mobilepush
|
|
28
17
|
|
|
29
18
|
.inapp-message-container-POPUP-ANDROID {
|
|
30
|
-
background-color: $CAP_WHITE;
|
|
31
19
|
position: absolute;
|
|
32
|
-
top:
|
|
20
|
+
top: 20%;
|
|
33
21
|
display: flex;
|
|
34
|
-
width:
|
|
22
|
+
width: 200px;
|
|
35
23
|
left: 28%;
|
|
36
24
|
|
|
37
25
|
.inapp-title-POPUP-ANDROID {
|
|
@@ -71,10 +59,10 @@
|
|
|
71
59
|
.inapp-message-container-HEADER-ANDROID {
|
|
72
60
|
position: absolute;
|
|
73
61
|
display: flex;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
62
|
+
// bottom: 19.4rem;
|
|
63
|
+
width: 200px;
|
|
64
|
+
left: 28%;
|
|
65
|
+
top: 20px;
|
|
78
66
|
|
|
79
67
|
.inapp-title-HEADER-ANDROID {
|
|
80
68
|
left: 34%;
|
|
@@ -141,24 +129,22 @@
|
|
|
141
129
|
|
|
142
130
|
|
|
143
131
|
.inapp-message-container-FOOTER-ANDROID {
|
|
144
|
-
background-color: $CAP_WHITE;
|
|
145
132
|
position: absolute;
|
|
146
133
|
display: flex;
|
|
147
134
|
justify-content: center;
|
|
148
|
-
bottom:
|
|
149
|
-
width:
|
|
150
|
-
left:
|
|
151
|
-
background-color: $CAP_WHITE;
|
|
135
|
+
bottom: 1.5%;
|
|
136
|
+
width: 200px;
|
|
137
|
+
left: 28%;
|
|
152
138
|
|
|
153
139
|
.inapp-title-FOOTER-ANDROID {
|
|
154
|
-
width:
|
|
140
|
+
width: 90px;
|
|
155
141
|
height: 12px;
|
|
156
142
|
text-align: left;
|
|
157
143
|
left: 34%;
|
|
158
144
|
justify-content: center;
|
|
159
145
|
position: relative;
|
|
160
146
|
right: 33%;
|
|
161
|
-
bottom: -
|
|
147
|
+
bottom: -22px;
|
|
162
148
|
font-size: 10px;
|
|
163
149
|
text-overflow: ellipsis;
|
|
164
150
|
overflow: hidden;
|
|
@@ -215,12 +201,10 @@
|
|
|
215
201
|
}
|
|
216
202
|
|
|
217
203
|
.inapp-message-container-FULLSCREEN-ANDROID {
|
|
218
|
-
background-color: $CAP_WHITE;
|
|
219
204
|
position: absolute;
|
|
220
205
|
top: 10%;
|
|
221
206
|
display: flex;
|
|
222
|
-
left:
|
|
223
|
-
width: 16.643rem;
|
|
207
|
+
left: 29%;
|
|
224
208
|
.inapp-title-FULLSCREEN-ANDROID {
|
|
225
209
|
text-overflow: ellipsis;
|
|
226
210
|
overflow: hidden;
|
|
@@ -254,11 +238,10 @@
|
|
|
254
238
|
}
|
|
255
239
|
|
|
256
240
|
.inapp-message-container-POPUP-iOS {
|
|
257
|
-
background-color: $CAP_WHITE;
|
|
258
241
|
position: absolute;
|
|
259
|
-
top:
|
|
242
|
+
top: 20%;
|
|
260
243
|
display: flex;
|
|
261
|
-
width:
|
|
244
|
+
width: 200px;
|
|
262
245
|
left: 28%;
|
|
263
246
|
|
|
264
247
|
.inapp-title-POPUP-iOS {
|
|
@@ -295,19 +278,18 @@
|
|
|
295
278
|
}
|
|
296
279
|
|
|
297
280
|
.inapp-message-container-HEADER-iOS {
|
|
298
|
-
background-color: $CAP_WHITE;
|
|
299
281
|
position: absolute;
|
|
300
282
|
display: flex;
|
|
301
|
-
width:
|
|
302
|
-
left:
|
|
303
|
-
top:
|
|
283
|
+
width: 200px;
|
|
284
|
+
left: 28%;
|
|
285
|
+
top: 3%;
|
|
304
286
|
|
|
305
287
|
.inapp-title-HEADER-iOS {
|
|
306
288
|
left: 34%;
|
|
307
289
|
top: 15%;
|
|
308
290
|
position: relative;
|
|
309
291
|
font-size: 10px;
|
|
310
|
-
width:
|
|
292
|
+
width: 90px;
|
|
311
293
|
height: 12px;
|
|
312
294
|
text-overflow: ellipsis;
|
|
313
295
|
overflow: hidden;
|
|
@@ -318,7 +300,7 @@
|
|
|
318
300
|
|
|
319
301
|
.without-image-title-HEADER-ios {
|
|
320
302
|
left: 26%;
|
|
321
|
-
top:
|
|
303
|
+
top: 18px;
|
|
322
304
|
text-align: center;
|
|
323
305
|
}
|
|
324
306
|
|
|
@@ -348,7 +330,7 @@
|
|
|
348
330
|
.without-image-content-HEADER-ios {
|
|
349
331
|
width: 92%;
|
|
350
332
|
left: 6%;
|
|
351
|
-
top:
|
|
333
|
+
top: 21px;
|
|
352
334
|
}
|
|
353
335
|
|
|
354
336
|
.inapp-button-HEADER-iOS {
|
|
@@ -365,14 +347,12 @@
|
|
|
365
347
|
}
|
|
366
348
|
|
|
367
349
|
.inapp-message-container-FOOTER-iOS {
|
|
368
|
-
background-color: $CAP_WHITE;
|
|
369
350
|
position: absolute;
|
|
370
351
|
display: flex;
|
|
371
352
|
justify-content: center;
|
|
372
|
-
width:
|
|
373
|
-
left:
|
|
374
|
-
top:
|
|
375
|
-
bottom: 3.5%;
|
|
353
|
+
width: 200px;
|
|
354
|
+
left: 28%;
|
|
355
|
+
top: 75%;
|
|
376
356
|
|
|
377
357
|
.inapp-title-FOOTER-iOS {
|
|
378
358
|
width: 90px;
|
|
@@ -440,12 +420,10 @@
|
|
|
440
420
|
}
|
|
441
421
|
|
|
442
422
|
.inapp-message-container-FULLSCREEN-iOS {
|
|
443
|
-
background-color: $CAP_WHITE;
|
|
444
423
|
position: absolute;
|
|
445
424
|
top: 10%;
|
|
446
425
|
display: flex;
|
|
447
|
-
left:
|
|
448
|
-
width: 16.643rem;
|
|
426
|
+
left: 29%;
|
|
449
427
|
.inapp-title-FULLSCREEN-iOS {
|
|
450
428
|
text-overflow: ellipsis;
|
|
451
429
|
overflow: hidden;
|
|
@@ -477,15 +455,6 @@
|
|
|
477
455
|
bottom: -1%;
|
|
478
456
|
}
|
|
479
457
|
}
|
|
480
|
-
|
|
481
|
-
.inapp-message-container-MODAL-ANDROID, .inapp-message-container-MODAL-iOS {
|
|
482
|
-
background-color: $CAP_WHITE;
|
|
483
|
-
position: absolute;
|
|
484
|
-
top: 30%;
|
|
485
|
-
display: flex;
|
|
486
|
-
width: 14.286rem;
|
|
487
|
-
left: 28%;
|
|
488
|
-
}
|
|
489
458
|
}
|
|
490
459
|
|
|
491
460
|
|
|
@@ -37,8 +37,14 @@ import {
|
|
|
37
37
|
import { VIBER, FACEBOOK } from '../../v2Containers/App/constants';
|
|
38
38
|
import Carousel from '../Carousel';
|
|
39
39
|
import whatsappMobileAndroid from './assets/images/whatsapp_mobile_android.svg';
|
|
40
|
-
import
|
|
41
|
-
import
|
|
40
|
+
import inAppMobileAndroidModal from './assets/images/inapp_mobile_android_modal.svg';
|
|
41
|
+
import inAppMobileAndroidTop from './assets/images/inapp_mobile_android_top.svg';
|
|
42
|
+
import inAppMobileAndroidBottom from './assets/images/inapp_mobile_android_bottom.svg';
|
|
43
|
+
import inAppMobileAndroidFull from './assets/images/inapp_mobile_android_full.svg';
|
|
44
|
+
import inAppMobileIOSModal from './assets/images/inapp_mobile_ios_modal.svg';
|
|
45
|
+
import inAppMobileIOSTop from './assets/images/inapp_mobile_ios_top.svg';
|
|
46
|
+
import inAppMobileIOSBottom from './assets/images/inapp_mobile_ios_bottom.svg';
|
|
47
|
+
import inAppMobileIOSFull from './assets/images/inapp_mobile_ios_full.svg';
|
|
42
48
|
import whatsappImageEmptyPreview from './assets/images/empty_image_preview.svg';
|
|
43
49
|
import whatsappVideoEmptyPreview from './assets/images/empty_video_preview.svg';
|
|
44
50
|
import videoPlay from '../../assets/videoPlay.svg';
|
|
@@ -233,7 +239,7 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
|
|
|
233
239
|
} = this.props;
|
|
234
240
|
let content = channel && channel.toLowerCase() === 'sms' ? [this.props.content] : this.props.content;
|
|
235
241
|
const { formatMessage } = intl;
|
|
236
|
-
const { rcsPreviewContent, inAppPreviewContent, viberPreviewContent
|
|
242
|
+
const { rcsPreviewContent, inAppPreviewContent, viberPreviewContent } = content || {};
|
|
237
243
|
const { rcsImageSrc, rcsVideoSrc, rcsTitle, rcsDesc, rcsSuggestions } = rcsPreviewContent || {};
|
|
238
244
|
const {
|
|
239
245
|
videoParams,
|
|
@@ -241,11 +247,7 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
|
|
|
241
247
|
buttonText: viberButtonText,
|
|
242
248
|
messageContent: viberMessageContent,
|
|
243
249
|
} = viberPreviewContent || {};
|
|
244
|
-
let isHTMLContent = true;
|
|
245
250
|
const {mediaPreview = {}, templateTitle = "", templateMsg = "", ctaData} = inAppPreviewContent || {};
|
|
246
|
-
if(templateTitle !== undefined && ctaData !== undefined && templateMsg !== undefined) {
|
|
247
|
-
isHTMLContent = false;
|
|
248
|
-
}
|
|
249
251
|
let smsDetails = {};
|
|
250
252
|
// let smsText = '';
|
|
251
253
|
if (this.props.content && this.props.charCounterEnabled) {
|
|
@@ -462,9 +464,27 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
|
|
|
462
464
|
|
|
463
465
|
const getPreviewImage = () => {
|
|
464
466
|
if (this.props.device === ANDROID) {
|
|
465
|
-
|
|
467
|
+
switch (templateLayoutType) {
|
|
468
|
+
case INAPP_MESSAGE_LAYOUT_TYPES.MODAL:
|
|
469
|
+
return inAppMobileAndroidModal;
|
|
470
|
+
case INAPP_MESSAGE_LAYOUT_TYPES.TOPBANNER:
|
|
471
|
+
return inAppMobileAndroidTop;
|
|
472
|
+
case INAPP_MESSAGE_LAYOUT_TYPES.BOTTOMBANNER:
|
|
473
|
+
return inAppMobileAndroidBottom;
|
|
474
|
+
default:
|
|
475
|
+
return inAppMobileAndroidFull;
|
|
476
|
+
}
|
|
466
477
|
} else {
|
|
467
|
-
|
|
478
|
+
switch (templateLayoutType) {
|
|
479
|
+
case INAPP_MESSAGE_LAYOUT_TYPES.MODAL:
|
|
480
|
+
return inAppMobileIOSModal;
|
|
481
|
+
case INAPP_MESSAGE_LAYOUT_TYPES.TOPBANNER:
|
|
482
|
+
return inAppMobileIOSTop;
|
|
483
|
+
case INAPP_MESSAGE_LAYOUT_TYPES.BOTTOMBANNER:
|
|
484
|
+
return inAppMobileIOSBottom;
|
|
485
|
+
default:
|
|
486
|
+
return inAppMobileIOSFull;
|
|
487
|
+
}
|
|
468
488
|
}
|
|
469
489
|
};
|
|
470
490
|
|
|
@@ -1354,34 +1374,7 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
|
|
|
1354
1374
|
</div>
|
|
1355
1375
|
)}
|
|
1356
1376
|
{channel?.toUpperCase() === INAPP && (
|
|
1357
|
-
|
|
1358
|
-
<div className="shell-v2 align-center">
|
|
1359
|
-
<CapRow className="preview-image-container">
|
|
1360
|
-
<CapImage
|
|
1361
|
-
className="preview-image"
|
|
1362
|
-
src={this.props.device === ANDROID ? inAppMobileDeviceAndroid : inAppMobileDeviceIos}
|
|
1363
|
-
alt={formatMessage(messages.previewGenerated)}
|
|
1364
|
-
/>
|
|
1365
|
-
<iframe
|
|
1366
|
-
srcDoc={inAppPreviewContent?.value}
|
|
1367
|
-
title={formatMessage(messages.inappPreview)}
|
|
1368
|
-
style={{
|
|
1369
|
-
position: 'absolute',
|
|
1370
|
-
top: '3rem',
|
|
1371
|
-
left: '5rem',
|
|
1372
|
-
width: '60%',
|
|
1373
|
-
height: '89%',
|
|
1374
|
-
zIndex: 1,
|
|
1375
|
-
pointerEvents: 'none',
|
|
1376
|
-
backgroundColor: 'white',
|
|
1377
|
-
borderRadius: `${CAP_SPACE_08}`,
|
|
1378
|
-
}}
|
|
1379
|
-
frameBorder="0"
|
|
1380
|
-
/>
|
|
1381
|
-
</CapRow>
|
|
1382
|
-
</div>
|
|
1383
|
-
): (
|
|
1384
|
-
<div className="shell-v2 align-center">
|
|
1377
|
+
<div className="shell-v2 align-center">
|
|
1385
1378
|
<CapImage
|
|
1386
1379
|
className="preview-image"
|
|
1387
1380
|
src={getPreviewImage()}
|
|
@@ -1389,15 +1382,9 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
|
|
|
1389
1382
|
/>
|
|
1390
1383
|
<div className="preview-image">
|
|
1391
1384
|
<div
|
|
1392
|
-
className={`inapp-message-container-${templateLayoutType}-${device}
|
|
1385
|
+
className={`inapp-message-container-${templateLayoutType}-${device} sms`}
|
|
1393
1386
|
>
|
|
1394
|
-
|
|
1395
|
-
<div
|
|
1396
|
-
className="inapp-html-content"
|
|
1397
|
-
dangerouslySetInnerHTML={{ __html: templateMsg }}
|
|
1398
|
-
/>
|
|
1399
|
-
) : (
|
|
1400
|
-
<div className="preview-inapp-screen">
|
|
1387
|
+
<div className="preview-inapp-screen">
|
|
1401
1388
|
{
|
|
1402
1389
|
<CapLabel
|
|
1403
1390
|
type="label15"
|
|
@@ -1462,11 +1449,9 @@ export class TemplatePreview extends React.Component { // eslint-disable-line re
|
|
|
1462
1449
|
</CapButton>
|
|
1463
1450
|
)}
|
|
1464
1451
|
</div>
|
|
1465
|
-
)}
|
|
1466
1452
|
</div>
|
|
1467
1453
|
</div>
|
|
1468
1454
|
</div>
|
|
1469
|
-
)
|
|
1470
1455
|
)}
|
|
1471
1456
|
</CapRow>
|
|
1472
1457
|
</CapColumn>
|
|
@@ -94,8 +94,4 @@ export default defineMessages({
|
|
|
94
94
|
id: 'creatives.componentsV2.TemplatePreview.videoNotSupported',
|
|
95
95
|
defaultMessage: 'Your browser does not support the video tag.',
|
|
96
96
|
},
|
|
97
|
-
inappPreview: {
|
|
98
|
-
id: 'creatives.componentsV2.TemplatePreview.inappPreview',
|
|
99
|
-
defaultMessage: 'Inapp Preview',
|
|
100
|
-
},
|
|
101
97
|
});
|
|
@@ -40,7 +40,6 @@ export const TRACK_CREATE_IMAGE = 'createImage';
|
|
|
40
40
|
export const TRACK_CREATE_LINE = 'createLine';
|
|
41
41
|
export const TRACK_CREATE_VIBER = 'createViber';
|
|
42
42
|
export const TRACK_CREATE_FACEBOOK = 'createFacebook';
|
|
43
|
-
export const TRACK_CREATE_WEBPUSH = 'createWebPush';
|
|
44
43
|
|
|
45
44
|
export const CREATE = 'create';
|
|
46
45
|
export const EDIT = 'edit';
|
|
@@ -55,7 +54,6 @@ export const EMAIL = 'email';
|
|
|
55
54
|
export const ASSETS = 'assets';
|
|
56
55
|
export const ZALO = 'zalo';
|
|
57
56
|
export const INAPP = 'inapp';
|
|
58
|
-
export const WEBPUSH = 'webpush';
|
|
59
57
|
|
|
60
58
|
export const JP_LOCALE_HIDE_FEATURE = 'JP_LOCALE_HIDE_FEATURE';
|
|
61
59
|
|
|
@@ -67,7 +65,6 @@ export const TRACK_EDIT_IMAGE = 'editImage';
|
|
|
67
65
|
export const TRACK_EDIT_LINE = 'editLine';
|
|
68
66
|
export const TRACK_EDIT_VIBER = 'editViber';
|
|
69
67
|
export const TRACK_EDIT_FACEBOOK = 'editFacebook';
|
|
70
|
-
export const TRACK_EDIT_WEBPUSH = 'editWebPush';
|
|
71
68
|
|
|
72
69
|
export const CHANNEL_CREATE_TRACK_MAPPING = {
|
|
73
70
|
sms: TRACK_CREATE_SMS,
|
|
@@ -78,7 +75,6 @@ export const CHANNEL_CREATE_TRACK_MAPPING = {
|
|
|
78
75
|
line: TRACK_CREATE_LINE,
|
|
79
76
|
viber: TRACK_CREATE_VIBER,
|
|
80
77
|
facebook: TRACK_CREATE_FACEBOOK,
|
|
81
|
-
webpush: TRACK_CREATE_WEBPUSH,
|
|
82
78
|
};
|
|
83
79
|
|
|
84
80
|
export const CHANNEL_EDIT_TRACK_MAPPING = {
|
|
@@ -90,7 +86,6 @@ export const CHANNEL_EDIT_TRACK_MAPPING = {
|
|
|
90
86
|
line: TRACK_EDIT_LINE,
|
|
91
87
|
viber: TRACK_EDIT_VIBER,
|
|
92
88
|
facebook: TRACK_EDIT_FACEBOOK,
|
|
93
|
-
webpush: TRACK_EDIT_WEBPUSH,
|
|
94
89
|
};
|
|
95
90
|
export const GTM_TRACKING_ID = 'UA-110024621-2';
|
|
96
91
|
export const BEE_PLUGIN = 'BEE_PLUGIN';
|