@capillarytech/creatives-library 8.0.250-alpha.2 → 8.0.251
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/translations/en.json +3 -4
- 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 -455
- package/v2Components/ErrorInfoNote/messages.js +6 -36
- package/v2Components/ErrorInfoNote/style.scss +4 -280
- package/v2Components/FormBuilder/tests/index.test.js +4 -13
- package/v2Components/HtmlEditor/HTMLEditor.js +94 -547
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +133 -1358
- package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +16 -27
- package/v2Components/HtmlEditor/_htmlEditor.scss +45 -108
- package/v2Components/HtmlEditor/_index.lazy.scss +1 -1
- package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +101 -22
- package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +140 -146
- 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 +0 -9
- package/v2Components/HtmlEditor/components/EditorToolbar/index.js +1 -1
- 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 +6 -3
- package/v2Components/HtmlEditor/components/PreviewPane/index.js +34 -24
- 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/index.js +31 -49
- package/v2Components/HtmlEditor/components/ValidationPanel/_validationPanel.scss +34 -50
- package/v2Components/HtmlEditor/components/ValidationPanel/index.js +41 -70
- package/v2Components/HtmlEditor/constants.js +20 -42
- package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +16 -373
- package/v2Components/HtmlEditor/hooks/useEditorContent.js +2 -5
- package/v2Components/HtmlEditor/hooks/useInAppContent.js +146 -88
- package/v2Components/HtmlEditor/hooks/useValidation.js +53 -189
- package/v2Components/HtmlEditor/index.js +1 -1
- package/v2Components/HtmlEditor/messages.js +85 -95
- package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +45 -94
- 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 +102 -134
- package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +25 -23
- package/v2Components/HtmlEditor/utils/validationAdapter.js +41 -66
- package/v2Components/MobilePushPreviewV2/index.js +7 -32
- 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/Cap/tests/__snapshots__/index.test.js.snap +3 -4
- 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 -407
- 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 -106
- package/v2Containers/Email/actions.js +0 -7
- package/v2Containers/Email/constants.js +1 -5
- package/v2Containers/Email/index.js +29 -234
- 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 +19 -207
- 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 -61
- 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 +9 -15
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +6 -10
- package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +75 -102
- package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +54 -81
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +174 -244
- package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +12 -16
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +36 -52
- 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 -4
- package/v2Containers/Templates/tests/index.test.js +0 -10
- package/v2Containers/TemplatesV2/index.js +7 -15
- package/v2Containers/TemplatesV2/messages.js +0 -4
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +486 -682
- 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/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +0 -874
- package/v2Components/HtmlEditor/components/ValidationPanel/constants.js +0 -6
- package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +0 -254
- package/v2Components/HtmlEditor/components/ValidationTabs/index.js +0 -364
- package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +0 -51
- package/v2Components/HtmlEditor/hooks/__tests__/useValidation.apiErrors.test.js +0 -795
- package/v2Components/HtmlEditor/utils/validationConstants.js +0 -40
- 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 -1285
- package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +0 -1870
- package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +0 -520
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +0 -643
- 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 -107
- package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +0 -160
- package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +0 -476
- 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 -143
- 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 -82
- 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 -515
- 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 -46
- package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +0 -150
- 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 -203
- 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 -23
- 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 -47
- package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -141
- 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 -81
- 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 -351
- 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
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
exports[`Test SlideBoxContent container campaign message, add creative click rcs 1`] = `
|
|
4
4
|
<CreativesContainer__SlideBoxWrapper
|
|
5
5
|
className="add-creatives-section creatives-library-mode "
|
|
6
|
-
shouldApplyFooterMargin={false}
|
|
7
6
|
slideBoxWrapperMargin={0}
|
|
8
7
|
>
|
|
9
8
|
<CapSlideBox
|
|
@@ -18,7 +17,6 @@ exports[`Test SlideBoxContent container campaign message, add creative click rcs
|
|
|
18
17
|
handleCloseTestAndPreview={[Function]}
|
|
19
18
|
handleTestAndPreview={[Function]}
|
|
20
19
|
hostName=""
|
|
21
|
-
inAppEditorType={null}
|
|
22
20
|
isTestAndPreviewMode={false}
|
|
23
21
|
loyaltyMetaData={
|
|
24
22
|
Object {
|
|
@@ -34,9 +32,6 @@ exports[`Test SlideBoxContent container campaign message, add creative click rcs
|
|
|
34
32
|
onEnterTemplateName={[Function]}
|
|
35
33
|
onFTPSubmit={[MockFunction]}
|
|
36
34
|
onFacebookSubmit={[MockFunction]}
|
|
37
|
-
onHtmlEditorValidationStateChange={[Function]}
|
|
38
|
-
onInAppEditorTypeChange={[Function]}
|
|
39
|
-
onInAppModeChange={[Function]}
|
|
40
35
|
onMobilepushModeChange={[Function]}
|
|
41
36
|
onPreviewTemplate={[Function]}
|
|
42
37
|
onRemoveTemplateName={[Function]}
|
|
@@ -94,7 +89,6 @@ exports[`Test SlideBoxContent container campaign message, add creative click rcs
|
|
|
94
89
|
exports[`Test SlideBoxContent container campaign message, add creative click whatsapp 1`] = `
|
|
95
90
|
<CreativesContainer__SlideBoxWrapper
|
|
96
91
|
className="add-creatives-section creatives-library-mode "
|
|
97
|
-
shouldApplyFooterMargin={false}
|
|
98
92
|
slideBoxWrapperMargin={0}
|
|
99
93
|
>
|
|
100
94
|
<CapSlideBox
|
|
@@ -109,7 +103,6 @@ exports[`Test SlideBoxContent container campaign message, add creative click wha
|
|
|
109
103
|
handleCloseTestAndPreview={[Function]}
|
|
110
104
|
handleTestAndPreview={[Function]}
|
|
111
105
|
hostName=""
|
|
112
|
-
inAppEditorType={null}
|
|
113
106
|
isTestAndPreviewMode={false}
|
|
114
107
|
loyaltyMetaData={
|
|
115
108
|
Object {
|
|
@@ -125,9 +118,6 @@ exports[`Test SlideBoxContent container campaign message, add creative click wha
|
|
|
125
118
|
onEnterTemplateName={[Function]}
|
|
126
119
|
onFTPSubmit={[MockFunction]}
|
|
127
120
|
onFacebookSubmit={[MockFunction]}
|
|
128
|
-
onHtmlEditorValidationStateChange={[Function]}
|
|
129
|
-
onInAppEditorTypeChange={[Function]}
|
|
130
|
-
onInAppModeChange={[Function]}
|
|
131
121
|
onMobilepushModeChange={[Function]}
|
|
132
122
|
onPreviewTemplate={[Function]}
|
|
133
123
|
onRemoveTemplateName={[Function]}
|
|
@@ -185,7 +175,6 @@ exports[`Test SlideBoxContent container campaign message, add creative click wha
|
|
|
185
175
|
exports[`Test SlideBoxContent container campaign message, whatsapp edit all data 1`] = `
|
|
186
176
|
<CreativesContainer__SlideBoxWrapper
|
|
187
177
|
className="add-creatives-section creatives-library-mode "
|
|
188
|
-
shouldApplyFooterMargin={false}
|
|
189
178
|
slideBoxWrapperMargin={0}
|
|
190
179
|
>
|
|
191
180
|
<CapSlideBox
|
|
@@ -200,7 +189,6 @@ exports[`Test SlideBoxContent container campaign message, whatsapp edit all data
|
|
|
200
189
|
handleCloseTestAndPreview={[Function]}
|
|
201
190
|
handleTestAndPreview={[Function]}
|
|
202
191
|
hostName=""
|
|
203
|
-
inAppEditorType={null}
|
|
204
192
|
isTestAndPreviewMode={false}
|
|
205
193
|
loyaltyMetaData={
|
|
206
194
|
Object {
|
|
@@ -216,9 +204,6 @@ exports[`Test SlideBoxContent container campaign message, whatsapp edit all data
|
|
|
216
204
|
onEnterTemplateName={[Function]}
|
|
217
205
|
onFTPSubmit={[MockFunction]}
|
|
218
206
|
onFacebookSubmit={[MockFunction]}
|
|
219
|
-
onHtmlEditorValidationStateChange={[Function]}
|
|
220
|
-
onInAppEditorTypeChange={[Function]}
|
|
221
|
-
onInAppModeChange={[Function]}
|
|
222
207
|
onMobilepushModeChange={[Function]}
|
|
223
208
|
onPreviewTemplate={[Function]}
|
|
224
209
|
onRemoveTemplateName={[Function]}
|
|
@@ -241,47 +226,20 @@ exports[`Test SlideBoxContent container campaign message, whatsapp edit all data
|
|
|
241
226
|
}
|
|
242
227
|
footer={
|
|
243
228
|
<SlideBoxFooter
|
|
244
|
-
continueButtonLabel={
|
|
245
|
-
Object {
|
|
246
|
-
"defaultMessage": "Next",
|
|
247
|
-
"id": "creatives.containersV2.Creatives.next",
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
229
|
currentChannel="WHATSAPP"
|
|
251
230
|
currentTab="ANDROID"
|
|
252
|
-
emailCreateMode=""
|
|
253
231
|
errorMessages={
|
|
254
232
|
Object {
|
|
255
233
|
"LIQUID_ERROR_MSG": Array [],
|
|
256
234
|
"STANDARD_ERROR_MSG": Array [],
|
|
257
235
|
}
|
|
258
236
|
}
|
|
259
|
-
fetchingCmsData={false}
|
|
260
|
-
htmlEditorValidationState={
|
|
261
|
-
Object {
|
|
262
|
-
"errorsAcknowledged": false,
|
|
263
|
-
"isContentEmpty": true,
|
|
264
|
-
"issueCounts": Object {
|
|
265
|
-
"html": 0,
|
|
266
|
-
"label": 0,
|
|
267
|
-
"liquid": 0,
|
|
268
|
-
"total": 0,
|
|
269
|
-
},
|
|
270
|
-
"validationComplete": false,
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
isContinueButtonDisabled={true}
|
|
274
|
-
isCreatingTemplate={false}
|
|
275
|
-
isEmptyContent={false}
|
|
276
|
-
isFullMode={false}
|
|
277
237
|
isLiquidValidationError={false}
|
|
278
|
-
isTemplateNameEmpty={false}
|
|
279
238
|
onCreateNextStep={[Function]}
|
|
280
239
|
onDiscard={[Function]}
|
|
281
240
|
onEditTemplate={[Function]}
|
|
282
241
|
onSave={[Function]}
|
|
283
242
|
onTestAndPreview={[Function]}
|
|
284
|
-
selectedEmailCreateMode={null}
|
|
285
243
|
shouldShowContinueFooter={[Function]}
|
|
286
244
|
shouldShowDoneFooter={[Function]}
|
|
287
245
|
showTestAndPreviewButton={true}
|
|
@@ -315,7 +273,6 @@ exports[`Test SlideBoxContent container campaign message, whatsapp edit all data
|
|
|
315
273
|
exports[`Test SlideBoxContent container campaign message, whatsapp edit min data 1`] = `
|
|
316
274
|
<CreativesContainer__SlideBoxWrapper
|
|
317
275
|
className="add-creatives-section creatives-library-mode "
|
|
318
|
-
shouldApplyFooterMargin={false}
|
|
319
276
|
slideBoxWrapperMargin={0}
|
|
320
277
|
>
|
|
321
278
|
<CapSlideBox
|
|
@@ -330,7 +287,6 @@ exports[`Test SlideBoxContent container campaign message, whatsapp edit min data
|
|
|
330
287
|
handleCloseTestAndPreview={[Function]}
|
|
331
288
|
handleTestAndPreview={[Function]}
|
|
332
289
|
hostName=""
|
|
333
|
-
inAppEditorType={null}
|
|
334
290
|
isTestAndPreviewMode={false}
|
|
335
291
|
loyaltyMetaData={
|
|
336
292
|
Object {
|
|
@@ -346,9 +302,6 @@ exports[`Test SlideBoxContent container campaign message, whatsapp edit min data
|
|
|
346
302
|
onEnterTemplateName={[Function]}
|
|
347
303
|
onFTPSubmit={[MockFunction]}
|
|
348
304
|
onFacebookSubmit={[MockFunction]}
|
|
349
|
-
onHtmlEditorValidationStateChange={[Function]}
|
|
350
|
-
onInAppEditorTypeChange={[Function]}
|
|
351
|
-
onInAppModeChange={[Function]}
|
|
352
305
|
onMobilepushModeChange={[Function]}
|
|
353
306
|
onPreviewTemplate={[Function]}
|
|
354
307
|
onRemoveTemplateName={[Function]}
|
|
@@ -371,47 +324,20 @@ exports[`Test SlideBoxContent container campaign message, whatsapp edit min data
|
|
|
371
324
|
}
|
|
372
325
|
footer={
|
|
373
326
|
<SlideBoxFooter
|
|
374
|
-
continueButtonLabel={
|
|
375
|
-
Object {
|
|
376
|
-
"defaultMessage": "Next",
|
|
377
|
-
"id": "creatives.containersV2.Creatives.next",
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
327
|
currentChannel="WHATSAPP"
|
|
381
328
|
currentTab="ANDROID"
|
|
382
|
-
emailCreateMode=""
|
|
383
329
|
errorMessages={
|
|
384
330
|
Object {
|
|
385
331
|
"LIQUID_ERROR_MSG": Array [],
|
|
386
332
|
"STANDARD_ERROR_MSG": Array [],
|
|
387
333
|
}
|
|
388
334
|
}
|
|
389
|
-
fetchingCmsData={false}
|
|
390
|
-
htmlEditorValidationState={
|
|
391
|
-
Object {
|
|
392
|
-
"errorsAcknowledged": false,
|
|
393
|
-
"isContentEmpty": true,
|
|
394
|
-
"issueCounts": Object {
|
|
395
|
-
"html": 0,
|
|
396
|
-
"label": 0,
|
|
397
|
-
"liquid": 0,
|
|
398
|
-
"total": 0,
|
|
399
|
-
},
|
|
400
|
-
"validationComplete": false,
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
isContinueButtonDisabled={true}
|
|
404
|
-
isCreatingTemplate={false}
|
|
405
|
-
isEmptyContent={false}
|
|
406
|
-
isFullMode={false}
|
|
407
335
|
isLiquidValidationError={false}
|
|
408
|
-
isTemplateNameEmpty={false}
|
|
409
336
|
onCreateNextStep={[Function]}
|
|
410
337
|
onDiscard={[Function]}
|
|
411
338
|
onEditTemplate={[Function]}
|
|
412
339
|
onSave={[Function]}
|
|
413
340
|
onTestAndPreview={[Function]}
|
|
414
|
-
selectedEmailCreateMode={null}
|
|
415
341
|
shouldShowContinueFooter={[Function]}
|
|
416
342
|
shouldShowDoneFooter={[Function]}
|
|
417
343
|
showTestAndPreviewButton={true}
|
|
@@ -445,7 +371,6 @@ exports[`Test SlideBoxContent container campaign message, whatsapp edit min data
|
|
|
445
371
|
exports[`Test SlideBoxContent container it should clear the url, on channel change from new whatsapp to another 1`] = `
|
|
446
372
|
<CreativesContainer__SlideBoxWrapper
|
|
447
373
|
className="add-creatives-section creatives-library-mode "
|
|
448
|
-
shouldApplyFooterMargin={false}
|
|
449
374
|
slideBoxWrapperMargin={0}
|
|
450
375
|
>
|
|
451
376
|
<CapSlideBox
|
|
@@ -460,7 +385,6 @@ exports[`Test SlideBoxContent container it should clear the url, on channel chan
|
|
|
460
385
|
handleCloseTestAndPreview={[Function]}
|
|
461
386
|
handleTestAndPreview={[Function]}
|
|
462
387
|
hostName=""
|
|
463
|
-
inAppEditorType={null}
|
|
464
388
|
isTestAndPreviewMode={false}
|
|
465
389
|
loyaltyMetaData={
|
|
466
390
|
Object {
|
|
@@ -476,9 +400,6 @@ exports[`Test SlideBoxContent container it should clear the url, on channel chan
|
|
|
476
400
|
onEnterTemplateName={[Function]}
|
|
477
401
|
onFTPSubmit={[MockFunction]}
|
|
478
402
|
onFacebookSubmit={[MockFunction]}
|
|
479
|
-
onHtmlEditorValidationStateChange={[Function]}
|
|
480
|
-
onInAppEditorTypeChange={[Function]}
|
|
481
|
-
onInAppModeChange={[Function]}
|
|
482
403
|
onMobilepushModeChange={[Function]}
|
|
483
404
|
onPreviewTemplate={[Function]}
|
|
484
405
|
onRemoveTemplateName={[Function]}
|
|
@@ -501,47 +422,20 @@ exports[`Test SlideBoxContent container it should clear the url, on channel chan
|
|
|
501
422
|
}
|
|
502
423
|
footer={
|
|
503
424
|
<SlideBoxFooter
|
|
504
|
-
continueButtonLabel={
|
|
505
|
-
Object {
|
|
506
|
-
"defaultMessage": "Next",
|
|
507
|
-
"id": "creatives.containersV2.Creatives.next",
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
425
|
currentChannel="WHATSAPP"
|
|
511
426
|
currentTab="ANDROID"
|
|
512
|
-
emailCreateMode=""
|
|
513
427
|
errorMessages={
|
|
514
428
|
Object {
|
|
515
429
|
"LIQUID_ERROR_MSG": Array [],
|
|
516
430
|
"STANDARD_ERROR_MSG": Array [],
|
|
517
431
|
}
|
|
518
432
|
}
|
|
519
|
-
fetchingCmsData={false}
|
|
520
|
-
htmlEditorValidationState={
|
|
521
|
-
Object {
|
|
522
|
-
"errorsAcknowledged": false,
|
|
523
|
-
"isContentEmpty": true,
|
|
524
|
-
"issueCounts": Object {
|
|
525
|
-
"html": 0,
|
|
526
|
-
"label": 0,
|
|
527
|
-
"liquid": 0,
|
|
528
|
-
"total": 0,
|
|
529
|
-
},
|
|
530
|
-
"validationComplete": false,
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
|
-
isContinueButtonDisabled={true}
|
|
534
|
-
isCreatingTemplate={false}
|
|
535
|
-
isEmptyContent={false}
|
|
536
|
-
isFullMode={false}
|
|
537
433
|
isLiquidValidationError={false}
|
|
538
|
-
isTemplateNameEmpty={false}
|
|
539
434
|
onCreateNextStep={[Function]}
|
|
540
435
|
onDiscard={[Function]}
|
|
541
436
|
onEditTemplate={[Function]}
|
|
542
437
|
onSave={[Function]}
|
|
543
438
|
onTestAndPreview={[Function]}
|
|
544
|
-
selectedEmailCreateMode={null}
|
|
545
439
|
shouldShowContinueFooter={[Function]}
|
|
546
440
|
shouldShowDoneFooter={[Function]}
|
|
547
441
|
showTestAndPreviewButton={true}
|
|
@@ -66,13 +66,6 @@ export function clearCRUDResponse() {
|
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
export function getCmsAccounts(cmsType) {
|
|
70
|
-
return {
|
|
71
|
-
type: types.GET_CMS_ACCOUNTS_REQUEST,
|
|
72
|
-
cmsType,
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
|
|
76
69
|
export function clearStoreValues() {
|
|
77
70
|
return {
|
|
78
71
|
type: types.CLEAR_ALL_VALUES,
|
|
@@ -36,8 +36,4 @@ export const DUPLICATE_TEMPLATE_REQUEST = 'app/v2Containers/Email/DUPLICATE_TEMP
|
|
|
36
36
|
export const DUPLICATE_TEMPLATE_SUCCESS = 'app/v2Containers/Email/DUPLICATE_TEMPLATE_SUCCESS';
|
|
37
37
|
export const DUPLICATE_TEMPLATE_FAILURE = 'app/v2Containers/Email/DUPLICATE_TEMPLATE_FAILURE';
|
|
38
38
|
|
|
39
|
-
export const TRANSFORM_EMAIL_TEMPLATE_REQUEST = 'app/v2Containers/Email/TRANSFORM_EMAIL_TEMPLATE_REQUEST';
|
|
40
|
-
|
|
41
|
-
export const GET_CMS_ACCOUNTS_REQUEST = 'app/v2Containers/Email/GET_CMS_ACCOUNTS_REQUEST';
|
|
42
|
-
export const GET_CMS_ACCOUNTS_SUCCESS = 'app/v2Containers/Email/GET_CMS_ACCOUNTS_SUCCESS';
|
|
43
|
-
export const GET_CMS_ACCOUNTS_FAILURE = 'app/v2Containers/Email/GET_CMS_ACCOUNTS_FAILURE';
|
|
39
|
+
export const TRANSFORM_EMAIL_TEMPLATE_REQUEST = 'app/v2Containers/Email/TRANSFORM_EMAIL_TEMPLATE_REQUEST';
|
|
@@ -208,31 +208,13 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
208
208
|
const isBEESupport = (this.props.location.query.isBEESupport !== "false") || false;
|
|
209
209
|
const isBEEAppEnable = this.checkBeeEditorAllowedForLibrary();
|
|
210
210
|
if (!_.isEmpty(this.props.Templates.BEETemplate)) {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
if (isDragDrop && isBEEAppEnable ) {
|
|
211
|
+
if (this.props.Templates.BEETemplate.versions.base.is_drag_drop && isBEEAppEnable ) {
|
|
214
212
|
this.setState({isDragDrop: true});
|
|
215
213
|
}
|
|
216
214
|
if (this.props.params.id) {
|
|
217
|
-
|
|
218
|
-
const activeTab = this.props.Templates.BEETemplate.versions?.base?.activeTab || 'en';
|
|
219
|
-
const activeTabData = this.props.Templates.BEETemplate.versions?.base?.[activeTab] || {};
|
|
220
|
-
const dragDropId = activeTabData.drag_drop_id
|
|
221
|
-
|| activeTabData.id
|
|
222
|
-
|| _.get(this.props.Templates.BEETemplate, 'versions.base.drag_drop_id')
|
|
223
|
-
|| _.get(this.props.Templates.BEETemplate, 'versions.base.id')
|
|
224
|
-
|| this.props.Templates.BEETemplate?._id;
|
|
225
|
-
this.props.actions.getCmsSetting(BEE_PLUGIN, dragDropId, 'open', undefined, isBEESupport, isBEEAppEnable);
|
|
215
|
+
this.props.actions.getCmsSetting(BEE_PLUGIN, _.get(this.props.Templates.BEETemplate, 'versions.base.drag_drop_id', this.props.Templates.BEETemplate?._id), 'open', undefined, isBEESupport, isBEEAppEnable);
|
|
226
216
|
} else if (this.props.location.query.module !== "library" || (this.props.location.query.module === "library" && !this.props.templateData)) {
|
|
227
|
-
|
|
228
|
-
const activeTab = this.props.Templates.BEETemplate.versions?.base?.activeTab || 'en';
|
|
229
|
-
const activeTabData = this.props.Templates.BEETemplate.versions?.base?.[activeTab] || {};
|
|
230
|
-
const dragDropId = activeTabData.drag_drop_id
|
|
231
|
-
|| activeTabData.id
|
|
232
|
-
|| _.get(this.props.Templates.BEETemplate, 'versions.base.drag_drop_id')
|
|
233
|
-
|| _.get(this.props.Templates.BEETemplate, 'versions.base.id')
|
|
234
|
-
|| this.props.Templates.BEETemplate?._id;
|
|
235
|
-
this.props.actions.getCmsSetting(BEE_PLUGIN, dragDropId, 'create', undefined, isBEESupport, isBEEAppEnable);
|
|
217
|
+
this.props.actions.getCmsSetting(BEE_PLUGIN, _.get(this.props.Templates.BEETemplate, 'versions.base.drag_drop_id', this.props.Templates.BEETemplate?._id), 'create', undefined, isBEESupport, isBEEAppEnable);
|
|
236
218
|
}
|
|
237
219
|
}
|
|
238
220
|
this.setState({ content: (this.props.Templates.selectedEmailLayout ? this.props.Templates.selectedEmailLayout : ''), formData});
|
|
@@ -255,52 +237,11 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
255
237
|
if (this.props.location.query.type === 'embedded') {
|
|
256
238
|
this.showNext();
|
|
257
239
|
}
|
|
258
|
-
|
|
259
|
-
// Check if BEETemplate was set after componentWillMount but before componentDidMount
|
|
260
|
-
// This can happen if BEETemplate is set asynchronously
|
|
261
|
-
if (!_.isEmpty(this.props.Templates.BEETemplate) && !this.state.isDragDrop) {
|
|
262
|
-
const isBEESupport = (this.props.location.query.isBEESupport !== "false") || false;
|
|
263
|
-
const isBEEAppEnable = this.checkBeeEditorAllowedForLibrary();
|
|
264
|
-
const beeTemplate = this.props.Templates.BEETemplate;
|
|
265
|
-
const activeTab = beeTemplate.versions?.base?.activeTab || 'en';
|
|
266
|
-
const activeTabData = beeTemplate.versions?.base?.[activeTab] || {};
|
|
267
|
-
const isDragDrop = activeTabData.is_drag_drop
|
|
268
|
-
|| beeTemplate.versions?.base?.is_drag_drop
|
|
269
|
-
|| beeTemplate.base?.is_drag_drop
|
|
270
|
-
|| beeTemplate.is_drag_drop;
|
|
271
|
-
|
|
272
|
-
if (isDragDrop && isBEEAppEnable) {
|
|
273
|
-
this.setState({isDragDrop: true});
|
|
274
|
-
|
|
275
|
-
const dragDropId = activeTabData.drag_drop_id
|
|
276
|
-
|| activeTabData.id
|
|
277
|
-
|| _.get(beeTemplate, 'versions.base.drag_drop_id')
|
|
278
|
-
|| _.get(beeTemplate, 'versions.base.id')
|
|
279
|
-
|| beeTemplate._id;
|
|
280
|
-
|
|
281
|
-
if (this.props.params.id) {
|
|
282
|
-
const activeTabForLang = beeTemplate.versions?.base?.activeTab || 'en';
|
|
283
|
-
this.props.actions.getCmsSetting(BEE_PLUGIN, dragDropId, 'open', activeTabForLang, isBEESupport, isBEEAppEnable);
|
|
284
|
-
} else {
|
|
285
|
-
this.props.actions.getCmsSetting(BEE_PLUGIN, dragDropId, 'create', undefined, isBEESupport, isBEEAppEnable);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
240
|
}
|
|
290
241
|
|
|
291
242
|
|
|
292
|
-
checkBeeEditorAllowedForLibrary = (
|
|
293
|
-
|
|
294
|
-
const componentProps = props || this.props;
|
|
295
|
-
const { isFullMode = false, editor, Email } = componentProps || {};
|
|
296
|
-
// IMPORTANT: For isBEEAppEnable API parameter, use API response if available
|
|
297
|
-
// This ensures consistent behavior across full mode and library mode
|
|
298
|
-
// The API response (Email.isBeeEnabled) represents the actual org setting
|
|
299
|
-
if (Email?.isBeeEnabled !== undefined && Email?.isBeeEnabled !== null) {
|
|
300
|
-
return Email.isBeeEnabled;
|
|
301
|
-
}
|
|
302
|
-
// Fallback to mode-based logic for UI purposes (editor selection, etc.)
|
|
303
|
-
// But for API calls, this should ideally use the API response
|
|
243
|
+
checkBeeEditorAllowedForLibrary = () => {
|
|
244
|
+
const { isFullMode = false, editor } = this.props || {};
|
|
304
245
|
if ((editor === "BEE" && !isFullMode) || isFullMode) {
|
|
305
246
|
return true;
|
|
306
247
|
}
|
|
@@ -401,61 +342,9 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
401
342
|
// this.props.globalActions.fetchSchemaForEntity(query);
|
|
402
343
|
// }
|
|
403
344
|
|
|
404
|
-
// Check if BEETemplate was just set (for new flow when template details load)
|
|
405
|
-
// This handles the case where BEETemplate is set after componentWillMount
|
|
406
|
-
const wasBEETemplateEmpty = _.isEmpty(this.props.Templates.BEETemplate);
|
|
407
|
-
const isBEETemplateNowSet = !_.isEmpty(nextProps.Templates.BEETemplate);
|
|
408
|
-
const isBEEAppEnable = this.checkBeeEditorAllowedForLibrary(nextProps);
|
|
409
|
-
const isBEESupport = (nextProps.location.query.isBEESupport !== "false") || false;
|
|
410
|
-
|
|
411
|
-
if (wasBEETemplateEmpty && isBEETemplateNowSet && isBEEAppEnable) {
|
|
412
|
-
const beeTemplate = nextProps.Templates.BEETemplate;
|
|
413
|
-
const isDragDrop = beeTemplate.versions?.base?.is_drag_drop
|
|
414
|
-
|| beeTemplate.versions?.base?.[beeTemplate.versions?.base?.activeTab || 'en']?.is_drag_drop
|
|
415
|
-
|| beeTemplate.base?.is_drag_drop
|
|
416
|
-
|| beeTemplate.is_drag_drop;
|
|
417
|
-
|
|
418
|
-
// Check if we're in edit mode - check multiple sources for id
|
|
419
|
-
const hasParamsId = nextProps.params?.id
|
|
420
|
-
|| nextProps.location?.query?.id
|
|
421
|
-
|| nextProps.location?.params?.id
|
|
422
|
-
|| (nextProps.location?.pathname && nextProps.location.pathname.includes('/edit/'));
|
|
423
|
-
|
|
424
|
-
if (isDragDrop) {
|
|
425
|
-
this.setState({isDragDrop: true});
|
|
426
|
-
|
|
427
|
-
// Extract drag_drop_id - check multiple possible paths
|
|
428
|
-
// Priority: versions.base[activeTab].drag_drop_id > versions.base[activeTab].id > versions.base.drag_drop_id > _id
|
|
429
|
-
const activeTab = beeTemplate.versions?.base?.activeTab || 'en';
|
|
430
|
-
const activeTabData = beeTemplate.versions?.base?.[activeTab] || {};
|
|
431
|
-
let dragDropId = activeTabData.drag_drop_id
|
|
432
|
-
|| activeTabData.id
|
|
433
|
-
|| beeTemplate.versions?.base?.drag_drop_id
|
|
434
|
-
|| beeTemplate.versions?.base?.id
|
|
435
|
-
|| beeTemplate.base?.drag_drop_id
|
|
436
|
-
|| beeTemplate.base?.id
|
|
437
|
-
|| beeTemplate._id;
|
|
438
|
-
|
|
439
|
-
// Call getCmsSetting for BEE template - use 'open' mode if in edit mode
|
|
440
|
-
// Extract langId from active tab
|
|
441
|
-
const activeTabForLang = beeTemplate.versions?.base?.activeTab || 'en';
|
|
442
|
-
if (hasParamsId) {
|
|
443
|
-
this.props.actions.getCmsSetting(BEE_PLUGIN, dragDropId, 'open', activeTabForLang, isBEESupport, isBEEAppEnable);
|
|
444
|
-
} else if (nextProps.location.query.module !== "library" || (nextProps.location.query.module === "library" && !nextProps.templateData)) {
|
|
445
|
-
this.props.actions.getCmsSetting(BEE_PLUGIN, dragDropId, 'create', undefined, isBEESupport, isBEEAppEnable);
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
|
|
450
345
|
if (this.state.isEdit && !this.state.editDataSet && !_.isEmpty(nextProps.Email.templateDetails) && !_.isEmpty(this.state.schema)) {
|
|
451
346
|
this.setState({editDataSet: true}, () => {
|
|
452
347
|
this.setEditData(nextProps.Email.templateDetails);
|
|
453
|
-
// Update template name in parent if available
|
|
454
|
-
if (this.props.isFullMode && this.props.showTemplateName && nextProps.Email.templateDetails.name) {
|
|
455
|
-
const formData = this.state.formData;
|
|
456
|
-
formData['template-name'] = nextProps.Email.templateDetails.name;
|
|
457
|
-
this.props.showTemplateName({formData, onFormDataChange: this.onFormDataChange});
|
|
458
|
-
}
|
|
459
348
|
});
|
|
460
349
|
}
|
|
461
350
|
if (this.state.isEdit && nextProps.location.query.module === "library" && !_.isEmpty(nextProps.templateData) && !this.props.params.id && !nextProps.isGetFormData && _.isEmpty(_.get(this, `state.formData['template-subject']`))) {
|
|
@@ -494,7 +383,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
494
383
|
const formData = _.cloneDeep(this.state.formData);
|
|
495
384
|
|
|
496
385
|
const schema = _.cloneDeep(this.state.schema);
|
|
497
|
-
const langIndex = formData[this.state.currentTab - 1]
|
|
386
|
+
const langIndex = formData[this.state.currentTab - 1].selectedLanguages.indexOf(langId);
|
|
498
387
|
|
|
499
388
|
const temp = (schema.containers || {})[this.state.currentTab - 1];
|
|
500
389
|
|
|
@@ -502,91 +391,32 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
502
391
|
if (nextProps.Email.CmsSettings.isDragDrop && this.checkBeeEditorAllowedForLibrary()) {
|
|
503
392
|
const beeJson = `BEEeditor${currentTab > 1 ? currentTab : ''}json`;
|
|
504
393
|
const beeToken = `BEEeditor${currentTab > 1 ? currentTab : ''}token`;
|
|
505
|
-
let beeJsonValue = '';
|
|
394
|
+
let beeJsonValue = _.get(nextProps, 'Templates.BEETemplate.versions.base.json-content', '');
|
|
506
395
|
const selectedId = _.get(this.props, 'Email.templateDetails._id', '') || _.get(this.props, 'Templates.BEETemplate.versions.base.drag_drop_id', '');
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
// Also check formData.base
|
|
513
|
-
if (!beeJsonValue) {
|
|
514
|
-
beeJsonValue = _.get(this.state, `formData.base[${langId}].json-content`, '');
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
// Always check templateDetails and BEETemplate regardless of mode
|
|
518
|
-
if (!beeJsonValue) {
|
|
519
|
-
// Check Email.templateDetails first
|
|
520
|
-
const templateDetails = nextProps.Email.templateDetails;
|
|
521
|
-
if (templateDetails && templateDetails.versions && templateDetails.versions.base) {
|
|
522
|
-
const baseVersion = templateDetails.versions.base;
|
|
523
|
-
// Try language-specific path first (e.g., base.en.json-content)
|
|
524
|
-
if (baseVersion[langId] && baseVersion[langId]['json-content']) {
|
|
525
|
-
beeJsonValue = baseVersion[langId]['json-content'];
|
|
526
|
-
} else if (baseVersion['json-content']) {
|
|
527
|
-
// Fallback to base-level json-content
|
|
528
|
-
beeJsonValue = baseVersion['json-content'];
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
// If still not found, check BEETemplate
|
|
533
|
-
if (!beeJsonValue) {
|
|
534
|
-
const beeTemplate = nextProps.Templates.BEETemplate;
|
|
535
|
-
if (beeTemplate && beeTemplate.versions && beeTemplate.versions.base) {
|
|
536
|
-
const beeBase = beeTemplate.versions.base;
|
|
537
|
-
if (beeBase[langId] && beeBase[langId]['json-content']) {
|
|
538
|
-
beeJsonValue = beeBase[langId]['json-content'];
|
|
539
|
-
} else if (beeBase['json-content']) {
|
|
540
|
-
beeJsonValue = beeBase['json-content'];
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
}
|
|
545
|
-
// Ensure we have a valid beeJsonValue - if it's a string, try to parse it to verify it's valid JSON
|
|
546
|
-
let finalBeeJsonValue = beeJsonValue;
|
|
547
|
-
if (beeJsonValue && typeof beeJsonValue === 'string') {
|
|
548
|
-
try {
|
|
549
|
-
// Try to parse to verify it's valid JSON
|
|
550
|
-
JSON.parse(beeJsonValue);
|
|
551
|
-
} catch (e) {
|
|
552
|
-
console.warn('[Email] componentWillReceiveProps - beeJsonValue is not valid JSON, using as-is:', e);
|
|
396
|
+
if (this.state.isEdit) {
|
|
397
|
+
if (this.props.location.query.module === "library") {
|
|
398
|
+
beeJsonValue = _.get(this.state, `formData[${currentTab - 1}][${langId}].json-content`, '');
|
|
399
|
+
} else {
|
|
400
|
+
beeJsonValue = _.get(nextProps, `Email.templateDetails.versions.base[${langId}].json-content`, '');
|
|
553
401
|
}
|
|
554
402
|
}
|
|
555
|
-
|
|
556
|
-
// Preserve existing formData values, especially template-subject
|
|
557
|
-
const existingFormData = formData[`${currentTab - 1}`][langId] || {};
|
|
558
403
|
formData[`${currentTab - 1}`][langId] = {
|
|
559
|
-
...
|
|
404
|
+
...formData[`${currentTab - 1}`][langId],
|
|
560
405
|
is_drag_drop: true,
|
|
561
|
-
[beeJson]:
|
|
406
|
+
[beeJson]: beeJsonValue,
|
|
562
407
|
[beeToken]: nextProps.Email.CmsSettings.tokenData,
|
|
563
408
|
id: selectedId,
|
|
564
|
-
// Also store json-content for reference
|
|
565
|
-
'json-content': finalBeeJsonValue,
|
|
566
409
|
};
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
if (subjectFromEditData) {
|
|
572
|
-
formData['template-subject'] = subjectFromEditData;
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
if (langIndex !== undefined && langIndex !== -1 && temp && temp.panes) {
|
|
577
|
-
_.forEach(temp.panes, (pane, index) => {
|
|
578
|
-
const tempPane = pane;
|
|
410
|
+
_.forEach(temp.panes, (pane, index) => {
|
|
411
|
+
const tempPane = pane;
|
|
412
|
+
//
|
|
413
|
+
if (parseInt(index, 10) === parseInt(langIndex, 10)) {
|
|
579
414
|
//
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
});
|
|
588
|
-
}
|
|
589
|
-
this.setState({schema, isSchemaChanged: true, loadingStatus: this.state.loadingStatus + 1, formData});
|
|
415
|
+
tempPane.sections[0].inputFields[0].cols[1].colStyle = {display: ""};
|
|
416
|
+
tempPane.sections[0].inputFields[0].cols[0].colStyle = {display: "none"};
|
|
417
|
+
}
|
|
418
|
+
});
|
|
419
|
+
this.setState({schema, isSchemaChanged: true, loadingStatus: this.state.loadingStatus + 1});
|
|
590
420
|
} else {
|
|
591
421
|
_.forEach(temp.panes, (pane, index) => {
|
|
592
422
|
const tempPane = pane;
|
|
@@ -883,18 +713,8 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
883
713
|
const msgString = JSON.stringify(msg);
|
|
884
714
|
const langId = formData[this.state.currentTab - 1].activeTab;
|
|
885
715
|
const langIndex = formData[this.state.currentTab - 1].selectedLanguages.indexOf(langId);
|
|
886
|
-
const
|
|
887
|
-
|
|
888
|
-
try {
|
|
889
|
-
const win = elementToSelect.contentWindow;
|
|
890
|
-
if (win) {
|
|
891
|
-
win.postMessage(msgString, '*');
|
|
892
|
-
}
|
|
893
|
-
} catch (error) {
|
|
894
|
-
// Handle cross-origin frame access errors
|
|
895
|
-
console.warn('Failed to access iframe contentWindow (cross-origin restriction):', error);
|
|
896
|
-
}
|
|
897
|
-
}
|
|
716
|
+
const win = document.getElementById(`edmeditor${(langIndex + 1) > 1 ? (langIndex + 1) : ''}`).contentWindow;
|
|
717
|
+
win.postMessage(msgString, '*');
|
|
898
718
|
} else if (data === "unsubscribe" && this.state.editorInstanse) {
|
|
899
719
|
const anchor = `<a href='{{${data}}}'>${data}</a>`;
|
|
900
720
|
this.state.editorInstanse.insertHtml(`${anchor}`);
|
|
@@ -1077,11 +897,6 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1077
897
|
const isBEESupport = (this.props.location.query.isBEESupport !== "false") || false;
|
|
1078
898
|
const formData = _.cloneDeep(this.state.formData);
|
|
1079
899
|
|
|
1080
|
-
// Set template name from editData if available
|
|
1081
|
-
if (editData.name) {
|
|
1082
|
-
formData['template-name'] = editData.name;
|
|
1083
|
-
}
|
|
1084
|
-
|
|
1085
900
|
const schema = (this.props.location.query.type === 'embedded') ? this.removeStandAlone(this.state.schema) : _.cloneDeep(this.state.schema);
|
|
1086
901
|
const containers = _.cloneDeep(schema.containers.slice());
|
|
1087
902
|
let tabKey = "";
|
|
@@ -1090,8 +905,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1090
905
|
const type = this.props.location.query.type;
|
|
1091
906
|
|
|
1092
907
|
formData['template-name'] = editData.name;
|
|
1093
|
-
|
|
1094
|
-
formData['template-subject'] = subject;
|
|
908
|
+
formData['template-subject'] = _.get(editData, 'versions.base.subject');
|
|
1095
909
|
formData.base = editData.versions.base;
|
|
1096
910
|
|
|
1097
911
|
_.forEach(editData.versions.history, (data1, index) => {
|
|
@@ -1172,13 +986,8 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1172
986
|
|
|
1173
987
|
|
|
1174
988
|
this.setState({ formData, schema, tabKey, currentTab, tabCount: editData.versions.history.length, loadingStatus: this.state.loadingStatus + 1 }, () => {
|
|
1175
|
-
if (this.props.isFullMode
|
|
1176
|
-
|
|
1177
|
-
const updatedFormData = _.cloneDeep(formData);
|
|
1178
|
-
if (editData.name && !updatedFormData['template-name']) {
|
|
1179
|
-
updatedFormData['template-name'] = editData.name;
|
|
1180
|
-
}
|
|
1181
|
-
this.props.showTemplateName({formData: updatedFormData, onFormDataChange: this.onFormDataChange});
|
|
989
|
+
if (this.props.isFullMode) {
|
|
990
|
+
this.props.showTemplateName({formData, onFormDataChange: this.onFormDataChange});
|
|
1182
991
|
}
|
|
1183
992
|
const isBEEAppEnable = this.checkBeeEditorAllowedForLibrary();
|
|
1184
993
|
_.forEach((editData.versions.base.selectedLanguages), (language) => {
|
|
@@ -2854,7 +2663,6 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2854
2663
|
getTemplateDetailsInProgress,
|
|
2855
2664
|
assetUploading,
|
|
2856
2665
|
createTemplateInProgress,
|
|
2857
|
-
fetchingCmsSettings,
|
|
2858
2666
|
} = this.props.Email;
|
|
2859
2667
|
let isLoading =
|
|
2860
2668
|
isLoadingMetaEntities ||
|
|
@@ -2863,7 +2671,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2863
2671
|
) || (
|
|
2864
2672
|
assetUploading !== undefined && assetUploading
|
|
2865
2673
|
) || (
|
|
2866
|
-
Email && (fetchingCmsData || getTemplateDetailsInProgress
|
|
2674
|
+
Email && (fetchingCmsData || getTemplateDetailsInProgress)
|
|
2867
2675
|
);
|
|
2868
2676
|
|
|
2869
2677
|
if (!isLoading) {
|
|
@@ -3185,19 +2993,6 @@ function mapDispatchToProps(dispatch) {
|
|
|
3185
2993
|
const withReducer = injectReducer({ key: 'email', reducer: v2EmailReducer });
|
|
3186
2994
|
const withEmailSaga = injectSaga({ key: 'email', saga: v2EmailSagas });
|
|
3187
2995
|
|
|
3188
|
-
// Base Email component without saga registration (for use from EmailWrapper)
|
|
3189
|
-
// EmailWrapper already registers the saga, so we don't need to register it here
|
|
3190
|
-
export const EmailWithoutSaga = withCreatives({
|
|
3191
|
-
WrappedComponent: Email,
|
|
3192
|
-
mapStateToProps,
|
|
3193
|
-
mapDispatchToProps,
|
|
3194
|
-
userAuth: true,
|
|
3195
|
-
sagas: [], // No saga - EmailWrapper registers it
|
|
3196
|
-
reducers: [withReducer],
|
|
3197
|
-
});
|
|
3198
|
-
|
|
3199
|
-
// Email component with saga registration (for direct use from SlideBoxContent in Edit mode)
|
|
3200
|
-
// When Email is used directly (not as child of EmailWrapper), it needs to register the saga
|
|
3201
2996
|
export default withCreatives({
|
|
3202
2997
|
WrappedComponent: Email,
|
|
3203
2998
|
mapStateToProps,
|