@capillarytech/creatives-library 8.0.255-alpha.4 → 8.0.255
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 +2 -2
- package/initialReducer.js +2 -0
- package/package.json +1 -1
- package/services/api.js +10 -5
- package/services/tests/api.test.js +34 -0
- package/translations/en.json +3 -4
- package/utils/common.js +5 -6
- package/utils/commonUtils.js +28 -5
- package/utils/tests/commonUtil.test.js +224 -0
- package/utils/tests/transformerUtils.test.js +0 -297
- package/utils/transformTemplateConfig.js +0 -10
- package/utils/transformerUtils.js +0 -40
- package/v2Components/CapDeviceContent/index.js +61 -56
- 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 +6 -1
- package/v2Components/CapTagListWithInput/index.js +5 -1
- package/v2Components/CapTagListWithInput/messages.js +1 -1
- package/v2Components/CapWhatsappCTA/tests/index.test.js +5 -0
- package/v2Components/ErrorInfoNote/constants.js +1 -0
- package/v2Components/ErrorInfoNote/index.js +457 -72
- package/v2Components/ErrorInfoNote/messages.js +36 -6
- package/v2Components/ErrorInfoNote/style.scss +282 -6
- package/v2Components/FormBuilder/tests/index.test.js +13 -4
- package/v2Components/HtmlEditor/HTMLEditor.js +547 -94
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +874 -0
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +1441 -133
- package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +27 -16
- package/v2Components/HtmlEditor/_htmlEditor.scss +108 -45
- package/v2Components/HtmlEditor/_index.lazy.scss +0 -1
- package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +23 -102
- package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +148 -140
- package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +2 -1
- package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
- package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +9 -0
- package/v2Components/HtmlEditor/components/EditorToolbar/index.js +4 -4
- package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +22 -0
- package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +4 -7
- package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +35 -45
- package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +1 -3
- package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
- package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +7 -6
- package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +3 -6
- package/v2Components/HtmlEditor/components/PreviewPane/index.js +22 -43
- package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/_validationErrorDisplay.scss +1 -0
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +49 -31
- package/v2Components/HtmlEditor/components/ValidationPanel/_validationPanel.scss +50 -34
- package/v2Components/HtmlEditor/components/ValidationPanel/constants.js +6 -0
- package/v2Components/HtmlEditor/components/ValidationPanel/index.js +70 -41
- package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +255 -0
- package/v2Components/HtmlEditor/components/ValidationTabs/index.js +364 -0
- package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +51 -0
- package/v2Components/HtmlEditor/constants.js +42 -20
- package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +373 -16
- package/v2Components/HtmlEditor/hooks/__tests__/useValidation.test.js +103 -0
- package/v2Components/HtmlEditor/hooks/useEditorContent.js +5 -2
- package/v2Components/HtmlEditor/hooks/useInAppContent.js +88 -146
- package/v2Components/HtmlEditor/hooks/useValidation.js +189 -53
- package/v2Components/HtmlEditor/index.js +1 -1
- package/v2Components/HtmlEditor/messages.js +92 -94
- package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +94 -45
- package/v2Components/HtmlEditor/utils/__tests__/validationAdapter.test.js +134 -0
- package/v2Components/HtmlEditor/utils/contentSanitizer.js +40 -41
- package/v2Components/HtmlEditor/utils/htmlValidator.js +71 -72
- package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +134 -102
- package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +23 -25
- package/v2Components/HtmlEditor/utils/validationAdapter.js +66 -41
- package/v2Components/HtmlEditor/utils/validationConstants.js +40 -0
- package/v2Components/MobilePushPreviewV2/index.js +32 -7
- package/v2Components/TemplatePreview/_templatePreview.scss +55 -24
- package/v2Components/TemplatePreview/index.js +47 -32
- package/v2Components/TemplatePreview/messages.js +4 -0
- package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +1 -0
- package/v2Containers/App/constants.js +0 -5
- package/v2Containers/BeeEditor/index.js +172 -90
- package/v2Containers/BeePopupEditor/_beePopupEditor.scss +14 -0
- package/v2Containers/BeePopupEditor/constants.js +10 -0
- package/v2Containers/BeePopupEditor/index.js +194 -0
- package/v2Containers/BeePopupEditor/tests/index.test.js +627 -0
- package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +3 -4
- package/v2Containers/CreativesContainer/SlideBoxContent.js +129 -107
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +163 -13
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -2
- package/v2Containers/CreativesContainer/constants.js +1 -3
- package/v2Containers/CreativesContainer/index.js +239 -214
- package/v2Containers/CreativesContainer/messages.js +8 -4
- package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +0 -210
- package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +11 -2
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +38 -354
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +106 -0
- package/v2Containers/Email/actions.js +7 -0
- package/v2Containers/Email/constants.js +5 -1
- package/v2Containers/Email/index.js +234 -29
- package/v2Containers/Email/messages.js +32 -0
- package/v2Containers/Email/reducer.js +12 -1
- package/v2Containers/Email/sagas.js +61 -7
- package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +2 -0
- package/v2Containers/Email/tests/reducer.test.js +46 -0
- package/v2Containers/Email/tests/sagas.test.js +320 -29
- package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +1285 -0
- package/v2Containers/EmailWrapper/components/EmailWrapperView.js +211 -21
- package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +40 -74
- package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +1880 -0
- package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +520 -0
- package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +2 -67
- package/v2Containers/EmailWrapper/constants.js +2 -0
- package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +629 -77
- package/v2Containers/EmailWrapper/index.js +103 -23
- package/v2Containers/EmailWrapper/messages.js +65 -1
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +643 -0
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +594 -77
- package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +376 -0
- package/v2Containers/InApp/__tests__/sagas.test.js +363 -0
- package/v2Containers/InApp/actions.js +7 -0
- package/v2Containers/InApp/constants.js +20 -4
- package/v2Containers/InApp/index.js +802 -359
- package/v2Containers/InApp/index.scss +4 -3
- package/v2Containers/InApp/messages.js +7 -3
- package/v2Containers/InApp/reducer.js +21 -3
- package/v2Containers/InApp/sagas.js +29 -9
- package/v2Containers/InApp/selectors.js +25 -5
- package/v2Containers/InApp/tests/index.test.js +154 -50
- package/v2Containers/InApp/tests/reducer.test.js +34 -0
- package/v2Containers/InApp/tests/sagas.test.js +61 -9
- package/v2Containers/InApp/tests/selectors.test.js +612 -0
- package/v2Containers/InAppWrapper/components/InAppWrapperView.js +151 -0
- package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +267 -0
- package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +23 -0
- package/v2Containers/InAppWrapper/constants.js +16 -0
- package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +473 -0
- package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +198 -0
- package/v2Containers/InAppWrapper/index.js +148 -0
- package/v2Containers/InAppWrapper/messages.js +49 -0
- package/v2Containers/InappAdvance/index.js +1099 -0
- package/v2Containers/InappAdvance/index.scss +10 -0
- package/v2Containers/InappAdvance/tests/index.test.js +448 -0
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +15 -36
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +8 -8
- package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +77 -100
- package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +63 -72
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +190 -250
- package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +12 -16
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +40 -48
- package/v2Containers/TagList/index.js +62 -19
- package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
- package/v2Containers/Templates/_templates.scss +56 -202
- package/v2Containers/Templates/actions.js +1 -2
- package/v2Containers/Templates/constants.js +0 -1
- package/v2Containers/Templates/index.js +123 -278
- package/v2Containers/Templates/messages.js +4 -24
- package/v2Containers/Templates/reducer.js +0 -2
- 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 +768 -1272
- 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/components/ValidationErrorDisplay/__tests__/index.test.js +0 -152
- package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +0 -214
- 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 -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
|
@@ -40,6 +40,7 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
40
40
|
tags: [],
|
|
41
41
|
tagsError: false,
|
|
42
42
|
currentContext: null, // Track current context to detect changes
|
|
43
|
+
hasTriggeredInitialApiCall: false, // Track if we've triggered API call when popover opens
|
|
43
44
|
};
|
|
44
45
|
this.renderTags = this.renderTags.bind(this);
|
|
45
46
|
this.populateTags = this.populateTags.bind(this);
|
|
@@ -51,6 +52,14 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
51
52
|
|
|
52
53
|
componentDidMount() {
|
|
53
54
|
this.generateTags(this.props);
|
|
55
|
+
// Trigger initial API call if tags are empty (similar to Email/SMS behavior)
|
|
56
|
+
const { tags, injectedTags, onContextChange } = this.props;
|
|
57
|
+
const hasNoTags = (!tags || tags.length === 0) && _.isEmpty(injectedTags);
|
|
58
|
+
if (hasNoTags && onContextChange) {
|
|
59
|
+
// Trigger API call with default 'Outbound' context to match CapTagList default
|
|
60
|
+
// This ensures tags are loaded when component mounts
|
|
61
|
+
this.getTagsforContext('Outbound');
|
|
62
|
+
}
|
|
54
63
|
}
|
|
55
64
|
|
|
56
65
|
componentWillReceiveProps(nextProps) {
|
|
@@ -59,23 +68,27 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
59
68
|
// 2. Context change is happening (detected by different tag arrays)
|
|
60
69
|
const { injectedTags: currentInjectedTags, tags: currentTags } = this.props;
|
|
61
70
|
const { injectedTags: nextInjectedTags, tags: nextTags, fetchingSchemaError } = nextProps;
|
|
62
|
-
|
|
71
|
+
|
|
63
72
|
const isInitialLoad = _.isEmpty(currentInjectedTags) && _.isEmpty(currentTags);
|
|
64
73
|
const isContextChange = !_.isEqual(nextTags, currentTags) && !_.isEmpty(currentTags);
|
|
65
|
-
|
|
74
|
+
|
|
66
75
|
if (isInitialLoad || isContextChange) {
|
|
67
76
|
this.setState({loading: true});
|
|
68
77
|
}
|
|
69
|
-
|
|
78
|
+
|
|
70
79
|
// Only reset loading for injectedTags changes if we're not currently loading due to context change
|
|
71
80
|
if (!_.isEqual(nextInjectedTags, currentInjectedTags) && !this.state.loading) {
|
|
72
81
|
this.setState({loading: false});
|
|
73
82
|
this.clearLoadingTimeout();
|
|
74
83
|
}
|
|
75
|
-
|
|
84
|
+
|
|
76
85
|
if (!_.isEqual(nextTags, currentTags)) {
|
|
77
86
|
this.setState({loading: false});
|
|
78
87
|
this.clearLoadingTimeout();
|
|
88
|
+
// Reset the flag when tags are received, so we can trigger API call again if needed
|
|
89
|
+
if (nextTags && nextTags.length > 0) {
|
|
90
|
+
this.setState({ hasTriggeredInitialApiCall: false });
|
|
91
|
+
}
|
|
79
92
|
}
|
|
80
93
|
if (fetchingSchemaError) {
|
|
81
94
|
this.setState({tagsError: fetchingSchemaError, loading: false});
|
|
@@ -86,7 +99,7 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
86
99
|
componentDidUpdate(prevProps) {
|
|
87
100
|
const { tags, injectedTags, selectedOfferDetails } = this.props;
|
|
88
101
|
const { tags: prevTags, injectedTags: prevInjectedTags, selectedOfferDetails: prevSelectedOfferDetails } = prevProps;
|
|
89
|
-
|
|
102
|
+
|
|
90
103
|
if (tags !== prevTags || injectedTags !== prevInjectedTags || selectedOfferDetails !== prevSelectedOfferDetails) {
|
|
91
104
|
this.generateTags(this.props);
|
|
92
105
|
}
|
|
@@ -111,17 +124,44 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
111
124
|
getTagsforContext = (data) => {
|
|
112
125
|
// Set loading state when context change is requested
|
|
113
126
|
this.setState({loading: true, currentContext: data});
|
|
114
|
-
|
|
127
|
+
|
|
115
128
|
// Set a timeout to prevent infinite loading (fallback safety)
|
|
116
129
|
this.clearLoadingTimeout();
|
|
117
130
|
this.loadingTimeout = setTimeout(() => {
|
|
118
131
|
this.setState({loading: false});
|
|
119
132
|
}, 5000); // Reduced timeout to 5 seconds for better UX
|
|
120
|
-
|
|
133
|
+
|
|
121
134
|
const { onContextChange } = this.props;
|
|
122
|
-
onContextChange
|
|
135
|
+
// Always call onContextChange if available - this triggers the API call
|
|
136
|
+
// The API call will fetch tags from /meta/TAG endpoint
|
|
137
|
+
if (onContextChange) {
|
|
138
|
+
onContextChange(data);
|
|
139
|
+
} else {
|
|
140
|
+
console.warn('TagList: onContextChange is not available. API call will not be triggered.');
|
|
141
|
+
}
|
|
123
142
|
}
|
|
124
143
|
|
|
144
|
+
handlePopoverVisibilityChange = (visible) => {
|
|
145
|
+
// When popover opens, trigger API call if tags are empty or if we haven't triggered it yet
|
|
146
|
+
// This ensures API call happens when user clicks "Add Label" button
|
|
147
|
+
if (visible && this.props.onContextChange) {
|
|
148
|
+
const { tags, injectedTags } = this.props;
|
|
149
|
+
// Check if tags array is empty or if state tags are empty
|
|
150
|
+
const hasNoTags = (!tags || tags.length === 0) && _.isEmpty(injectedTags);
|
|
151
|
+
const hasNoStateTags = _.isEmpty(this.state.tags);
|
|
152
|
+
const hasNotTriggeredApiCall = !this.state.hasTriggeredInitialApiCall;
|
|
153
|
+
|
|
154
|
+
// Trigger API call if tags are not loaded yet OR if we haven't triggered it yet
|
|
155
|
+
if ((hasNoTags || hasNoStateTags || hasNotTriggeredApiCall)) {
|
|
156
|
+
// Mark that we've triggered the API call
|
|
157
|
+
this.setState({ hasTriggeredInitialApiCall: true });
|
|
158
|
+
// Trigger API call with default 'Outbound' context to match CapTagList default
|
|
159
|
+
// This will call onContextChange which triggers handleOnTagsContextChange in InApp
|
|
160
|
+
this.getTagsforContext('Outbound');
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
|
|
125
165
|
generateTags = (props) => {
|
|
126
166
|
let tags = {};
|
|
127
167
|
let injectedTags = {};
|
|
@@ -149,11 +189,11 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
149
189
|
if (eventContextTags?.length) {
|
|
150
190
|
const TAG_HEADER_MSG_LABEL = this.props.intl.formatMessage(messages.entryEvent);
|
|
151
191
|
eventContextTagsObj.eventContextTags = {
|
|
152
|
-
name: TAG_HEADER_MSG_LABEL,
|
|
153
|
-
desc: TAG_HEADER_MSG_LABEL,
|
|
154
|
-
resolved: true,
|
|
192
|
+
"name": TAG_HEADER_MSG_LABEL,
|
|
193
|
+
"desc": TAG_HEADER_MSG_LABEL,
|
|
194
|
+
"resolved": true,
|
|
155
195
|
'tag-header': true,
|
|
156
|
-
subtags: {},
|
|
196
|
+
"subtags": {},
|
|
157
197
|
};
|
|
158
198
|
|
|
159
199
|
eventContextTags.forEach((tag) => {
|
|
@@ -164,11 +204,11 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
164
204
|
// Initializing the tags profile if it doesn't exist
|
|
165
205
|
if (!eventContextTagsObj?.eventContextTags?.subtags?.[profileId]) {
|
|
166
206
|
eventContextTagsObj.eventContextTags.subtags[profileId] = {
|
|
167
|
-
name: profileName,
|
|
168
|
-
desc: profileName,
|
|
169
|
-
resolved: true,
|
|
207
|
+
"name": profileName,
|
|
208
|
+
"desc": profileName,
|
|
209
|
+
"resolved": true,
|
|
170
210
|
'tag-header': true,
|
|
171
|
-
subtags: {},
|
|
211
|
+
"subtags": {},
|
|
172
212
|
};
|
|
173
213
|
}
|
|
174
214
|
// Adding the current tag to the profile group
|
|
@@ -201,7 +241,7 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
201
241
|
_.forEach(tagsList, (temp) => {
|
|
202
242
|
const tag = temp.definition;
|
|
203
243
|
const { intl } = this.props;
|
|
204
|
-
|
|
244
|
+
const { locale: userLocale } = intl || {};
|
|
205
245
|
|
|
206
246
|
// Check if the tag.value should be skipped based on feature control
|
|
207
247
|
if (_.includes(excludedTags, tag.value)) {
|
|
@@ -209,8 +249,8 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
209
249
|
}
|
|
210
250
|
if (!tag['tag-header']) {
|
|
211
251
|
mainTags[tag.value] = {
|
|
212
|
-
|
|
213
|
-
|
|
252
|
+
name: tag?.label[userLocale] ? tag?.label[userLocale] : tag?.label?.en,
|
|
253
|
+
desc: tag?.label[userLocale] ? tag?.label[userLocale] : tag?.label?.en,
|
|
214
254
|
};
|
|
215
255
|
} else if (tag['tag-header'] && mainTags[tag.value]) {
|
|
216
256
|
mainTags[tag.value].subtags = _.concat(mainTags[tag.value].subtags, tag.subtags);
|
|
@@ -366,12 +406,14 @@ export class TagList extends React.Component { // eslint-disable-line react/pref
|
|
|
366
406
|
visibleTaglist={this.props.visibleTaglist}
|
|
367
407
|
hidePopover={this.props.hidePopover}
|
|
368
408
|
onContextChange={this.getTagsforContext}
|
|
409
|
+
onVisibleChange={this.handlePopoverVisibilityChange}
|
|
369
410
|
moduleFilterEnabled={this.props.moduleFilterEnabled}
|
|
370
411
|
modalProps={this.props.modalProps}
|
|
371
412
|
currentOrgDetails={this.props.currentOrgDetails}
|
|
372
413
|
channel={this.props.channel}
|
|
373
414
|
disabled={this.props.disabled}
|
|
374
415
|
fetchingSchemaError={this?.state?.tagsError}
|
|
416
|
+
popoverPlacement={this.props.popoverPlacement}
|
|
375
417
|
/>
|
|
376
418
|
</div>
|
|
377
419
|
);
|
|
@@ -402,6 +444,7 @@ TagList.propTypes = {
|
|
|
402
444
|
disabled: PropTypes.bool,
|
|
403
445
|
fetchingSchemaError: PropTypes.bool,
|
|
404
446
|
eventContextTags: PropTypes.array,
|
|
447
|
+
popoverPlacement: PropTypes.string,
|
|
405
448
|
intl: PropTypes.shape({
|
|
406
449
|
formatMessage: PropTypes.func.isRequired,
|
|
407
450
|
locale: PropTypes.string,
|
|
@@ -14,7 +14,7 @@ import inAppIllustration from '@capillarytech/cap-ui-library/assets/images/featu
|
|
|
14
14
|
import messages from './messages';
|
|
15
15
|
import { FormattedMessage } from 'react-intl';
|
|
16
16
|
import { CapIllustration } from "@capillarytech/cap-ui-library";
|
|
17
|
-
import { MOBILE_PUSH, SMS, EMAIL, LINE, VIBER, FACEBOOK, WHATSAPP, RCS, ZALO, INAPP
|
|
17
|
+
import { MOBILE_PUSH, SMS, EMAIL, LINE, VIBER, FACEBOOK, WHATSAPP, RCS, ZALO, INAPP } from '../CreativesContainer/constants';
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
// Configuration object for channel types
|
|
@@ -133,18 +133,6 @@ function ChannelTypeIllustration(props) {
|
|
|
133
133
|
};
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
if (type === WEBPUSH) {
|
|
137
|
-
return {
|
|
138
|
-
buttonLabel: <FormattedMessage {...messages.newWebPushTemplate} values={{ template: templateText }} />,
|
|
139
|
-
onClick: createTemplate,
|
|
140
|
-
illustrationImage: pushIllustration,
|
|
141
|
-
title: <FormattedMessage {...messages.webPushTitleIllustration} values={{ template: templateText }} />,
|
|
142
|
-
description: <FormattedMessage {...messages.webPushDescIllustration} />,
|
|
143
|
-
descriptionPosition: 'bottom',
|
|
144
|
-
descriptionClassName: 'illustration-desc',
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
|
|
148
136
|
// Handle standard channels using configuration
|
|
149
137
|
const config = CHANNEL_CONFIG[type];
|
|
150
138
|
if (!config) {
|
|
@@ -133,20 +133,17 @@
|
|
|
133
133
|
.ant-card-meta-description{
|
|
134
134
|
display: -webkit-box;
|
|
135
135
|
-webkit-line-clamp: 13;
|
|
136
|
-
line-clamp: 13;
|
|
137
136
|
-webkit-box-orient: vertical;
|
|
138
137
|
}
|
|
139
138
|
}
|
|
140
139
|
.truncate-text-with-button{
|
|
141
140
|
.ant-card-meta-description{
|
|
142
141
|
-webkit-line-clamp: 13;
|
|
143
|
-
line-clamp: 13;
|
|
144
142
|
}
|
|
145
143
|
}
|
|
146
144
|
.truncate-text-with-image{
|
|
147
145
|
.ant-card-meta-description{
|
|
148
146
|
-webkit-line-clamp: 3;
|
|
149
|
-
line-clamp: 3;
|
|
150
147
|
}
|
|
151
148
|
}
|
|
152
149
|
|
|
@@ -316,72 +313,63 @@
|
|
|
316
313
|
}
|
|
317
314
|
}
|
|
318
315
|
}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
.ant-card-body {
|
|
324
|
-
height: 19rem;
|
|
325
|
-
padding: $CAP_SPACE_16;
|
|
326
|
-
overflow: hidden;
|
|
327
|
-
|
|
328
|
-
.ant-card-meta {
|
|
329
|
-
height: 100%;
|
|
330
|
-
|
|
331
|
-
.ant-card-meta-description {
|
|
332
|
-
height: 100%;
|
|
333
|
-
display: flex;
|
|
334
|
-
flex-direction: column;
|
|
335
|
-
|
|
336
|
-
.sms-template-content.webpush-template-content {
|
|
337
|
-
height: 100%;
|
|
338
|
-
overflow: hidden;
|
|
339
|
-
|
|
340
|
-
.webpush-template-card {
|
|
341
|
-
height: 100%;
|
|
342
|
-
overflow: hidden;
|
|
343
|
-
|
|
344
|
-
.webpush-template-meta {
|
|
345
|
-
flex-shrink: 0;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
.webpush-template-text {
|
|
349
|
-
flex: 1;
|
|
350
|
-
min-height: 0;
|
|
351
|
-
overflow: hidden;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
.webpush-media-image {
|
|
355
|
-
max-height: 7.142rem;
|
|
356
|
-
flex-shrink: 0;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
.webpush-template-cta-section {
|
|
360
|
-
flex-shrink: 0;
|
|
361
|
-
margin-top: $CAP_SPACE_08;
|
|
362
|
-
padding-top: $CAP_SPACE_08;
|
|
363
|
-
border-top: 1px solid $CAP_G07;
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
}
|
|
316
|
+
.INAPP {
|
|
317
|
+
margin-bottom: $CAP_SPACE_12;
|
|
318
|
+
.inapp-container {
|
|
319
|
+
margin-top: $CAP_SPACE_24;
|
|
369
320
|
}
|
|
321
|
+
// Modal Layout - centered
|
|
322
|
+
.inapp-modal-layout {
|
|
323
|
+
position: absolute;
|
|
324
|
+
display: flex;
|
|
325
|
+
width: 12rem;
|
|
326
|
+
top: 10%;
|
|
327
|
+
left: 10%;
|
|
328
|
+
bottom: 5%;
|
|
329
|
+
overflow: hidden;
|
|
330
|
+
background-color: $CAP_WHITE;
|
|
331
|
+
border-radius: $CAP_SPACE_08;
|
|
370
332
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
333
|
+
|
|
334
|
+
// Full Screen Layout
|
|
335
|
+
.inapp-fullscreen-layout {
|
|
336
|
+
position: absolute;
|
|
337
|
+
display: flex;
|
|
338
|
+
width: 12rem;
|
|
339
|
+
left: 10%;
|
|
340
|
+
top: 1%;
|
|
341
|
+
bottom: 1%;
|
|
342
|
+
overflow: hidden;
|
|
343
|
+
background-color: $CAP_WHITE;
|
|
344
|
+
border-radius: $CAP_SPACE_08;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Top Banner Layout
|
|
348
|
+
.inapp-top-banner-layout {
|
|
349
|
+
position: absolute;
|
|
350
|
+
display: flex;
|
|
351
|
+
width: 12rem;
|
|
352
|
+
left: 10%;
|
|
353
|
+
top: 1%;
|
|
354
|
+
bottom: 20%;
|
|
355
|
+
overflow: hidden;
|
|
356
|
+
background-color: $CAP_WHITE;
|
|
357
|
+
border-radius: $CAP_SPACE_08;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// Bottom Banner Layout
|
|
361
|
+
.inapp-bottom-banner-layout {
|
|
362
|
+
position: absolute;
|
|
363
|
+
display: flex;
|
|
364
|
+
justify-content: center;
|
|
365
|
+
width: 12rem;
|
|
366
|
+
left: 10%;
|
|
367
|
+
top: 50%;
|
|
368
|
+
bottom: 2%;
|
|
369
|
+
overflow: hidden;
|
|
370
|
+
background-color: $CAP_WHITE;
|
|
371
|
+
border-radius: $CAP_SPACE_08;
|
|
376
372
|
}
|
|
377
|
-
|
|
378
|
-
&.no-image .ant-card-meta {
|
|
379
|
-
background: $CAP_WHITE;
|
|
380
|
-
padding: $CAP_SPACE_16;
|
|
381
|
-
|
|
382
|
-
.ant-card-meta-description {
|
|
383
|
-
height: 100%;
|
|
384
|
-
}
|
|
385
373
|
}
|
|
386
374
|
}
|
|
387
375
|
|
|
@@ -438,136 +426,6 @@
|
|
|
438
426
|
width: 100%;
|
|
439
427
|
}
|
|
440
428
|
|
|
441
|
-
.sms-template-content.webpush-template-content {
|
|
442
|
-
padding: 0;
|
|
443
|
-
// Font-family override: needed when used in library mode where parent repo's root font-family differs
|
|
444
|
-
font-family: 'Roboto', open-sans, sans-serif;
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
.webpush-template-card {
|
|
448
|
-
display: flex;
|
|
449
|
-
flex-direction: column;
|
|
450
|
-
|
|
451
|
-
.webpush-template-meta {
|
|
452
|
-
display: flex;
|
|
453
|
-
align-items: flex-start;
|
|
454
|
-
gap: $CAP_SPACE_08;
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
.webpush-brand-icon,
|
|
458
|
-
.webpush-brand-icon-placeholder {
|
|
459
|
-
width: $CAP_SPACE_20;
|
|
460
|
-
height: $CAP_SPACE_20;
|
|
461
|
-
border-radius: 50%;
|
|
462
|
-
flex-shrink: 0;
|
|
463
|
-
object-fit: cover;
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
.webpush-brand-icon-placeholder {
|
|
467
|
-
background-color: $CAP_G07;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
.webpush-template-text {
|
|
471
|
-
display: flex;
|
|
472
|
-
flex-direction: column;
|
|
473
|
-
gap: $CAP_SPACE_04;
|
|
474
|
-
width: 100%;
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
.webpush-template-header {
|
|
478
|
-
display: flex;
|
|
479
|
-
align-items: flex-start;
|
|
480
|
-
justify-content: space-between;
|
|
481
|
-
gap: $CAP_SPACE_08;
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
.webpush-template-title {
|
|
485
|
-
width: 1px; // Required for text truncation with flex: 1
|
|
486
|
-
font-weight: 600;
|
|
487
|
-
color: $CAP_G02;
|
|
488
|
-
font-size: $FONT_SIZE_S;
|
|
489
|
-
line-height: $CAP_SPACE_16;
|
|
490
|
-
word-break: break-word;
|
|
491
|
-
flex: 1;
|
|
492
|
-
overflow: hidden;
|
|
493
|
-
text-overflow: ellipsis;
|
|
494
|
-
white-space: nowrap;
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
.webpush-template-time {
|
|
498
|
-
color: $CAP_G04;
|
|
499
|
-
font-size: $FONT_SIZE_VS;
|
|
500
|
-
line-height: $CAP_SPACE_16;
|
|
501
|
-
white-space: nowrap;
|
|
502
|
-
flex-shrink: 0;
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
.webpush-template-message {
|
|
506
|
-
color: $CAP_G04;
|
|
507
|
-
font-size: $FONT_SIZE_S;
|
|
508
|
-
line-height: $CAP_SPACE_16;
|
|
509
|
-
word-break: break-word;
|
|
510
|
-
display: -webkit-box;
|
|
511
|
-
-webkit-line-clamp: 3;
|
|
512
|
-
line-clamp: 3;
|
|
513
|
-
-webkit-box-orient: vertical;
|
|
514
|
-
overflow: hidden;
|
|
515
|
-
text-overflow: ellipsis;
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
.webpush-media-image {
|
|
519
|
-
width: 100%;
|
|
520
|
-
height: auto;
|
|
521
|
-
max-height: 8.571rem;
|
|
522
|
-
border-radius: $CAP_SPACE_08;
|
|
523
|
-
object-fit: cover;
|
|
524
|
-
margin-top: $CAP_SPACE_04;
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
.webpush-template-cta-section {
|
|
528
|
-
display: flex;
|
|
529
|
-
margin-top: $CAP_SPACE_08;
|
|
530
|
-
padding-top: $CAP_SPACE_08;
|
|
531
|
-
width: 100%;
|
|
532
|
-
|
|
533
|
-
&.single-cta {
|
|
534
|
-
justify-content: center;
|
|
535
|
-
|
|
536
|
-
.webpush-template-cta-item {
|
|
537
|
-
flex: 0 1 auto;
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
.webpush-template-cta-item {
|
|
542
|
-
flex: 1;
|
|
543
|
-
padding: 0 $CAP_SPACE_08;
|
|
544
|
-
display: flex;
|
|
545
|
-
align-items: center;
|
|
546
|
-
justify-content: center;
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
.webpush-template-cta-item + .webpush-template-cta-item {
|
|
550
|
-
border-left: 1px solid $CAP_G07;
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
.webpush-template-cta-text {
|
|
554
|
-
font-weight: 600;
|
|
555
|
-
font-size: $FONT_SIZE_VS;
|
|
556
|
-
line-height: 1rem;
|
|
557
|
-
color: $CAP_G02;
|
|
558
|
-
text-align: center;
|
|
559
|
-
white-space: nowrap;
|
|
560
|
-
overflow: hidden;
|
|
561
|
-
text-overflow: ellipsis;
|
|
562
|
-
width: 100%;
|
|
563
|
-
user-select: none;
|
|
564
|
-
-webkit-user-select: none;
|
|
565
|
-
-moz-user-select: none;
|
|
566
|
-
-ms-user-select: none;
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
|
|
571
429
|
.footer-container{
|
|
572
430
|
padding: 8px 0 8px 16px;
|
|
573
431
|
}
|
|
@@ -772,7 +630,6 @@
|
|
|
772
630
|
text-overflow: ellipsis;
|
|
773
631
|
display: -webkit-box;
|
|
774
632
|
-webkit-line-clamp: 3;
|
|
775
|
-
line-clamp: 3;
|
|
776
633
|
-webkit-box-orient: vertical;
|
|
777
634
|
}
|
|
778
635
|
.title{
|
|
@@ -835,7 +692,6 @@
|
|
|
835
692
|
text-overflow: ellipsis;
|
|
836
693
|
display: -webkit-box;
|
|
837
694
|
-webkit-line-clamp: 2;
|
|
838
|
-
line-clamp: 2;
|
|
839
695
|
-webkit-box-orient: vertical;
|
|
840
696
|
}
|
|
841
697
|
.actions{
|
|
@@ -897,7 +753,8 @@
|
|
|
897
753
|
}
|
|
898
754
|
|
|
899
755
|
.whatsapp-filters,
|
|
900
|
-
.zalo-filters
|
|
756
|
+
.zalo-filters,
|
|
757
|
+
.inapp-filters {
|
|
901
758
|
display: flex;
|
|
902
759
|
width: 100%;
|
|
903
760
|
padding-left: 8px;
|
|
@@ -913,7 +770,6 @@
|
|
|
913
770
|
overflow: hidden;
|
|
914
771
|
&.desc{
|
|
915
772
|
-webkit-line-clamp: 5;
|
|
916
|
-
line-clamp: 5;
|
|
917
773
|
}
|
|
918
774
|
}
|
|
919
775
|
|
|
@@ -1011,7 +867,6 @@
|
|
|
1011
867
|
.whatsapp-message-with-media {
|
|
1012
868
|
display: -webkit-box;
|
|
1013
869
|
-webkit-line-clamp: 3;
|
|
1014
|
-
line-clamp: 3;
|
|
1015
870
|
-webkit-box-orient: vertical;
|
|
1016
871
|
overflow: hidden;
|
|
1017
872
|
}
|
|
@@ -1019,7 +874,6 @@
|
|
|
1019
874
|
.whatsapp-message-without-media {
|
|
1020
875
|
display: -webkit-box;
|
|
1021
876
|
-webkit-line-clamp: 10;
|
|
1022
|
-
line-clamp: 10;
|
|
1023
877
|
-webkit-box-orient: vertical;
|
|
1024
878
|
overflow: hidden;
|
|
1025
879
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import * as types from './constants';
|
|
8
8
|
import {
|
|
9
|
-
LINE, WHATSAPP, RCS, ZALO,
|
|
9
|
+
LINE, WHATSAPP, RCS, ZALO,
|
|
10
10
|
} from '../CreativesContainer/constants';
|
|
11
11
|
|
|
12
12
|
export function getAllTemplates(channel, queryParams, intlCopyOf = '') {
|
|
@@ -68,7 +68,6 @@ export function setChannelAccount(channel, account) {
|
|
|
68
68
|
[LINE]: types.SET_LINE_ACCOUNT,
|
|
69
69
|
[WHATSAPP]: types.SET_WHATSAPP_ACCOUNT,
|
|
70
70
|
[ZALO]: types.SET_ZALO_ACCOUNT,
|
|
71
|
-
[WEBPUSH]: types.SET_WEBPUSH_ACCOUNT,
|
|
72
71
|
[RCS]: types.SET_RCS_ACCOUNT,
|
|
73
72
|
};
|
|
74
73
|
|
|
@@ -51,7 +51,6 @@ export const SET_FACEBOOK_ACCOUNT = "app/v2Containers/Templates/SET_FACEBOOK_ACC
|
|
|
51
51
|
export const SET_WHATSAPP_ACCOUNT = "app/v2Containers/Templates/SET_WHATSAPP_ACCOUNT";
|
|
52
52
|
export const SET_RCS_ACCOUNT = "app/v2Containers/Templates/SET_RCS_ACCOUNT";
|
|
53
53
|
export const SET_ZALO_ACCOUNT = "app/v2Containers/Templates/SET_ZALO_ACCOUNT";
|
|
54
|
-
export const SET_WEBPUSH_ACCOUNT = "app/v2Containers/Templates/SET_WEBPUSH_ACCOUNT";
|
|
55
54
|
|
|
56
55
|
export const GET_DEAFULT_BEE_TEMPLATES_REQUEST = 'app/v2Containers/Templates/GET_DEAFULT_BEE_TEMPLATES_REQUEST';
|
|
57
56
|
export const GET_DEAFULT_BEE_TEMPLATES_SUCCESS = 'app/v2Containers/Templates/GET_DEAFULT_BEE_TEMPLATES_SUCCESS';
|