@capillarytech/creatives-library 8.0.264 → 8.0.265
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants/unified.js +0 -1
- package/package.json +1 -1
- package/services/api.js +0 -5
- package/utils/common.js +0 -6
- package/utils/tagValidations.js +1 -2
- package/utils/tests/transformerUtils.test.js +0 -297
- package/utils/transformerUtils.js +0 -40
- 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/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +2 -2
- package/v2Components/FormBuilder/index.js +8 -8
- package/v2Containers/App/constants.js +0 -5
- package/v2Containers/CreativesContainer/SlideBoxContent.js +2 -57
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +0 -1
- package/v2Containers/CreativesContainer/constants.js +0 -3
- package/v2Containers/CreativesContainer/index.js +0 -168
- package/v2Containers/CreativesContainer/messages.js +0 -4
- package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +0 -210
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +0 -304
- package/v2Containers/Email/index.js +7 -3
- package/v2Containers/FTP/index.js +1 -1
- package/v2Containers/InApp/index.js +0 -1
- package/v2Containers/Line/Container/Text/index.js +0 -1
- package/v2Containers/MobilePushNew/index.js +0 -1
- package/v2Containers/Rcs/index.js +0 -3
- package/v2Containers/SmsTrai/Edit/index.js +0 -1
- package/v2Containers/Templates/ChannelTypeIllustration.js +1 -13
- package/v2Containers/Templates/_templates.scss +0 -205
- package/v2Containers/Templates/actions.js +1 -2
- package/v2Containers/Templates/constants.js +0 -1
- package/v2Containers/Templates/index.js +34 -274
- package/v2Containers/Templates/messages.js +0 -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/Viber/index.js +0 -1
- package/v2Containers/Whatsapp/index.js +0 -1
- package/v2Containers/Zalo/index.js +0 -1
- package/v2Containers/Zalo/tests/index.test.js +5 -1
- 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/v2Containers/WebPush/Create/components/BrandIconSection.js +0 -108
- package/v2Containers/WebPush/Create/components/ButtonForm.js +0 -172
- package/v2Containers/WebPush/Create/components/ButtonItem.js +0 -101
- package/v2Containers/WebPush/Create/components/ButtonList.js +0 -145
- package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +0 -164
- package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +0 -463
- package/v2Containers/WebPush/Create/components/FormActions.js +0 -54
- package/v2Containers/WebPush/Create/components/FormActions.test.js +0 -163
- package/v2Containers/WebPush/Create/components/MediaSection.js +0 -142
- package/v2Containers/WebPush/Create/components/MediaSection.test.js +0 -341
- package/v2Containers/WebPush/Create/components/MessageSection.js +0 -103
- package/v2Containers/WebPush/Create/components/MessageSection.test.js +0 -268
- package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +0 -87
- package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +0 -210
- package/v2Containers/WebPush/Create/components/TemplateNameSection.js +0 -54
- package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +0 -143
- package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +0 -86
- package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +0 -16
- package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +0 -41
- package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +0 -54
- package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +0 -37
- package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +0 -21
- package/v2Containers/WebPush/Create/components/_buttons.scss +0 -246
- package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +0 -554
- package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +0 -607
- package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +0 -633
- package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +0 -666
- package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +0 -74
- package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +0 -78
- package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +0 -138
- package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +0 -406
- package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +0 -30
- package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +0 -151
- package/v2Containers/WebPush/Create/hooks/useImageUpload.js +0 -104
- package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +0 -538
- package/v2Containers/WebPush/Create/hooks/useTagManagement.js +0 -122
- package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +0 -633
- package/v2Containers/WebPush/Create/index.js +0 -1148
- package/v2Containers/WebPush/Create/index.scss +0 -134
- package/v2Containers/WebPush/Create/messages.js +0 -211
- package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +0 -228
- package/v2Containers/WebPush/Create/preview/NotificationContainer.js +0 -294
- package/v2Containers/WebPush/Create/preview/PreviewContent.js +0 -90
- package/v2Containers/WebPush/Create/preview/PreviewControls.js +0 -305
- package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +0 -25
- package/v2Containers/WebPush/Create/preview/WebPushPreview.js +0 -155
- package/v2Containers/WebPush/Create/preview/assets/Light.svg +0 -53
- package/v2Containers/WebPush/Create/preview/assets/Top.svg +0 -5
- package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
- package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
- package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +0 -106
- package/v2Containers/WebPush/Create/preview/assets/iOS.svg +0 -26
- package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +0 -18
- package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +0 -29
- package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +0 -9
- package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +0 -9
- package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +0 -51
- package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +0 -145
- package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +0 -45
- package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +0 -68
- package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +0 -61
- package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +0 -99
- package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +0 -733
- package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +0 -571
- package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +0 -85
- package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +0 -81
- package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +0 -50
- package/v2Containers/WebPush/Create/preview/constants.js +0 -637
- package/v2Containers/WebPush/Create/preview/notification-container.scss +0 -79
- package/v2Containers/WebPush/Create/preview/preview.scss +0 -358
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +0 -370
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +0 -12
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +0 -12
- package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +0 -12
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +0 -47
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +0 -11
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +0 -11
- package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +0 -11
- package/v2Containers/WebPush/Create/preview/styles/_base.scss +0 -207
- package/v2Containers/WebPush/Create/preview/styles/_ios.scss +0 -153
- package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +0 -107
- package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +0 -101
- package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +0 -229
- package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +0 -909
- package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +0 -1081
- package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +0 -723
- package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +0 -1327
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +0 -131
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +0 -112
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +0 -144
- package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +0 -129
- package/v2Containers/WebPush/Create/utils/payloadBuilder.js +0 -96
- package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +0 -396
- package/v2Containers/WebPush/Create/utils/previewUtils.js +0 -89
- package/v2Containers/WebPush/Create/utils/urlValidation.js +0 -115
- package/v2Containers/WebPush/Create/utils/urlValidation.test.js +0 -449
- package/v2Containers/WebPush/Create/utils/validation.js +0 -76
- 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
|
@@ -24,24 +24,6 @@ jest.mock('../../../v2Components/FormBuilder', () => ({
|
|
|
24
24
|
),
|
|
25
25
|
}));
|
|
26
26
|
|
|
27
|
-
jest.mock('../../WebPush/Create/preview/DevicePreviewContent', () => ({
|
|
28
|
-
__esModule: true,
|
|
29
|
-
default: (props) => (
|
|
30
|
-
<div className="DevicePreviewContent-mock" {...props}>
|
|
31
|
-
DevicePreviewContent
|
|
32
|
-
</div>
|
|
33
|
-
),
|
|
34
|
-
}));
|
|
35
|
-
|
|
36
|
-
jest.mock('../../WebPush', () => ({
|
|
37
|
-
__esModule: true,
|
|
38
|
-
default: (props) => (
|
|
39
|
-
<div className="WebPush-mock" {...props}>
|
|
40
|
-
WebPush
|
|
41
|
-
</div>
|
|
42
|
-
),
|
|
43
|
-
}));
|
|
44
|
-
|
|
45
27
|
describe('Test SlideBoxContent container', () => {
|
|
46
28
|
const onCreateComplete = jest.fn();
|
|
47
29
|
let renderedComponent;
|
|
@@ -718,196 +700,4 @@ describe('Test SlideBoxContent container', () => {
|
|
|
718
700
|
expect(renderedComponent).toMatchSnapshot();
|
|
719
701
|
});
|
|
720
702
|
});
|
|
721
|
-
|
|
722
|
-
describe('WebPush channel functionality', () => {
|
|
723
|
-
it('Should render correct component for webpush channel create mode', () => {
|
|
724
|
-
renderFunction('WEBPUSH', 'createTemplate', { mode: 'create' });
|
|
725
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
726
|
-
});
|
|
727
|
-
|
|
728
|
-
it('Should render correct component for webpush channel edit mode', () => {
|
|
729
|
-
const webpushEditTemplateData = {
|
|
730
|
-
type: 'WEBPUSH',
|
|
731
|
-
_id: '123',
|
|
732
|
-
versions: {
|
|
733
|
-
base: {
|
|
734
|
-
content: {
|
|
735
|
-
webpush: {
|
|
736
|
-
title: 'Test Title',
|
|
737
|
-
message: 'Test Message',
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
}
|
|
741
|
-
}
|
|
742
|
-
};
|
|
743
|
-
renderFunction('WEBPUSH', 'editTemplate', webpushEditTemplateData);
|
|
744
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
745
|
-
});
|
|
746
|
-
|
|
747
|
-
it('Should render correct component for webpush channel preview mode with all fields', () => {
|
|
748
|
-
const webpushPreviewTemplateData = {
|
|
749
|
-
type: 'WEBPUSH',
|
|
750
|
-
versions: {
|
|
751
|
-
base: {
|
|
752
|
-
content: {
|
|
753
|
-
webpush: {
|
|
754
|
-
title: 'Test Notification Title',
|
|
755
|
-
message: 'Test notification body text',
|
|
756
|
-
image: 'https://example.com/image.jpg',
|
|
757
|
-
brandIcon: 'https://example.com/brand-icon.png',
|
|
758
|
-
onClickAction: {
|
|
759
|
-
url: 'https://example.com'
|
|
760
|
-
}
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
};
|
|
766
|
-
renderFunction('WEBPUSH', 'preview', webpushPreviewTemplateData);
|
|
767
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
768
|
-
});
|
|
769
|
-
|
|
770
|
-
it('Should render correct component for webpush channel preview mode with minimal fields', () => {
|
|
771
|
-
const webpushPreviewTemplateData = {
|
|
772
|
-
type: 'WEBPUSH',
|
|
773
|
-
versions: {
|
|
774
|
-
base: {
|
|
775
|
-
content: {
|
|
776
|
-
webpush: {
|
|
777
|
-
title: 'Test Title',
|
|
778
|
-
message: 'Test Message'
|
|
779
|
-
}
|
|
780
|
-
}
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
};
|
|
784
|
-
renderFunction('WEBPUSH', 'preview', webpushPreviewTemplateData);
|
|
785
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
786
|
-
});
|
|
787
|
-
|
|
788
|
-
it('Should render correct component for webpush channel preview mode with empty fields', () => {
|
|
789
|
-
const webpushPreviewTemplateData = {
|
|
790
|
-
type: 'WEBPUSH',
|
|
791
|
-
versions: {
|
|
792
|
-
base: {
|
|
793
|
-
content: {
|
|
794
|
-
webpush: {}
|
|
795
|
-
}
|
|
796
|
-
}
|
|
797
|
-
}
|
|
798
|
-
};
|
|
799
|
-
renderFunction('WEBPUSH', 'preview', webpushPreviewTemplateData);
|
|
800
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
801
|
-
});
|
|
802
|
-
|
|
803
|
-
it('Should render correct component for webpush channel preview mode with missing onClickAction url', () => {
|
|
804
|
-
const webpushPreviewTemplateData = {
|
|
805
|
-
type: 'WEBPUSH',
|
|
806
|
-
versions: {
|
|
807
|
-
base: {
|
|
808
|
-
content: {
|
|
809
|
-
webpush: {
|
|
810
|
-
title: 'Test Title',
|
|
811
|
-
message: 'Test Message',
|
|
812
|
-
onClickAction: {}
|
|
813
|
-
}
|
|
814
|
-
}
|
|
815
|
-
}
|
|
816
|
-
}
|
|
817
|
-
};
|
|
818
|
-
renderFunction('WEBPUSH', 'preview', webpushPreviewTemplateData);
|
|
819
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
820
|
-
});
|
|
821
|
-
|
|
822
|
-
it('Should render correct component for webpush channel preview mode with null onClickAction', () => {
|
|
823
|
-
const webpushPreviewTemplateData = {
|
|
824
|
-
type: 'WEBPUSH',
|
|
825
|
-
versions: {
|
|
826
|
-
base: {
|
|
827
|
-
content: {
|
|
828
|
-
webpush: {
|
|
829
|
-
title: 'Test Title',
|
|
830
|
-
message: 'Test Message',
|
|
831
|
-
onClickAction: null
|
|
832
|
-
}
|
|
833
|
-
}
|
|
834
|
-
}
|
|
835
|
-
}
|
|
836
|
-
};
|
|
837
|
-
renderFunction('WEBPUSH', 'preview', webpushPreviewTemplateData);
|
|
838
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
839
|
-
});
|
|
840
|
-
|
|
841
|
-
it('Should handle supportedTags prop in webpush create mode', () => {
|
|
842
|
-
renderFunction('WEBPUSH', 'createTemplate', { mode: 'create' }, {
|
|
843
|
-
supportedTags: ['tag1', 'tag2']
|
|
844
|
-
});
|
|
845
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
846
|
-
});
|
|
847
|
-
|
|
848
|
-
it('Should handle supportedTags prop in webpush edit mode', () => {
|
|
849
|
-
const webpushEditTemplateData = {
|
|
850
|
-
type: 'WEBPUSH',
|
|
851
|
-
_id: '123',
|
|
852
|
-
versions: {
|
|
853
|
-
base: {
|
|
854
|
-
content: {
|
|
855
|
-
webpush: {
|
|
856
|
-
title: 'Test Title',
|
|
857
|
-
message: 'Test Message',
|
|
858
|
-
}
|
|
859
|
-
}
|
|
860
|
-
}
|
|
861
|
-
}
|
|
862
|
-
};
|
|
863
|
-
renderFunction('WEBPUSH', 'editTemplate', webpushEditTemplateData, {
|
|
864
|
-
supportedTags: ['tag1', 'tag2']
|
|
865
|
-
});
|
|
866
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
867
|
-
});
|
|
868
|
-
|
|
869
|
-
it('Should handle webpush create mode with all props', () => {
|
|
870
|
-
renderFunction('WEBPUSH', 'createTemplate', { mode: 'create' }, {
|
|
871
|
-
isFullMode: true,
|
|
872
|
-
handleClose: jest.fn(),
|
|
873
|
-
onCreateComplete: jest.fn(),
|
|
874
|
-
creativesMode: 'test',
|
|
875
|
-
getDefaultTags: 'outbound',
|
|
876
|
-
forwardedTags: {},
|
|
877
|
-
supportedTags: ['tag1'],
|
|
878
|
-
selectedOfferDetails: [],
|
|
879
|
-
eventContextTags: {}
|
|
880
|
-
});
|
|
881
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
882
|
-
});
|
|
883
|
-
|
|
884
|
-
it('Should handle webpush edit mode with all props', () => {
|
|
885
|
-
const webpushEditTemplateData = {
|
|
886
|
-
type: 'WEBPUSH',
|
|
887
|
-
_id: '123',
|
|
888
|
-
versions: {
|
|
889
|
-
base: {
|
|
890
|
-
content: {
|
|
891
|
-
webpush: {
|
|
892
|
-
title: 'Test Title',
|
|
893
|
-
message: 'Test Message',
|
|
894
|
-
}
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
|
-
}
|
|
898
|
-
};
|
|
899
|
-
renderFunction('WEBPUSH', 'editTemplate', webpushEditTemplateData, {
|
|
900
|
-
isFullMode: true,
|
|
901
|
-
handleClose: jest.fn(),
|
|
902
|
-
onCreateComplete: jest.fn(),
|
|
903
|
-
creativesMode: 'test',
|
|
904
|
-
getDefaultTags: 'outbound',
|
|
905
|
-
forwardedTags: {},
|
|
906
|
-
supportedTags: ['tag1'],
|
|
907
|
-
selectedOfferDetails: [],
|
|
908
|
-
eventContextTags: {}
|
|
909
|
-
});
|
|
910
|
-
expect(renderedComponent).toMatchSnapshot();
|
|
911
|
-
});
|
|
912
|
-
});
|
|
913
703
|
});
|
|
@@ -1425,310 +1425,6 @@ exports[`Test SlideBoxContent container Should render correctly with isTestAndPr
|
|
|
1425
1425
|
</SlideBoxContent__CreativesWrapper>
|
|
1426
1426
|
`;
|
|
1427
1427
|
|
|
1428
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should handle supportedTags prop in webpush create mode 1`] = `
|
|
1429
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1430
|
-
<_default
|
|
1431
|
-
getDefaultTags=""
|
|
1432
|
-
location={
|
|
1433
|
-
Object {
|
|
1434
|
-
"pathname": "/webpush/create",
|
|
1435
|
-
"query": Object {
|
|
1436
|
-
"isEditFromCampaigns": undefined,
|
|
1437
|
-
"module": "library",
|
|
1438
|
-
"type": "embedded",
|
|
1439
|
-
},
|
|
1440
|
-
"search": "",
|
|
1441
|
-
}
|
|
1442
|
-
}
|
|
1443
|
-
onCreateComplete={[MockFunction]}
|
|
1444
|
-
supportedTags={
|
|
1445
|
-
Array [
|
|
1446
|
-
"tag1",
|
|
1447
|
-
"tag2",
|
|
1448
|
-
]
|
|
1449
|
-
}
|
|
1450
|
-
/>
|
|
1451
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1452
|
-
`;
|
|
1453
|
-
|
|
1454
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should handle supportedTags prop in webpush edit mode 1`] = `
|
|
1455
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1456
|
-
<_default
|
|
1457
|
-
getDefaultTags=""
|
|
1458
|
-
location={
|
|
1459
|
-
Object {
|
|
1460
|
-
"pathname": "/webpush/edit",
|
|
1461
|
-
"query": Object {
|
|
1462
|
-
"isEditFromCampaigns": undefined,
|
|
1463
|
-
"module": "library",
|
|
1464
|
-
"type": "embedded",
|
|
1465
|
-
},
|
|
1466
|
-
"search": "",
|
|
1467
|
-
}
|
|
1468
|
-
}
|
|
1469
|
-
onCreateComplete={[MockFunction]}
|
|
1470
|
-
params={
|
|
1471
|
-
Object {
|
|
1472
|
-
"id": "123",
|
|
1473
|
-
}
|
|
1474
|
-
}
|
|
1475
|
-
supportedTags={
|
|
1476
|
-
Array [
|
|
1477
|
-
"tag1",
|
|
1478
|
-
"tag2",
|
|
1479
|
-
]
|
|
1480
|
-
}
|
|
1481
|
-
templateData={
|
|
1482
|
-
Object {
|
|
1483
|
-
"_id": "123",
|
|
1484
|
-
"type": "WEBPUSH",
|
|
1485
|
-
"versions": Object {
|
|
1486
|
-
"base": Object {
|
|
1487
|
-
"content": Object {
|
|
1488
|
-
"webpush": Object {
|
|
1489
|
-
"message": "Test Message",
|
|
1490
|
-
"title": "Test Title",
|
|
1491
|
-
},
|
|
1492
|
-
},
|
|
1493
|
-
},
|
|
1494
|
-
},
|
|
1495
|
-
}
|
|
1496
|
-
}
|
|
1497
|
-
/>
|
|
1498
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1499
|
-
`;
|
|
1500
|
-
|
|
1501
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should handle webpush create mode with all props 1`] = `
|
|
1502
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1503
|
-
<_default
|
|
1504
|
-
creativesMode="test"
|
|
1505
|
-
eventContextTags={Object {}}
|
|
1506
|
-
forwardedTags={Object {}}
|
|
1507
|
-
getDefaultTags=""
|
|
1508
|
-
handleClose={[MockFunction]}
|
|
1509
|
-
isFullMode={true}
|
|
1510
|
-
location={
|
|
1511
|
-
Object {
|
|
1512
|
-
"pathname": "/webpush/create",
|
|
1513
|
-
"query": Object {
|
|
1514
|
-
"isEditFromCampaigns": undefined,
|
|
1515
|
-
"module": "default",
|
|
1516
|
-
"type": false,
|
|
1517
|
-
},
|
|
1518
|
-
"search": "",
|
|
1519
|
-
}
|
|
1520
|
-
}
|
|
1521
|
-
onCreateComplete={[MockFunction]}
|
|
1522
|
-
selectedOfferDetails={Array []}
|
|
1523
|
-
supportedTags={
|
|
1524
|
-
Array [
|
|
1525
|
-
"tag1",
|
|
1526
|
-
]
|
|
1527
|
-
}
|
|
1528
|
-
/>
|
|
1529
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1530
|
-
`;
|
|
1531
|
-
|
|
1532
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should handle webpush edit mode with all props 1`] = `
|
|
1533
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1534
|
-
<_default
|
|
1535
|
-
creativesMode="test"
|
|
1536
|
-
eventContextTags={Object {}}
|
|
1537
|
-
forwardedTags={Object {}}
|
|
1538
|
-
getDefaultTags=""
|
|
1539
|
-
handleClose={[MockFunction]}
|
|
1540
|
-
isFullMode={true}
|
|
1541
|
-
location={
|
|
1542
|
-
Object {
|
|
1543
|
-
"pathname": "/webpush/edit",
|
|
1544
|
-
"query": Object {
|
|
1545
|
-
"isEditFromCampaigns": undefined,
|
|
1546
|
-
"module": "default",
|
|
1547
|
-
"type": false,
|
|
1548
|
-
},
|
|
1549
|
-
"search": "",
|
|
1550
|
-
}
|
|
1551
|
-
}
|
|
1552
|
-
onCreateComplete={[MockFunction]}
|
|
1553
|
-
params={
|
|
1554
|
-
Object {
|
|
1555
|
-
"id": "123",
|
|
1556
|
-
}
|
|
1557
|
-
}
|
|
1558
|
-
selectedOfferDetails={Array []}
|
|
1559
|
-
supportedTags={
|
|
1560
|
-
Array [
|
|
1561
|
-
"tag1",
|
|
1562
|
-
]
|
|
1563
|
-
}
|
|
1564
|
-
templateData={
|
|
1565
|
-
Object {
|
|
1566
|
-
"_id": "123",
|
|
1567
|
-
"type": "WEBPUSH",
|
|
1568
|
-
"versions": Object {
|
|
1569
|
-
"base": Object {
|
|
1570
|
-
"content": Object {
|
|
1571
|
-
"webpush": Object {
|
|
1572
|
-
"message": "Test Message",
|
|
1573
|
-
"title": "Test Title",
|
|
1574
|
-
},
|
|
1575
|
-
},
|
|
1576
|
-
},
|
|
1577
|
-
},
|
|
1578
|
-
}
|
|
1579
|
-
}
|
|
1580
|
-
/>
|
|
1581
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1582
|
-
`;
|
|
1583
|
-
|
|
1584
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should render correct component for webpush channel create mode 1`] = `
|
|
1585
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1586
|
-
<_default
|
|
1587
|
-
getDefaultTags=""
|
|
1588
|
-
location={
|
|
1589
|
-
Object {
|
|
1590
|
-
"pathname": "/webpush/create",
|
|
1591
|
-
"query": Object {
|
|
1592
|
-
"isEditFromCampaigns": undefined,
|
|
1593
|
-
"module": "library",
|
|
1594
|
-
"type": "embedded",
|
|
1595
|
-
},
|
|
1596
|
-
"search": "",
|
|
1597
|
-
}
|
|
1598
|
-
}
|
|
1599
|
-
onCreateComplete={[MockFunction]}
|
|
1600
|
-
supportedTags={Array []}
|
|
1601
|
-
/>
|
|
1602
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1603
|
-
`;
|
|
1604
|
-
|
|
1605
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should render correct component for webpush channel edit mode 1`] = `
|
|
1606
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1607
|
-
<_default
|
|
1608
|
-
getDefaultTags=""
|
|
1609
|
-
location={
|
|
1610
|
-
Object {
|
|
1611
|
-
"pathname": "/webpush/edit",
|
|
1612
|
-
"query": Object {
|
|
1613
|
-
"isEditFromCampaigns": undefined,
|
|
1614
|
-
"module": "library",
|
|
1615
|
-
"type": "embedded",
|
|
1616
|
-
},
|
|
1617
|
-
"search": "",
|
|
1618
|
-
}
|
|
1619
|
-
}
|
|
1620
|
-
onCreateComplete={[MockFunction]}
|
|
1621
|
-
params={
|
|
1622
|
-
Object {
|
|
1623
|
-
"id": "123",
|
|
1624
|
-
}
|
|
1625
|
-
}
|
|
1626
|
-
supportedTags={Array []}
|
|
1627
|
-
templateData={
|
|
1628
|
-
Object {
|
|
1629
|
-
"_id": "123",
|
|
1630
|
-
"type": "WEBPUSH",
|
|
1631
|
-
"versions": Object {
|
|
1632
|
-
"base": Object {
|
|
1633
|
-
"content": Object {
|
|
1634
|
-
"webpush": Object {
|
|
1635
|
-
"message": "Test Message",
|
|
1636
|
-
"title": "Test Title",
|
|
1637
|
-
},
|
|
1638
|
-
},
|
|
1639
|
-
},
|
|
1640
|
-
},
|
|
1641
|
-
}
|
|
1642
|
-
}
|
|
1643
|
-
/>
|
|
1644
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1645
|
-
`;
|
|
1646
|
-
|
|
1647
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should render correct component for webpush channel preview mode with all fields 1`] = `
|
|
1648
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1649
|
-
<div
|
|
1650
|
-
className="webpush-preview-container"
|
|
1651
|
-
>
|
|
1652
|
-
<_default
|
|
1653
|
-
brandIconSrc="https://example.com/brand-icon.png"
|
|
1654
|
-
imageSrc="https://example.com/image.jpg"
|
|
1655
|
-
layoutMode="compact"
|
|
1656
|
-
notificationBody="Test notification body text"
|
|
1657
|
-
notificationTitle="Test Notification Title"
|
|
1658
|
-
url="https://example.com"
|
|
1659
|
-
/>
|
|
1660
|
-
</div>
|
|
1661
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1662
|
-
`;
|
|
1663
|
-
|
|
1664
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should render correct component for webpush channel preview mode with empty fields 1`] = `
|
|
1665
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1666
|
-
<div
|
|
1667
|
-
className="webpush-preview-container"
|
|
1668
|
-
>
|
|
1669
|
-
<_default
|
|
1670
|
-
brandIconSrc=""
|
|
1671
|
-
imageSrc=""
|
|
1672
|
-
layoutMode="compact"
|
|
1673
|
-
notificationBody=""
|
|
1674
|
-
notificationTitle=""
|
|
1675
|
-
url=""
|
|
1676
|
-
/>
|
|
1677
|
-
</div>
|
|
1678
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1679
|
-
`;
|
|
1680
|
-
|
|
1681
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should render correct component for webpush channel preview mode with minimal fields 1`] = `
|
|
1682
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1683
|
-
<div
|
|
1684
|
-
className="webpush-preview-container"
|
|
1685
|
-
>
|
|
1686
|
-
<_default
|
|
1687
|
-
brandIconSrc=""
|
|
1688
|
-
imageSrc=""
|
|
1689
|
-
layoutMode="compact"
|
|
1690
|
-
notificationBody="Test Message"
|
|
1691
|
-
notificationTitle="Test Title"
|
|
1692
|
-
url=""
|
|
1693
|
-
/>
|
|
1694
|
-
</div>
|
|
1695
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1696
|
-
`;
|
|
1697
|
-
|
|
1698
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should render correct component for webpush channel preview mode with missing onClickAction url 1`] = `
|
|
1699
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1700
|
-
<div
|
|
1701
|
-
className="webpush-preview-container"
|
|
1702
|
-
>
|
|
1703
|
-
<_default
|
|
1704
|
-
brandIconSrc=""
|
|
1705
|
-
imageSrc=""
|
|
1706
|
-
layoutMode="compact"
|
|
1707
|
-
notificationBody="Test Message"
|
|
1708
|
-
notificationTitle="Test Title"
|
|
1709
|
-
url=""
|
|
1710
|
-
/>
|
|
1711
|
-
</div>
|
|
1712
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1713
|
-
`;
|
|
1714
|
-
|
|
1715
|
-
exports[`Test SlideBoxContent container WebPush channel functionality Should render correct component for webpush channel preview mode with null onClickAction 1`] = `
|
|
1716
|
-
<SlideBoxContent__CreativesWrapper>
|
|
1717
|
-
<div
|
|
1718
|
-
className="webpush-preview-container"
|
|
1719
|
-
>
|
|
1720
|
-
<_default
|
|
1721
|
-
brandIconSrc=""
|
|
1722
|
-
imageSrc=""
|
|
1723
|
-
layoutMode="compact"
|
|
1724
|
-
notificationBody="Test Message"
|
|
1725
|
-
notificationTitle="Test Title"
|
|
1726
|
-
url=""
|
|
1727
|
-
/>
|
|
1728
|
-
</div>
|
|
1729
|
-
</SlideBoxContent__CreativesWrapper>
|
|
1730
|
-
`;
|
|
1731
|
-
|
|
1732
1428
|
exports[`Test SlideBoxContent container getChannelPreviewContent utility function Should handle FACEBOOK channel preview content 1`] = `
|
|
1733
1429
|
<SlideBoxContent__CreativesWrapper>
|
|
1734
1430
|
<InjectIntl(TemplatePreview)
|
|
@@ -62,6 +62,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
62
62
|
isEdit: false,
|
|
63
63
|
schema: {},
|
|
64
64
|
loading: false,
|
|
65
|
+
isFormValid: true,
|
|
65
66
|
injectedTags: {},
|
|
66
67
|
checkValidation: false,
|
|
67
68
|
saveEdmDataMode: 'save',
|
|
@@ -888,7 +889,9 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
888
889
|
return '';
|
|
889
890
|
}
|
|
890
891
|
|
|
891
|
-
setFormValidity = () => {
|
|
892
|
+
setFormValidity = (isFormValid) => {
|
|
893
|
+
this.setState({isFormValid});
|
|
894
|
+
}
|
|
892
895
|
|
|
893
896
|
setEditData(editData) {
|
|
894
897
|
const isBEESupport = (this.props.location.query.isBEESupport !== "false") || false;
|
|
@@ -1115,6 +1118,7 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
1115
1118
|
isEdit: false,
|
|
1116
1119
|
schema: {},
|
|
1117
1120
|
loading: false,
|
|
1121
|
+
isFormValid: true,
|
|
1118
1122
|
injectedTags: {},
|
|
1119
1123
|
checkValidation: false,
|
|
1120
1124
|
tabKey: '',
|
|
@@ -2456,14 +2460,14 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
2456
2460
|
}
|
|
2457
2461
|
|
|
2458
2462
|
saveFormData = (passedData) => {
|
|
2463
|
+
//saveFormData gets called only when validation result is true
|
|
2459
2464
|
if (this.state.gettingFormData && !this.props.isFullMode) {
|
|
2460
2465
|
const response = {
|
|
2461
2466
|
action: "getFormData",
|
|
2462
2467
|
postAction: this.state.getFormDataValue || 'next',
|
|
2463
2468
|
id: _.get(this.props, 'Email.templateDetails._id', ''),
|
|
2464
2469
|
value: this.transformFormData(passedData),
|
|
2465
|
-
|
|
2466
|
-
validity: true,
|
|
2470
|
+
validity: this.state.isFormValid,
|
|
2467
2471
|
type: 'EMAIL',
|
|
2468
2472
|
};
|
|
2469
2473
|
|
|
@@ -285,7 +285,7 @@ export class FTP extends React.Component {
|
|
|
285
285
|
const { formatMessage } = this.props.intl;
|
|
286
286
|
const { metaEntities, selectedOfferDetails, injectedTags } = this.props;
|
|
287
287
|
const tagsRaw = metaEntities && metaEntities.tags ? metaEntities.tags.standard : [];
|
|
288
|
-
const validateTagResponse = this.
|
|
288
|
+
const validateTagResponse = this.validateTags(messageContent, tagsTree, injectedTags);
|
|
289
289
|
let unsupportedTags = null;
|
|
290
290
|
let errorMessageText = '';
|
|
291
291
|
if (!validateTagResponse.valid) {
|
|
@@ -395,7 +395,6 @@ export const InApp = (props) => {
|
|
|
395
395
|
injectedTagsParams: injectedTags,
|
|
396
396
|
location,
|
|
397
397
|
tagModule: getDefaultTags,
|
|
398
|
-
isFullMode,
|
|
399
398
|
}) || {};
|
|
400
399
|
if (value === '' && INAPP_MEDIA_TYPES.NONE) {
|
|
401
400
|
errorMessage = formatMessage(messages.emptyTemplateDescErrorMessage);
|
|
@@ -399,7 +399,6 @@ export const Rcs = (props) => {
|
|
|
399
399
|
location,
|
|
400
400
|
tagModule: getDefaultTags,
|
|
401
401
|
eventContextTags,
|
|
402
|
-
isFullMode,
|
|
403
402
|
}) || {};
|
|
404
403
|
const unsupportedTagsLengthCheck =
|
|
405
404
|
validationResponse?.unsupportedTags?.length > 0;
|
|
@@ -841,7 +840,6 @@ export const Rcs = (props) => {
|
|
|
841
840
|
injectedTagsParams: injectedTags,
|
|
842
841
|
location,
|
|
843
842
|
tagModule: getDefaultTags,
|
|
844
|
-
isFullMode,
|
|
845
843
|
}) || {};
|
|
846
844
|
|
|
847
845
|
const maxLength = templateType === contentType.text_message
|
|
@@ -875,7 +873,6 @@ export const Rcs = (props) => {
|
|
|
875
873
|
injectedTagsParams: injectedTags,
|
|
876
874
|
location,
|
|
877
875
|
tagModule: getDefaultTags,
|
|
878
|
-
isFullMode,
|
|
879
876
|
}) || {};
|
|
880
877
|
if (value?.length > FALLBACK_MESSAGE_MAX_LENGTH) {
|
|
881
878
|
errorMessage = formatMessage(messages.fallbackMsgLenError);
|
|
@@ -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) {
|