@capillarytech/creatives-library 8.0.246-alpha.0 → 8.0.246
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/Android.png +0 -0
- package/assets/iOS.png +0 -0
- package/constants/unified.js +1 -2
- package/initialReducer.js +0 -2
- package/package.json +1 -1
- package/services/api.js +0 -10
- package/services/tests/api.test.js +0 -18
- package/utils/common.js +0 -5
- package/utils/commonUtils.js +5 -28
- package/utils/tests/commonUtil.test.js +0 -224
- package/utils/transformTemplateConfig.js +10 -0
- package/v2Components/CapDeviceContent/index.js +56 -61
- package/v2Components/CapTagList/index.js +1 -6
- package/v2Components/CapTagListWithInput/index.js +1 -5
- package/v2Components/CapTagListWithInput/messages.js +1 -1
- package/v2Components/CapWhatsappCTA/tests/index.test.js +0 -5
- package/v2Components/ErrorInfoNote/index.js +72 -447
- package/v2Components/ErrorInfoNote/messages.js +0 -22
- package/v2Components/ErrorInfoNote/style.scss +4 -280
- package/v2Components/FormBuilder/tests/index.test.js +4 -13
- package/v2Components/HtmlEditor/HTMLEditor.js +94 -642
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +133 -1135
- package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +16 -27
- package/v2Components/HtmlEditor/_htmlEditor.scss +45 -108
- package/v2Components/HtmlEditor/_index.lazy.scss +1 -1
- package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +101 -13
- package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +139 -148
- package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +1 -2
- package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
- package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +0 -9
- package/v2Components/HtmlEditor/components/EditorToolbar/index.js +1 -1
- package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +0 -22
- package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +7 -4
- package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +45 -35
- package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +3 -1
- package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
- package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +6 -7
- package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +6 -3
- package/v2Components/HtmlEditor/components/PreviewPane/index.js +13 -11
- package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +152 -0
- package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +31 -49
- package/v2Components/HtmlEditor/constants.js +20 -29
- package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +16 -373
- package/v2Components/HtmlEditor/hooks/useEditorContent.js +2 -5
- package/v2Components/HtmlEditor/hooks/useInAppContent.js +146 -88
- package/v2Components/HtmlEditor/hooks/useValidation.js +45 -150
- package/v2Components/HtmlEditor/index.js +1 -1
- package/v2Components/HtmlEditor/messages.js +85 -95
- package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +102 -134
- package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +25 -23
- package/v2Components/HtmlEditor/utils/validationAdapter.js +41 -66
- package/v2Components/MobilePushPreviewV2/index.js +7 -32
- package/v2Components/TemplatePreview/_templatePreview.scss +24 -44
- package/v2Components/TemplatePreview/index.js +32 -47
- package/v2Components/TemplatePreview/messages.js +0 -4
- package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +0 -1
- package/v2Components/TestAndPreviewSlidebox/index.js +25 -31
- package/v2Containers/BeeEditor/index.js +90 -172
- package/v2Containers/CreativesContainer/SlideBoxContent.js +51 -128
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +12 -113
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -2
- package/v2Containers/CreativesContainer/constants.js +0 -1
- package/v2Containers/CreativesContainer/index.js +46 -238
- package/v2Containers/CreativesContainer/messages.js +0 -8
- package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +2 -11
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +50 -38
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -91
- package/v2Containers/Email/actions.js +0 -7
- package/v2Containers/Email/constants.js +1 -5
- package/v2Containers/Email/index.js +30 -229
- package/v2Containers/Email/messages.js +0 -32
- package/v2Containers/Email/reducer.js +1 -12
- package/v2Containers/Email/sagas.js +7 -61
- package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +0 -2
- package/v2Containers/Email/tests/sagas.test.js +1 -1
- package/v2Containers/EmailWrapper/components/EmailWrapperView.js +15 -210
- package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +74 -40
- package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +67 -2
- package/v2Containers/EmailWrapper/constants.js +0 -2
- package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +77 -629
- package/v2Containers/EmailWrapper/index.js +23 -103
- package/v2Containers/EmailWrapper/messages.js +1 -61
- package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +214 -0
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +77 -509
- package/v2Containers/InApp/actions.js +0 -7
- package/v2Containers/InApp/constants.js +4 -20
- package/v2Containers/InApp/index.js +357 -801
- package/v2Containers/InApp/index.scss +3 -4
- package/v2Containers/InApp/messages.js +3 -7
- package/v2Containers/InApp/reducer.js +3 -21
- package/v2Containers/InApp/sagas.js +9 -29
- package/v2Containers/InApp/selectors.js +5 -25
- package/v2Containers/InApp/tests/index.test.js +50 -154
- package/v2Containers/InApp/tests/reducer.test.js +0 -34
- package/v2Containers/InApp/tests/sagas.test.js +9 -61
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +0 -3
- package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +0 -2
- package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +0 -2
- package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +0 -9
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +0 -12
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +0 -4
- package/v2Containers/TagList/index.js +19 -62
- package/v2Containers/Templates/_templates.scss +1 -60
- package/v2Containers/Templates/index.js +4 -89
- package/v2Containers/Templates/messages.js +0 -4
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +0 -35
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +0 -874
- package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +0 -254
- package/v2Components/HtmlEditor/components/ValidationTabs/index.js +0 -363
- package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +0 -51
- package/v2Components/HtmlEditor/hooks/__tests__/useValidation.apiErrors.test.js +0 -630
- package/v2Containers/BeePopupEditor/constants.js +0 -10
- package/v2Containers/BeePopupEditor/index.js +0 -193
- package/v2Containers/BeePopupEditor/tests/index.test.js +0 -627
- package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +0 -1317
- package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +0 -1605
- package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +0 -520
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +0 -643
- package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +0 -376
- package/v2Containers/InApp/__tests__/sagas.test.js +0 -363
- package/v2Containers/InApp/tests/selectors.test.js +0 -612
- package/v2Containers/InAppWrapper/components/InAppWrapperView.js +0 -162
- package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +0 -267
- package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +0 -9
- package/v2Containers/InAppWrapper/constants.js +0 -16
- package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +0 -473
- package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +0 -198
- package/v2Containers/InAppWrapper/index.js +0 -148
- package/v2Containers/InAppWrapper/messages.js +0 -49
- package/v2Containers/InappAdvance/index.js +0 -1099
- package/v2Containers/InappAdvance/index.scss +0 -10
- package/v2Containers/InappAdvance/tests/index.test.js +0 -448
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import { injectIntl } from 'react-intl';
|
|
4
|
-
import { connect } from 'react-redux';
|
|
5
|
-
// import { bindActionCreators } from 'redux';
|
|
6
|
-
import { createStructuredSelector } from 'reselect';
|
|
7
|
-
import { UserIsAuthenticated } from '../../utils/authWrapper';
|
|
8
|
-
import TagList from '../TagList';
|
|
9
|
-
import {
|
|
10
|
-
ANDROID, BEE_LAYOUT_OPTIONS, MOBILE, UNSUBSCRIBE,
|
|
11
|
-
} from './constants';
|
|
12
|
-
import emptyAndroidSvg from '../../assets/Android.png';
|
|
13
|
-
import emptyIosSvg from '../../assets/iOS.png';
|
|
14
|
-
function BeePopupEditor(props) {
|
|
15
|
-
const {
|
|
16
|
-
uid,
|
|
17
|
-
id,
|
|
18
|
-
tokenData,
|
|
19
|
-
saveBeeInstance,
|
|
20
|
-
saveBeeData,
|
|
21
|
-
saveBeeHtmlValue,
|
|
22
|
-
beeJson,
|
|
23
|
-
templateLayoutType,
|
|
24
|
-
moduleFilterEnabled,
|
|
25
|
-
label,
|
|
26
|
-
location,
|
|
27
|
-
injectedTags,
|
|
28
|
-
className,
|
|
29
|
-
userLocale,
|
|
30
|
-
selectedOfferDetails,
|
|
31
|
-
tags,
|
|
32
|
-
onContextChange,
|
|
33
|
-
device,
|
|
34
|
-
} = props;
|
|
35
|
-
|
|
36
|
-
let beePluginInstance = null;
|
|
37
|
-
let intervalTimer;
|
|
38
|
-
const savedCallback = useRef();
|
|
39
|
-
const beeInstanceRef = useRef(null);
|
|
40
|
-
const isInitializedRef = useRef(false);
|
|
41
|
-
|
|
42
|
-
const [visibleTaglist, setVisibleTaglist] = useState(false);
|
|
43
|
-
const [selectedTag, setSelectedTag] = useState({});
|
|
44
|
-
const filteredTags = (tags || []).filter((obj) => obj.definition.value !== UNSUBSCRIBE);
|
|
45
|
-
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
// Only recreate BEE editor when layout type changes, not when content (beeJson) changes
|
|
48
|
-
// If beeJson is in dependencies, editor reloads on every keystroke!
|
|
49
|
-
const beeConfig = {
|
|
50
|
-
uid,
|
|
51
|
-
trackChanges: true,
|
|
52
|
-
container: 'bee-plugin-container',
|
|
53
|
-
workspace: {
|
|
54
|
-
popup: {
|
|
55
|
-
backgroundImageMobile: device === ANDROID ? emptyAndroidSvg : emptyIosSvg,
|
|
56
|
-
layout: BEE_LAYOUT_OPTIONS[templateLayoutType],
|
|
57
|
-
customStyles: {
|
|
58
|
-
container: {
|
|
59
|
-
width: "90%",
|
|
60
|
-
margin: "1.5rem",
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
stage: MOBILE,
|
|
65
|
-
hideStageToggle: true,
|
|
66
|
-
},
|
|
67
|
-
contentDialog: {
|
|
68
|
-
mergeTags: {
|
|
69
|
-
label: 'Add Label',
|
|
70
|
-
handler: async (resolve, reject) => {
|
|
71
|
-
// this will open tag modal
|
|
72
|
-
await setVisibleTaglist(true);
|
|
73
|
-
// until tag modal will not open promise will not execute
|
|
74
|
-
// once tag modal is opened it will start 2 sec interval to wait use has selected any tag or cancel the tag selection
|
|
75
|
-
const promise = new Promise((resolveP) => {
|
|
76
|
-
intervalTimer = setInterval(() => {
|
|
77
|
-
// this will execute, if user cancel the tag selection
|
|
78
|
-
if ((savedCallback.current || {}).close === true) {
|
|
79
|
-
reject();
|
|
80
|
-
clearInterval(intervalTimer);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
// this block is checking use has selected any tag or not
|
|
84
|
-
if (Object.keys(savedCallback.current || {}).length > 0) {
|
|
85
|
-
resolveP(savedCallback.current);
|
|
86
|
-
setSelectedTag({});
|
|
87
|
-
clearInterval(intervalTimer);
|
|
88
|
-
}
|
|
89
|
-
}, 2000);
|
|
90
|
-
});
|
|
91
|
-
// once prmise will resolve , pass the resolve data to handler to show tags in bee edior
|
|
92
|
-
const result = await promise;
|
|
93
|
-
resolve(result);
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
onChange: (jsonFile, htmlFile) => {
|
|
98
|
-
saveBeeData(jsonFile, htmlFile, device);
|
|
99
|
-
},
|
|
100
|
-
onSave: (jsonFile, htmlFile) => {
|
|
101
|
-
// onSave provides the actual HTML value, use it to update beeHtml.value
|
|
102
|
-
if (saveBeeHtmlValue && htmlFile) {
|
|
103
|
-
saveBeeHtmlValue(htmlFile, device);
|
|
104
|
-
}
|
|
105
|
-
// Also call saveBeeData to update JSON
|
|
106
|
-
saveBeeData(jsonFile, htmlFile, device);
|
|
107
|
-
},
|
|
108
|
-
};
|
|
109
|
-
window.BeePlugin.create(tokenData, beeConfig, (instance) => {
|
|
110
|
-
beePluginInstance = instance;
|
|
111
|
-
beeInstanceRef.current = instance;
|
|
112
|
-
// Check if beeJson is already an object (happens when layout type changes)
|
|
113
|
-
const parseJson = typeof beeJson === 'string' ? JSON.parse(beeJson) : beeJson;
|
|
114
|
-
beePluginInstance.start(parseJson);
|
|
115
|
-
saveBeeInstance(beePluginInstance, device);
|
|
116
|
-
isInitializedRef.current = true;
|
|
117
|
-
});
|
|
118
|
-
return () => {
|
|
119
|
-
clearInterval(intervalTimer);
|
|
120
|
-
// Reset initialization flag when component unmounts or layout changes
|
|
121
|
-
isInitializedRef.current = false;
|
|
122
|
-
};
|
|
123
|
-
// IMPORTANT: Only include templateLayoutType, NOT beeJson
|
|
124
|
-
// beeJson changes on every keystroke and would cause editor to reload constantly
|
|
125
|
-
}, [templateLayoutType]);
|
|
126
|
-
|
|
127
|
-
useEffect(() => {
|
|
128
|
-
savedCallback.current = Object?.keys(selectedTag)?.length > 0 && selectedTag;
|
|
129
|
-
}, [selectedTag]);
|
|
130
|
-
|
|
131
|
-
const onTagSelect = (result) => {
|
|
132
|
-
const msg = {
|
|
133
|
-
name: result,
|
|
134
|
-
value: `{{${result}}}`,
|
|
135
|
-
};
|
|
136
|
-
setSelectedTag(msg);
|
|
137
|
-
setVisibleTaglist(false);
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
const onCancelTagList = () => {
|
|
141
|
-
setVisibleTaglist(false);
|
|
142
|
-
setSelectedTag({ close: true });
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
return (
|
|
146
|
-
<>
|
|
147
|
-
<div id="bee-plugin-container" style={{ height: "46.5rem" }}></div>
|
|
148
|
-
<TagList
|
|
149
|
-
moduleFilterEnabled={moduleFilterEnabled}
|
|
150
|
-
label={label}
|
|
151
|
-
onTagSelect={onTagSelect}
|
|
152
|
-
location={location}
|
|
153
|
-
tags={filteredTags}
|
|
154
|
-
injectedTags={injectedTags}
|
|
155
|
-
className={className}
|
|
156
|
-
id={id}
|
|
157
|
-
userLocale={userLocale}
|
|
158
|
-
selectedOfferDetails={selectedOfferDetails}
|
|
159
|
-
visibleTaglist={visibleTaglist}
|
|
160
|
-
hidePopover
|
|
161
|
-
modalProps={{
|
|
162
|
-
onCancel: onCancelTagList,
|
|
163
|
-
style: { left: 135, top: 250 },
|
|
164
|
-
className: "bee-editor-tag-list",
|
|
165
|
-
}}
|
|
166
|
-
onContextChange={onContextChange}
|
|
167
|
-
/>
|
|
168
|
-
</>
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
BeePopupEditor.propTypes = {
|
|
172
|
-
saveBeeData: PropTypes.func.isRequired,
|
|
173
|
-
saveBeeInstance: PropTypes.func.isRequired,
|
|
174
|
-
beeJson: PropTypes.object.isRequired,
|
|
175
|
-
tokenData: PropTypes.object.isRequired,
|
|
176
|
-
uid: PropTypes.string.isRequired,
|
|
177
|
-
templateLayoutType: PropTypes.string.isRequired,
|
|
178
|
-
id: PropTypes.string.isRequired,
|
|
179
|
-
moduleFilterEnabled: PropTypes.bool.isRequired,
|
|
180
|
-
label: PropTypes.string.isRequired,
|
|
181
|
-
location: PropTypes.object.isRequired,
|
|
182
|
-
injectedTags: PropTypes.array.isRequired,
|
|
183
|
-
className: PropTypes.string.isRequired,
|
|
184
|
-
userLocale: PropTypes.string.isRequired,
|
|
185
|
-
selectedOfferDetails: PropTypes.object.isRequired,
|
|
186
|
-
tags: PropTypes.array.isRequired,
|
|
187
|
-
onContextChange: PropTypes.func.isRequired,
|
|
188
|
-
device: PropTypes.string.isRequired,
|
|
189
|
-
};
|
|
190
|
-
const mapStateToProps = () => createStructuredSelector({});
|
|
191
|
-
|
|
192
|
-
function mapDispatchToProps() { }
|
|
193
|
-
export default UserIsAuthenticated(connect(mapStateToProps, mapDispatchToProps)(injectIntl(BeePopupEditor)));
|