@capillarytech/creatives-library 8.0.268 → 8.0.270

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.
Files changed (159) hide show
  1. package/constants/unified.js +1 -0
  2. package/package.json +1 -1
  3. package/services/api.js +5 -0
  4. package/utils/common.js +6 -0
  5. package/utils/imageUrlUpload.js +141 -0
  6. package/utils/tagValidations.js +2 -1
  7. package/utils/tests/transformerUtils.test.js +297 -0
  8. package/utils/transformerUtils.js +40 -0
  9. package/v2Components/CapImageUpload/constants.js +2 -0
  10. package/v2Components/CapImageUpload/index.js +65 -16
  11. package/v2Components/CapImageUpload/index.scss +4 -1
  12. package/v2Components/CapImageUpload/messages.js +5 -1
  13. package/v2Components/CapImageUrlUpload/constants.js +26 -0
  14. package/v2Components/CapImageUrlUpload/index.js +365 -0
  15. package/v2Components/CapImageUrlUpload/index.scss +35 -0
  16. package/v2Components/CapImageUrlUpload/messages.js +47 -0
  17. package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +2 -2
  18. package/v2Components/CommonTestAndPreview/index.js +4 -15
  19. package/v2Components/FormBuilder/index.js +8 -8
  20. package/v2Containers/App/constants.js +5 -0
  21. package/v2Containers/CreativesContainer/SlideBoxContent.js +57 -2
  22. package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -0
  23. package/v2Containers/CreativesContainer/constants.js +3 -0
  24. package/v2Containers/CreativesContainer/index.js +168 -0
  25. package/v2Containers/CreativesContainer/messages.js +4 -0
  26. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +210 -0
  27. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +304 -0
  28. package/v2Containers/FTP/index.js +1 -1
  29. package/v2Containers/InApp/index.js +1 -0
  30. package/v2Containers/Line/Container/Text/index.js +1 -0
  31. package/v2Containers/MobilePushNew/index.js +1 -0
  32. package/v2Containers/Rcs/index.js +3 -0
  33. package/v2Containers/SmsTrai/Edit/index.js +2 -12
  34. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +36 -648
  35. package/v2Containers/Templates/ChannelTypeIllustration.js +13 -1
  36. package/v2Containers/Templates/_templates.scss +205 -0
  37. package/v2Containers/Templates/actions.js +2 -1
  38. package/v2Containers/Templates/constants.js +1 -0
  39. package/v2Containers/Templates/index.js +274 -34
  40. package/v2Containers/Templates/messages.js +24 -0
  41. package/v2Containers/Templates/reducer.js +2 -0
  42. package/v2Containers/Templates/tests/index.test.js +10 -0
  43. package/v2Containers/TemplatesV2/index.js +15 -7
  44. package/v2Containers/TemplatesV2/messages.js +4 -0
  45. package/v2Containers/Viber/index.js +1 -0
  46. package/v2Containers/WebPush/Create/components/BrandIconSection.js +108 -0
  47. package/v2Containers/WebPush/Create/components/ButtonForm.js +172 -0
  48. package/v2Containers/WebPush/Create/components/ButtonItem.js +101 -0
  49. package/v2Containers/WebPush/Create/components/ButtonList.js +145 -0
  50. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.js +164 -0
  51. package/v2Containers/WebPush/Create/components/ButtonsLinksSection.test.js +463 -0
  52. package/v2Containers/WebPush/Create/components/FormActions.js +54 -0
  53. package/v2Containers/WebPush/Create/components/FormActions.test.js +163 -0
  54. package/v2Containers/WebPush/Create/components/MediaSection.js +142 -0
  55. package/v2Containers/WebPush/Create/components/MediaSection.test.js +341 -0
  56. package/v2Containers/WebPush/Create/components/MessageSection.js +103 -0
  57. package/v2Containers/WebPush/Create/components/MessageSection.test.js +268 -0
  58. package/v2Containers/WebPush/Create/components/NotificationTitleSection.js +87 -0
  59. package/v2Containers/WebPush/Create/components/NotificationTitleSection.test.js +210 -0
  60. package/v2Containers/WebPush/Create/components/TemplateNameSection.js +54 -0
  61. package/v2Containers/WebPush/Create/components/TemplateNameSection.test.js +143 -0
  62. package/v2Containers/WebPush/Create/components/__snapshots__/ButtonsLinksSection.test.js.snap +86 -0
  63. package/v2Containers/WebPush/Create/components/__snapshots__/FormActions.test.js.snap +16 -0
  64. package/v2Containers/WebPush/Create/components/__snapshots__/MediaSection.test.js.snap +41 -0
  65. package/v2Containers/WebPush/Create/components/__snapshots__/MessageSection.test.js.snap +54 -0
  66. package/v2Containers/WebPush/Create/components/__snapshots__/NotificationTitleSection.test.js.snap +37 -0
  67. package/v2Containers/WebPush/Create/components/__snapshots__/TemplateNameSection.test.js.snap +21 -0
  68. package/v2Containers/WebPush/Create/components/_buttons.scss +246 -0
  69. package/v2Containers/WebPush/Create/components/tests/ButtonForm.test.js +554 -0
  70. package/v2Containers/WebPush/Create/components/tests/ButtonItem.test.js +607 -0
  71. package/v2Containers/WebPush/Create/components/tests/ButtonList.test.js +633 -0
  72. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonForm.test.js.snap +666 -0
  73. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonItem.test.js.snap +74 -0
  74. package/v2Containers/WebPush/Create/components/tests/__snapshots__/ButtonList.test.js.snap +78 -0
  75. package/v2Containers/WebPush/Create/hooks/useButtonManagement.js +138 -0
  76. package/v2Containers/WebPush/Create/hooks/useButtonManagement.test.js +406 -0
  77. package/v2Containers/WebPush/Create/hooks/useCharacterCount.js +30 -0
  78. package/v2Containers/WebPush/Create/hooks/useCharacterCount.test.js +151 -0
  79. package/v2Containers/WebPush/Create/hooks/useImageUpload.js +104 -0
  80. package/v2Containers/WebPush/Create/hooks/useImageUpload.test.js +538 -0
  81. package/v2Containers/WebPush/Create/hooks/useTagManagement.js +122 -0
  82. package/v2Containers/WebPush/Create/hooks/useTagManagement.test.js +633 -0
  83. package/v2Containers/WebPush/Create/index.js +1148 -0
  84. package/v2Containers/WebPush/Create/index.scss +134 -0
  85. package/v2Containers/WebPush/Create/messages.js +211 -0
  86. package/v2Containers/WebPush/Create/preview/DevicePreviewContent.js +228 -0
  87. package/v2Containers/WebPush/Create/preview/NotificationContainer.js +294 -0
  88. package/v2Containers/WebPush/Create/preview/PreviewContent.js +90 -0
  89. package/v2Containers/WebPush/Create/preview/PreviewControls.js +305 -0
  90. package/v2Containers/WebPush/Create/preview/PreviewDisclaimer.js +25 -0
  91. package/v2Containers/WebPush/Create/preview/WebPushPreview.js +156 -0
  92. package/v2Containers/WebPush/Create/preview/assets/Light.svg +53 -0
  93. package/v2Containers/WebPush/Create/preview/assets/Top.svg +5 -0
  94. package/v2Containers/WebPush/Create/preview/assets/android-arrow-down.svg +9 -0
  95. package/v2Containers/WebPush/Create/preview/assets/android-arrow-up.svg +9 -0
  96. package/v2Containers/WebPush/Create/preview/assets/chrome-icon.png +0 -0
  97. package/v2Containers/WebPush/Create/preview/assets/edge-icon.png +0 -0
  98. package/v2Containers/WebPush/Create/preview/assets/firefox-icon.svg +106 -0
  99. package/v2Containers/WebPush/Create/preview/assets/iOS.svg +26 -0
  100. package/v2Containers/WebPush/Create/preview/assets/macos-arrow-down-icon.svg +9 -0
  101. package/v2Containers/WebPush/Create/preview/assets/macos-triple-dot-icon.svg +9 -0
  102. package/v2Containers/WebPush/Create/preview/assets/opera-icon.svg +18 -0
  103. package/v2Containers/WebPush/Create/preview/assets/safari-icon.svg +29 -0
  104. package/v2Containers/WebPush/Create/preview/assets/windows-close-icon.svg +9 -0
  105. package/v2Containers/WebPush/Create/preview/assets/windows-triple-dot-icon.svg +9 -0
  106. package/v2Containers/WebPush/Create/preview/components/AndroidMobileChromeHeader.js +51 -0
  107. package/v2Containers/WebPush/Create/preview/components/AndroidMobileExpanded.js +145 -0
  108. package/v2Containers/WebPush/Create/preview/components/IOSHeader.js +45 -0
  109. package/v2Containers/WebPush/Create/preview/components/NotificationExpandedContent.js +68 -0
  110. package/v2Containers/WebPush/Create/preview/components/NotificationHeader.js +61 -0
  111. package/v2Containers/WebPush/Create/preview/components/WindowsChromeExpanded.js +99 -0
  112. package/v2Containers/WebPush/Create/preview/components/tests/AndroidMobileExpanded.test.js +733 -0
  113. package/v2Containers/WebPush/Create/preview/components/tests/WindowsChromeExpanded.test.js +571 -0
  114. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/AndroidMobileExpanded.test.js.snap +85 -0
  115. package/v2Containers/WebPush/Create/preview/components/tests/__snapshots__/WindowsChromeExpanded.test.js.snap +81 -0
  116. package/v2Containers/WebPush/Create/preview/config/notificationMappings.js +50 -0
  117. package/v2Containers/WebPush/Create/preview/constants.js +637 -0
  118. package/v2Containers/WebPush/Create/preview/notification-container.scss +79 -0
  119. package/v2Containers/WebPush/Create/preview/preview.scss +358 -0
  120. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-chrome.scss +370 -0
  121. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-edge.scss +12 -0
  122. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-firefox.scss +12 -0
  123. package/v2Containers/WebPush/Create/preview/styles/_android-mobile-opera.scss +12 -0
  124. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-chrome.scss +47 -0
  125. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-edge.scss +11 -0
  126. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-firefox.scss +11 -0
  127. package/v2Containers/WebPush/Create/preview/styles/_android-tablet-opera.scss +11 -0
  128. package/v2Containers/WebPush/Create/preview/styles/_base.scss +207 -0
  129. package/v2Containers/WebPush/Create/preview/styles/_ios.scss +153 -0
  130. package/v2Containers/WebPush/Create/preview/styles/_ipados.scss +107 -0
  131. package/v2Containers/WebPush/Create/preview/styles/_macos-chrome.scss +101 -0
  132. package/v2Containers/WebPush/Create/preview/styles/_windows-chrome.scss +229 -0
  133. package/v2Containers/WebPush/Create/preview/tests/DevicePreviewContent.test.js +906 -0
  134. package/v2Containers/WebPush/Create/preview/tests/NotificationContainer.test.js +1081 -0
  135. package/v2Containers/WebPush/Create/preview/tests/PreviewControls.test.js +723 -0
  136. package/v2Containers/WebPush/Create/preview/tests/WebPushPreview.test.js +1327 -0
  137. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/DevicePreviewContent.test.js.snap +131 -0
  138. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/NotificationContainer.test.js.snap +112 -0
  139. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/PreviewControls.test.js.snap +144 -0
  140. package/v2Containers/WebPush/Create/preview/tests/__snapshots__/WebPushPreview.test.js.snap +129 -0
  141. package/v2Containers/WebPush/Create/utils/payloadBuilder.js +96 -0
  142. package/v2Containers/WebPush/Create/utils/payloadBuilder.test.js +396 -0
  143. package/v2Containers/WebPush/Create/utils/previewUtils.js +89 -0
  144. package/v2Containers/WebPush/Create/utils/urlValidation.js +115 -0
  145. package/v2Containers/WebPush/Create/utils/urlValidation.test.js +449 -0
  146. package/v2Containers/WebPush/Create/utils/validation.js +76 -0
  147. package/v2Containers/WebPush/Create/utils/validation.test.js +283 -0
  148. package/v2Containers/WebPush/actions.js +60 -0
  149. package/v2Containers/WebPush/constants.js +132 -0
  150. package/v2Containers/WebPush/index.js +2 -0
  151. package/v2Containers/WebPush/reducer.js +104 -0
  152. package/v2Containers/WebPush/sagas.js +119 -0
  153. package/v2Containers/WebPush/selectors.js +65 -0
  154. package/v2Containers/WebPush/tests/reducer.test.js +863 -0
  155. package/v2Containers/WebPush/tests/sagas.test.js +566 -0
  156. package/v2Containers/WebPush/tests/selectors.test.js +960 -0
  157. package/v2Containers/Whatsapp/index.js +1 -0
  158. package/v2Containers/Zalo/index.js +1 -0
  159. package/v2Containers/Zalo/tests/index.test.js +1 -5
@@ -24,6 +24,24 @@ 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
+
27
45
  describe('Test SlideBoxContent container', () => {
28
46
  const onCreateComplete = jest.fn();
29
47
  let renderedComponent;
@@ -700,4 +718,196 @@ describe('Test SlideBoxContent container', () => {
700
718
  expect(renderedComponent).toMatchSnapshot();
701
719
  });
702
720
  });
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
+ });
703
913
  });
@@ -1425,6 +1425,310 @@ 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
+
1428
1732
  exports[`Test SlideBoxContent container getChannelPreviewContent utility function Should handle FACEBOOK channel preview content 1`] = `
1429
1733
  <SlideBoxContent__CreativesWrapper>
1430
1734
  <InjectIntl(TemplatePreview)
@@ -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.validateTags(messageContent, tagsTree, injectedTags);
288
+ const validateTagResponse = !this.props?.isFullMode ? this.validateTags(messageContent, tagsTree, injectedTags) : { valid: true, unsupportedTags: [] };
289
289
  let unsupportedTags = null;
290
290
  let errorMessageText = '';
291
291
  if (!validateTagResponse.valid) {
@@ -395,6 +395,7 @@ export const InApp = (props) => {
395
395
  injectedTagsParams: injectedTags,
396
396
  location,
397
397
  tagModule: getDefaultTags,
398
+ isFullMode,
398
399
  }) || {};
399
400
  if (value === '' && INAPP_MEDIA_TYPES.NONE) {
400
401
  errorMessage = formatMessage(messages.emptyTemplateDescErrorMessage);
@@ -140,6 +140,7 @@ export const LineText = ({
140
140
  injectedTagsParams: injectedTags,
141
141
  location,
142
142
  tagModule: 'outbound',
143
+ isFullMode,
143
144
  }) || {};
144
145
  if (value.trim() === '') {
145
146
  errorMessage = formatMessage(messages.emptyContentErrorMessage);
@@ -805,6 +805,7 @@ const MobilePushNew = ({
805
805
  injectedTagsParams: injectedTags,
806
806
  location,
807
807
  tagModule: getDefaultTags,
808
+ isFullMode,
808
809
  }) || {};
809
810
  if (value === "" && MEDIA_TYPES_OPTIONS[0].value) {
810
811
  errorTemplateDescMessage = formatMessage(
@@ -399,6 +399,7 @@ export const Rcs = (props) => {
399
399
  location,
400
400
  tagModule: getDefaultTags,
401
401
  eventContextTags,
402
+ isFullMode,
402
403
  }) || {};
403
404
  const unsupportedTagsLengthCheck =
404
405
  validationResponse?.unsupportedTags?.length > 0;
@@ -840,6 +841,7 @@ export const Rcs = (props) => {
840
841
  injectedTagsParams: injectedTags,
841
842
  location,
842
843
  tagModule: getDefaultTags,
844
+ isFullMode,
843
845
  }) || {};
844
846
 
845
847
  const maxLength = templateType === contentType.text_message
@@ -873,6 +875,7 @@ export const Rcs = (props) => {
873
875
  injectedTagsParams: injectedTags,
874
876
  location,
875
877
  tagModule: getDefaultTags,
878
+ isFullMode,
876
879
  }) || {};
877
880
  if (value?.length > FALLBACK_MESSAGE_MAX_LENGTH) {
878
881
  errorMessage = formatMessage(messages.fallbackMsgLenError);
@@ -243,6 +243,7 @@ export const SmsTraiEdit = (props) => {
243
243
  location,
244
244
  tagModule: getDefaultTags,
245
245
  eventContextTags,
246
+ isFullMode,
246
247
  }) || {};
247
248
  updateIsTagValidationError(
248
249
  tagValidationResponse.unsupportedTags.length > 0,
@@ -581,17 +582,6 @@ export const SmsTraiEdit = (props) => {
581
582
  return updatedSmsEditor.join('');
582
583
  };
583
584
 
584
- // Build formData for TestAndPreviewSlidebox - templateConfigs with templateId and template for DLT test
585
- const getFormDataForTestAndPreview = () => {
586
- const smsBase = get(traiData, 'versions.base') || get(templateDetails, 'versions.base') || get(templateData, 'versions.base');
587
- if (!smsBase || !smsBase.template_id) {
588
- return {};
589
- }
590
- const templateRaw = smsBase['updated-sms-editor'] || smsBase['sms-editor'] || '';
591
- const template = Array.isArray(templateRaw) ? templateRaw.join('') : templateRaw;
592
- return { templateConfigs: { templateId: smsBase.template_id, template } };
593
- };
594
-
595
585
  // Handle test and preview button click
596
586
  const handleTestAndPreview = () => {
597
587
  setShowTestAndPreviewSlidebox(true);
@@ -708,7 +698,7 @@ export const SmsTraiEdit = (props) => {
708
698
  <TestAndPreviewSlidebox
709
699
  show={showTestAndPreviewSlidebox}
710
700
  onClose={handleCloseTestAndPreview}
711
- formData={getFormDataForTestAndPreview()}
701
+ formData={{}}
712
702
  content={getTemplateContent()}
713
703
  currentChannel={SMS}
714
704
  />