@capillarytech/creatives-library 8.0.271 → 8.0.273
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 -1
- package/initialReducer.js +2 -0
- package/package.json +1 -1
- package/services/api.js +10 -0
- package/services/tests/api.test.js +34 -0
- package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +17 -35
- package/tests/integration/TemplateCreation/api-response.js +31 -1
- package/tests/integration/TemplateCreation/msw-handler.js +2 -0
- package/utils/common.js +5 -0
- package/utils/commonUtils.js +28 -5
- package/utils/imageUrlUpload.js +13 -14
- package/utils/tests/commonUtil.test.js +224 -0
- package/utils/tests/imageUrlUpload.test.js +298 -0
- package/utils/transformTemplateConfig.js +0 -10
- package/v2Components/CapDeviceContent/index.js +61 -56
- 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 +402 -72
- package/v2Components/ErrorInfoNote/messages.js +32 -6
- package/v2Components/ErrorInfoNote/style.scss +278 -6
- package/v2Components/FormBuilder/tests/index.test.js +13 -4
- package/v2Components/HtmlEditor/HTMLEditor.js +418 -99
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +870 -0
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +1882 -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 -1
- package/v2Components/HtmlEditor/components/EditorToolbar/index.js +31 -6
- 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 +7 -10
- 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 +18 -0
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +36 -31
- package/v2Components/HtmlEditor/components/ValidationPanel/_validationPanel.scss +46 -34
- package/v2Components/HtmlEditor/components/ValidationPanel/constants.js +6 -0
- package/v2Components/HtmlEditor/components/ValidationPanel/index.js +52 -46
- package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +277 -0
- package/v2Components/HtmlEditor/components/ValidationTabs/index.js +295 -0
- package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +51 -0
- package/v2Components/HtmlEditor/constants.js +45 -20
- package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +373 -16
- package/v2Components/HtmlEditor/hooks/__tests__/useValidation.test.js +351 -16
- package/v2Components/HtmlEditor/hooks/useEditorContent.js +5 -2
- package/v2Components/HtmlEditor/hooks/useInAppContent.js +88 -146
- package/v2Components/HtmlEditor/hooks/useValidation.js +213 -56
- package/v2Components/HtmlEditor/index.js +1 -1
- package/v2Components/HtmlEditor/messages.js +102 -94
- package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +214 -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 +158 -124
- package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +23 -25
- package/v2Components/HtmlEditor/utils/validationAdapter.js +66 -41
- package/v2Components/HtmlEditor/utils/validationConstants.js +38 -0
- package/v2Components/MobilePushPreviewV2/constants.js +6 -0
- package/v2Components/MobilePushPreviewV2/index.js +33 -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/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/CreativesContainer/SlideBoxContent.js +127 -51
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +156 -13
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -1
- package/v2Containers/CreativesContainer/constants.js +1 -0
- package/v2Containers/CreativesContainer/index.js +251 -47
- package/v2Containers/CreativesContainer/messages.js +8 -0
- package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +11 -2
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +38 -50
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +103 -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 +1246 -0
- package/v2Containers/EmailWrapper/components/EmailWrapperView.js +212 -21
- package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +40 -74
- package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +2614 -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 +627 -79
- package/v2Containers/EmailWrapper/index.js +103 -23
- package/v2Containers/EmailWrapper/messages.js +65 -1
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +955 -0
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +596 -82
- 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 -360
- 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 +3 -0
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +2 -0
- package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +2 -0
- package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +9 -0
- package/v2Containers/MobilePush/Create/index.js +1 -1
- package/v2Containers/MobilePush/Edit/index.js +10 -6
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +12 -0
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +4 -0
- package/v2Containers/TagList/index.js +62 -19
- package/v2Containers/Templates/_templates.scss +60 -1
- package/v2Containers/Templates/index.js +89 -4
- package/v2Containers/Templates/messages.js +4 -0
- package/v2Containers/TemplatesV2/TemplatesV2.style.js +4 -2
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +34 -0
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +0 -152
- package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +0 -214
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/*
|
|
2
|
+
*
|
|
3
|
+
* InAppWrapper
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import PropTypes from 'prop-types';
|
|
8
|
+
import { injectIntl, intlShape } from 'react-intl';
|
|
9
|
+
import { bindActionCreators } from 'redux';
|
|
10
|
+
import { createStructuredSelector } from 'reselect';
|
|
11
|
+
import withCreatives from '../../hoc/withCreatives';
|
|
12
|
+
import useInAppWrapper from './hooks/useInAppWrapper';
|
|
13
|
+
import InAppWrapperView from './components/InAppWrapperView';
|
|
14
|
+
import messages from './messages';
|
|
15
|
+
import * as inAppActions from '../InApp/actions';
|
|
16
|
+
const InAppWrapper = (props) => {
|
|
17
|
+
// Destructure props for clarity before passing to hook
|
|
18
|
+
const {
|
|
19
|
+
intl,
|
|
20
|
+
inAppEditorType,
|
|
21
|
+
step,
|
|
22
|
+
isFullMode,
|
|
23
|
+
onInAppEditorTypeChange,
|
|
24
|
+
showNextStep,
|
|
25
|
+
onResetStep,
|
|
26
|
+
setIsLoadingContent,
|
|
27
|
+
isGetFormData,
|
|
28
|
+
getFormdata,
|
|
29
|
+
type,
|
|
30
|
+
cap,
|
|
31
|
+
showTemplateName,
|
|
32
|
+
showLiquidErrorInFooter,
|
|
33
|
+
onValidationFail,
|
|
34
|
+
forwardedTags,
|
|
35
|
+
selectedOfferDetails,
|
|
36
|
+
onPreviewContentClicked,
|
|
37
|
+
onTestContentClicked,
|
|
38
|
+
eventContextTags,
|
|
39
|
+
onCreateComplete,
|
|
40
|
+
handleClose,
|
|
41
|
+
templateData,
|
|
42
|
+
getDefaultTags,
|
|
43
|
+
onEnterTemplateName,
|
|
44
|
+
onRemoveTemplateName,
|
|
45
|
+
} = props;
|
|
46
|
+
|
|
47
|
+
// Pass destructured props to the custom hook
|
|
48
|
+
const {
|
|
49
|
+
templateName,
|
|
50
|
+
isTemplateNameEmpty,
|
|
51
|
+
selectedEditorType,
|
|
52
|
+
modes,
|
|
53
|
+
isShowInAppCreate,
|
|
54
|
+
inAppProps,
|
|
55
|
+
onTemplateNameChange,
|
|
56
|
+
onChange,
|
|
57
|
+
handleEditorTypeSelection,
|
|
58
|
+
} = useInAppWrapper({
|
|
59
|
+
intl,
|
|
60
|
+
onInAppEditorTypeChange,
|
|
61
|
+
inAppEditorType,
|
|
62
|
+
step,
|
|
63
|
+
showNextStep,
|
|
64
|
+
onResetStep,
|
|
65
|
+
onEnterTemplateName,
|
|
66
|
+
onRemoveTemplateName,
|
|
67
|
+
setIsLoadingContent,
|
|
68
|
+
isGetFormData,
|
|
69
|
+
getFormdata,
|
|
70
|
+
type,
|
|
71
|
+
isFullMode,
|
|
72
|
+
cap,
|
|
73
|
+
showTemplateName,
|
|
74
|
+
showLiquidErrorInFooter,
|
|
75
|
+
onValidationFail,
|
|
76
|
+
forwardedTags,
|
|
77
|
+
selectedOfferDetails,
|
|
78
|
+
onPreviewContentClicked,
|
|
79
|
+
onTestContentClicked,
|
|
80
|
+
eventContextTags,
|
|
81
|
+
onCreateComplete,
|
|
82
|
+
handleClose,
|
|
83
|
+
templateData,
|
|
84
|
+
getDefaultTags,
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// Render using the presentation component with data from the hook
|
|
88
|
+
return (
|
|
89
|
+
<InAppWrapperView
|
|
90
|
+
inAppEditorType={inAppEditorType}
|
|
91
|
+
step={step}
|
|
92
|
+
isFullMode={isFullMode}
|
|
93
|
+
templateName={templateName}
|
|
94
|
+
onTemplateNameChange={onTemplateNameChange}
|
|
95
|
+
isTemplateNameEmpty={isTemplateNameEmpty}
|
|
96
|
+
modes={modes}
|
|
97
|
+
onChange={onChange}
|
|
98
|
+
isShowInAppCreate={isShowInAppCreate}
|
|
99
|
+
inAppProps={inAppProps}
|
|
100
|
+
handleEditorTypeSelection={handleEditorTypeSelection}
|
|
101
|
+
templateNamePlaceholder={intl.formatMessage(messages.templateNamePlaceholder)}
|
|
102
|
+
/>
|
|
103
|
+
);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
InAppWrapper.propTypes = {
|
|
107
|
+
onInAppEditorTypeChange: PropTypes.func.isRequired,
|
|
108
|
+
isGetFormData: PropTypes.bool,
|
|
109
|
+
type: PropTypes.string,
|
|
110
|
+
inAppEditorType: PropTypes.string,
|
|
111
|
+
step: PropTypes.string,
|
|
112
|
+
showNextStep: PropTypes.func,
|
|
113
|
+
getFormdata: PropTypes.func,
|
|
114
|
+
intl: intlShape,
|
|
115
|
+
cap: PropTypes.object,
|
|
116
|
+
onResetStep: PropTypes.func,
|
|
117
|
+
isFullMode: PropTypes.bool,
|
|
118
|
+
setIsLoadingContent: PropTypes.func,
|
|
119
|
+
showTemplateName: PropTypes.func,
|
|
120
|
+
showLiquidErrorInFooter: PropTypes.func,
|
|
121
|
+
onValidationFail: PropTypes.func,
|
|
122
|
+
forwardedTags: PropTypes.object,
|
|
123
|
+
selectedOfferDetails: PropTypes.array,
|
|
124
|
+
onPreviewContentClicked: PropTypes.func,
|
|
125
|
+
onTestContentClicked: PropTypes.func,
|
|
126
|
+
eventContextTags: PropTypes.array,
|
|
127
|
+
onCreateComplete: PropTypes.func,
|
|
128
|
+
handleClose: PropTypes.func,
|
|
129
|
+
templateData: PropTypes.object,
|
|
130
|
+
getDefaultTags: PropTypes.string,
|
|
131
|
+
onEnterTemplateName: PropTypes.func,
|
|
132
|
+
onRemoveTemplateName: PropTypes.func,
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
const mapStateToProps = createStructuredSelector({
|
|
136
|
+
// Add selectors here if needed
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
const mapDispatchToProps = (dispatch) => ({
|
|
140
|
+
actions: bindActionCreators(inAppActions, dispatch),
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
export default withCreatives({
|
|
144
|
+
WrappedComponent: injectIntl(InAppWrapper),
|
|
145
|
+
mapStateToProps,
|
|
146
|
+
mapDispatchToProps,
|
|
147
|
+
userAuth: true,
|
|
148
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* InAppWrapper Messages
|
|
3
|
+
*
|
|
4
|
+
* This contains all the text for the InAppWrapper component.
|
|
5
|
+
*/
|
|
6
|
+
import { defineMessages } from 'react-intl';
|
|
7
|
+
|
|
8
|
+
export default defineMessages({
|
|
9
|
+
header: {
|
|
10
|
+
id: 'creatives.containersV2.InAppWrapper.header',
|
|
11
|
+
defaultMessage: 'Create In App Message',
|
|
12
|
+
},
|
|
13
|
+
htmlEditor: {
|
|
14
|
+
id: 'creatives.containersV2.InAppWrapper.htmlEditor',
|
|
15
|
+
defaultMessage: 'HTML editor',
|
|
16
|
+
},
|
|
17
|
+
htmlEditorDesc: {
|
|
18
|
+
id: 'creatives.containersV2.InAppWrapper.htmlEditorDesc',
|
|
19
|
+
defaultMessage: 'Use a basic HTML editor to write and format your content. Suitable if you\'re familiar with HTML.',
|
|
20
|
+
},
|
|
21
|
+
dragDropEditor: {
|
|
22
|
+
id: 'creatives.containersV2.InAppWrapper.dragDropEditor',
|
|
23
|
+
defaultMessage: 'Drag & drop editor',
|
|
24
|
+
},
|
|
25
|
+
dragDropEditorDesc: {
|
|
26
|
+
id: 'creatives.containersV2.InAppWrapper.dragDropEditorDesc',
|
|
27
|
+
defaultMessage: 'Create your content visually by dragging blocks - no coding needed. Great for quick, easy designs.',
|
|
28
|
+
},
|
|
29
|
+
creativeName: {
|
|
30
|
+
id: 'creatives.containersV2.InAppWrapper.creativeName',
|
|
31
|
+
defaultMessage: 'Creative name',
|
|
32
|
+
},
|
|
33
|
+
editorType: {
|
|
34
|
+
id: 'creatives.containersV2.InAppWrapper.editorType',
|
|
35
|
+
defaultMessage: 'Editor type',
|
|
36
|
+
},
|
|
37
|
+
emptyTemplateName: {
|
|
38
|
+
id: 'creatives.containersV2.InAppWrapper.emptyTemplateName',
|
|
39
|
+
defaultMessage: 'Please enter template name.',
|
|
40
|
+
},
|
|
41
|
+
next: {
|
|
42
|
+
id: 'creatives.containersV2.InAppWrapper.next',
|
|
43
|
+
defaultMessage: 'Next',
|
|
44
|
+
},
|
|
45
|
+
templateNamePlaceholder: {
|
|
46
|
+
id: 'creatives.containersV2.InAppWrapper.templateNamePlaceholder',
|
|
47
|
+
defaultMessage: 'Enter the template name',
|
|
48
|
+
},
|
|
49
|
+
});
|