@capillarytech/creatives-library 8.0.336 → 8.0.338
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/package.json +1 -1
- package/utils/tests/tagValidations.test.js +20 -0
- package/v2Components/CapTagList/index.js +28 -23
- package/v2Components/CapTagList/style.scss +29 -0
- package/v2Components/CapTagListWithInput/__tests__/CapTagListWithInput.test.js +63 -0
- package/v2Components/CapTagListWithInput/index.js +4 -0
- package/v2Components/CapWhatsappCTA/index.js +2 -0
- package/v2Components/FormBuilder/index.js +7 -0
- package/v2Components/HtmlEditor/HTMLEditor.js +6 -1
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +1 -0
- package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +927 -2
- package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +3 -0
- package/v2Components/mockdata.js +1 -0
- package/v2Containers/BeeEditor/index.js +3 -0
- package/v2Containers/CreativesContainer/SlideBoxContent.js +28 -1
- package/v2Containers/CreativesContainer/index.js +3 -0
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +47 -0
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +5 -0
- package/v2Containers/Email/index.js +4 -2
- package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +6 -1
- package/v2Containers/EmailWrapper/components/EmailWrapperView.js +3 -0
- package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +20 -2
- package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +16 -1
- package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +3 -0
- package/v2Containers/EmailWrapper/index.js +4 -0
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +1 -0
- package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +9 -0
- package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +1 -0
- package/v2Containers/MobilePush/Create/index.js +2 -0
- package/v2Containers/MobilePush/Edit/index.js +2 -0
- package/v2Containers/MobilepushWrapper/index.js +3 -1
- package/v2Containers/Rcs/index.js +1 -0
- package/v2Containers/Sms/Create/index.js +2 -0
- package/v2Containers/Sms/Edit/index.js +2 -0
- package/v2Containers/SmsTrai/Edit/index.js +2 -0
- package/v2Containers/SmsWrapper/index.js +2 -0
- package/v2Containers/TagList/index.js +62 -5
- package/v2Containers/TagList/messages.js +4 -0
- package/v2Containers/TagList/tests/TagList.test.js +124 -20
- package/v2Containers/TagList/tests/mockdata.js +17 -0
- package/v2Containers/Viber/index.js +3 -0
- package/v2Containers/WebPush/Create/hooks/useTagManagement.js +0 -2
- package/v2Containers/WebPush/Create/index.js +9 -1
- package/v2Containers/Whatsapp/index.js +5 -0
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +20 -0
- package/v2Containers/Zalo/index.js +2 -0
|
@@ -5,28 +5,34 @@ import { initialReducer } from '../../../initialReducer';
|
|
|
5
5
|
import { injectIntl } from "react-intl";
|
|
6
6
|
import { fireEvent } from "@testing-library/react";
|
|
7
7
|
import { TagList } from '../index';
|
|
8
|
-
import { TagListData, eventContextTags } from './mockdata';
|
|
8
|
+
import { TagListData, eventContextTags, waitEventContextTags } from './mockdata';
|
|
9
|
+
import { OfferTag, badgesTags, offer } from '../../../utils/tests/common.mockdata';
|
|
10
|
+
import * as commonUtils from "../../../utils/common";
|
|
9
11
|
import { Provider } from 'react-redux';
|
|
10
12
|
import { screen, render } from '../../../utils/test-utils';
|
|
11
13
|
import history from '../../../utils/history';
|
|
12
14
|
const { getByText, queryByText } = screen;
|
|
13
15
|
|
|
16
|
+
const buildProps = (props = {}) => ({
|
|
17
|
+
...TagListData,
|
|
18
|
+
onTagSelect: jest.fn(),
|
|
19
|
+
...props,
|
|
20
|
+
});
|
|
14
21
|
|
|
15
|
-
const initializeTagList = (props) => {
|
|
22
|
+
const initializeTagList = (props = {}) => {
|
|
16
23
|
const store = configureStore({}, initialReducer, history);
|
|
17
24
|
const Component = injectIntl(TagList);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
...
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
const propsObj = buildProps(props);
|
|
26
|
+
return {
|
|
27
|
+
...render(
|
|
28
|
+
<Provider store={store}>
|
|
29
|
+
<Component {...propsObj} />
|
|
30
|
+
</Provider>
|
|
31
|
+
),
|
|
32
|
+
store,
|
|
33
|
+
Component,
|
|
34
|
+
propsObj,
|
|
23
35
|
};
|
|
24
|
-
|
|
25
|
-
return render(
|
|
26
|
-
<Provider store={store}>
|
|
27
|
-
<Component {...propsObj} />
|
|
28
|
-
</Provider>
|
|
29
|
-
);
|
|
30
36
|
};
|
|
31
37
|
|
|
32
38
|
const addLabelBtnAssertion = () => {
|
|
@@ -41,19 +47,117 @@ describe("TagList test : UNIT", () => {
|
|
|
41
47
|
addLabelBtnAssertion();
|
|
42
48
|
});
|
|
43
49
|
|
|
44
|
-
it('should render event context
|
|
45
|
-
initializeTagList({eventContextTags});
|
|
50
|
+
it('should render event context tag section from generateTags', () => {
|
|
51
|
+
initializeTagList({ eventContextTags, moduleFilterEnabled: false });
|
|
46
52
|
addLabelBtnAssertion();
|
|
47
53
|
const EVENT_CONTEXT_TAG_HEADER = getByText(/Entry event/i);
|
|
48
54
|
expect(EVENT_CONTEXT_TAG_HEADER).toBeInTheDocument();
|
|
49
|
-
fireEvent.click(EVENT_CONTEXT_TAG_HEADER);
|
|
50
|
-
// Customer profile tags
|
|
51
|
-
const CUSTOMER_PROFILE = getByText(/Current Customer/i);
|
|
52
|
-
fireEvent.click(CUSTOMER_PROFILE);
|
|
53
|
-
expect(getByText(/lifetimePurchases/i)).toBeInTheDocument();
|
|
54
55
|
|
|
55
56
|
// Behavioural event profile tags should not be visible as label and profile name is not present
|
|
56
57
|
const BEHAVIOURAL_EVENT_PROFILE = queryByText(/Behavioural event/i);
|
|
57
58
|
expect(BEHAVIOURAL_EVENT_PROFILE).not.toBeInTheDocument();
|
|
58
59
|
});
|
|
60
|
+
|
|
61
|
+
it('should render wait event context section when waitEventContextTags is provided', () => {
|
|
62
|
+
initializeTagList({ waitEventContextTags, moduleFilterEnabled: false });
|
|
63
|
+
addLabelBtnAssertion();
|
|
64
|
+
const WAIT_EVENT_HEADER = getByText(/Order Placed \(Wait Block\)/i);
|
|
65
|
+
expect(WAIT_EVENT_HEADER).toBeInTheDocument();
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it('should merge empty waitEventContextTags with entry event tags', () => {
|
|
69
|
+
initializeTagList({ eventContextTags, waitEventContextTags: {}, moduleFilterEnabled: false });
|
|
70
|
+
addLabelBtnAssertion();
|
|
71
|
+
expect(getByText(/Entry event/i)).toBeInTheDocument();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('calls parent onContextChange with Outbound when tags and injectedTags are empty on popover open', () => {
|
|
75
|
+
const onContextChange = jest.fn();
|
|
76
|
+
initializeTagList({
|
|
77
|
+
tags: [],
|
|
78
|
+
injectedTags: {},
|
|
79
|
+
onContextChange,
|
|
80
|
+
onTagSelect: jest.fn(),
|
|
81
|
+
});
|
|
82
|
+
// Default fetch is triggered when the Add Label popover opens (not on mount)
|
|
83
|
+
addLabelBtnAssertion();
|
|
84
|
+
expect(onContextChange).toHaveBeenCalledWith('Outbound');
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it('applies fetchingSchemaError from props via componentWillReceiveProps', () => {
|
|
88
|
+
const { rerender, Component, propsObj, store } = initializeTagList({ fetchingSchemaError: false });
|
|
89
|
+
addLabelBtnAssertion();
|
|
90
|
+
rerender(
|
|
91
|
+
<Provider store={store}>
|
|
92
|
+
<Component {...propsObj} fetchingSchemaError />
|
|
93
|
+
</Provider>
|
|
94
|
+
);
|
|
95
|
+
expect(screen.getByText(/add label/i)).toBeInTheDocument();
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it('disables Add label when restrictPersonalization is true', () => {
|
|
99
|
+
initializeTagList({
|
|
100
|
+
restrictPersonalization: true,
|
|
101
|
+
disabled: false,
|
|
102
|
+
moduleFilterEnabled: false,
|
|
103
|
+
});
|
|
104
|
+
const btn = screen.getByText(/add label/i).closest('button');
|
|
105
|
+
expect(btn).toBeDisabled();
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
it('calls transformCouponTags when selectedOfferDetails and coupon tags are present', () => {
|
|
109
|
+
const spy = jest.spyOn(TagList.prototype, 'transformCouponTags');
|
|
110
|
+
initializeTagList({
|
|
111
|
+
tags: OfferTag,
|
|
112
|
+
injectedTags: {},
|
|
113
|
+
selectedOfferDetails: [{ id: 'c1', couponName: 'Promo Coupon', couponSeriesId: 'c1' }],
|
|
114
|
+
moduleFilterEnabled: false,
|
|
115
|
+
});
|
|
116
|
+
expect(spy).toHaveBeenCalled();
|
|
117
|
+
spy.mockRestore();
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
it('calls transformBadgeTags from common when badge offer and Badge tags are present', () => {
|
|
121
|
+
const spy = jest.spyOn(commonUtils, 'transformBadgeTags');
|
|
122
|
+
initializeTagList({
|
|
123
|
+
tags: badgesTags,
|
|
124
|
+
injectedTags: {},
|
|
125
|
+
selectedOfferDetails: offer,
|
|
126
|
+
moduleFilterEnabled: false,
|
|
127
|
+
});
|
|
128
|
+
expect(spy).toHaveBeenCalled();
|
|
129
|
+
spy.mockRestore();
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it('unmounts without throwing', () => {
|
|
133
|
+
const { unmount } = initializeTagList();
|
|
134
|
+
expect(() => unmount()).not.toThrow();
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
it('regenerates tags when props.tags change (componentDidUpdate)', () => {
|
|
138
|
+
const { rerender, Component, store } = initializeTagList({ tags: TagListData.tags });
|
|
139
|
+
const extra = [
|
|
140
|
+
...TagListData.tags,
|
|
141
|
+
{
|
|
142
|
+
_id: 'extra-tag',
|
|
143
|
+
type: 'TAG',
|
|
144
|
+
definition: {
|
|
145
|
+
label: { en: 'Extra' },
|
|
146
|
+
value: 'extra_value',
|
|
147
|
+
subtags: [],
|
|
148
|
+
'tag-header': false,
|
|
149
|
+
supportedModules: [{ context: 'default', layout: 'sms', mandatory: false }],
|
|
150
|
+
},
|
|
151
|
+
scope: { tag: 'STANDARD', orgId: -1, verticals: [] },
|
|
152
|
+
isActive: true,
|
|
153
|
+
},
|
|
154
|
+
];
|
|
155
|
+
rerender(
|
|
156
|
+
<Provider store={store}>
|
|
157
|
+
<Component {...buildProps({ tags: extra })} />
|
|
158
|
+
</Provider>
|
|
159
|
+
);
|
|
160
|
+
addLabelBtnAssertion();
|
|
161
|
+
expect(screen.getByText(/add label/i)).toBeInTheDocument();
|
|
162
|
+
});
|
|
59
163
|
});
|
|
@@ -149,3 +149,20 @@ export const eventContextTags = [
|
|
|
149
149
|
"isDynamicFact": false
|
|
150
150
|
}
|
|
151
151
|
];
|
|
152
|
+
|
|
153
|
+
export const waitEventContextTags = {
|
|
154
|
+
block1: {
|
|
155
|
+
eventName: 'Order Placed',
|
|
156
|
+
blockName: 'Wait Block',
|
|
157
|
+
tags: [
|
|
158
|
+
{
|
|
159
|
+
tagName: 'waitEvent.orderId',
|
|
160
|
+
label: 'Order ID',
|
|
161
|
+
profileId: 'ORDER_PROFILE',
|
|
162
|
+
profileName: 'Order Profile',
|
|
163
|
+
blockName: 'Wait Block',
|
|
164
|
+
eventName: 'Order Placed',
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
};
|
|
@@ -82,6 +82,7 @@ export const Viber = (props) => {
|
|
|
82
82
|
viberData = {},
|
|
83
83
|
selectedOfferDetails = [],
|
|
84
84
|
eventContextTags,
|
|
85
|
+
waitEventContextTags,
|
|
85
86
|
// TestAndPreviewSlidebox props
|
|
86
87
|
showTestAndPreviewSlidebox: propsShowTestAndPreviewSlidebox,
|
|
87
88
|
handleTestAndPreview: propsHandleTestAndPreview,
|
|
@@ -287,6 +288,7 @@ export const Viber = (props) => {
|
|
|
287
288
|
userLocale={localStorage.getItem("jlocale") || "en"}
|
|
288
289
|
selectedOfferDetails={selectedOfferDetails}
|
|
289
290
|
eventContextTags={eventContextTags}
|
|
291
|
+
waitEventContextTags={waitEventContextTags}
|
|
290
292
|
/>
|
|
291
293
|
</CapColumn>
|
|
292
294
|
<div className="viber-textarea-wrapper">
|
|
@@ -592,6 +594,7 @@ export const Viber = (props) => {
|
|
|
592
594
|
userLocale={localStorage.getItem("jlocale") || "en"}
|
|
593
595
|
selectedOfferDetails={selectedOfferDetails}
|
|
594
596
|
eventContextTags={eventContextTags}
|
|
597
|
+
waitEventContextTags={waitEventContextTags}
|
|
595
598
|
/>
|
|
596
599
|
<CapColumn className="cta-actions">
|
|
597
600
|
<CapButton
|
|
@@ -84,6 +84,7 @@ const MemoizedTagList = memo(({
|
|
|
84
84
|
injectedTags,
|
|
85
85
|
selectedOfferDetails,
|
|
86
86
|
eventContextTags,
|
|
87
|
+
waitEventContextTags,
|
|
87
88
|
forwardedTags,
|
|
88
89
|
onTagSelect,
|
|
89
90
|
restrictPersonalization = false,
|
|
@@ -99,6 +100,7 @@ const MemoizedTagList = memo(({
|
|
|
99
100
|
injectedTags={injectedTags}
|
|
100
101
|
selectedOfferDetails={selectedOfferDetails}
|
|
101
102
|
eventContextTags={eventContextTags}
|
|
103
|
+
waitEventContextTags={waitEventContextTags}
|
|
102
104
|
forwardedTags={forwardedTags}
|
|
103
105
|
onTagSelect={onTagSelect}
|
|
104
106
|
restrictPersonalization={restrictPersonalization}
|
|
@@ -116,6 +118,7 @@ const MemoizedTagList = memo(({
|
|
|
116
118
|
&& prevProps.injectedTags === nextProps.injectedTags
|
|
117
119
|
&& prevProps.selectedOfferDetails === nextProps.selectedOfferDetails
|
|
118
120
|
&& prevProps.eventContextTags === nextProps.eventContextTags
|
|
121
|
+
&& prevProps.waitEventContextTags === nextProps.waitEventContextTags
|
|
119
122
|
&& prevProps.forwardedTags === nextProps.forwardedTags
|
|
120
123
|
&& prevProps.onTagSelect === nextProps.onTagSelect
|
|
121
124
|
&& prevProps.restrictPersonalization === nextProps.restrictPersonalization
|
|
@@ -152,6 +155,7 @@ const WebPushCreate = ({
|
|
|
152
155
|
forwardedTags,
|
|
153
156
|
selectedOfferDetails = [],
|
|
154
157
|
eventContextTags = [],
|
|
158
|
+
waitEventContextTags = {},
|
|
155
159
|
templateActions: templateActionsProps,
|
|
156
160
|
Templates,
|
|
157
161
|
restrictPersonalization = false,
|
|
@@ -232,6 +236,7 @@ const WebPushCreate = ({
|
|
|
232
236
|
supportedTags: memoizedSupportedTags,
|
|
233
237
|
injectedTags,
|
|
234
238
|
eventContextTags,
|
|
239
|
+
waitEventContextTags,
|
|
235
240
|
});
|
|
236
241
|
const { tags, handleOnTagsContextChange, validationConfig } = tagState;
|
|
237
242
|
const { weCrmAccounts } = Templates;
|
|
@@ -837,12 +842,13 @@ const WebPushCreate = ({
|
|
|
837
842
|
injectedTags,
|
|
838
843
|
selectedOfferDetails,
|
|
839
844
|
eventContextTags,
|
|
845
|
+
waitEventContextTags,
|
|
840
846
|
forwardedTags,
|
|
841
847
|
restrictPersonalization,
|
|
842
848
|
disabled: restrictPersonalization,
|
|
843
849
|
disableTooltipMsg: restrictPersonalization ? formatMessage(messages.personalizationNotSupportedAnonymous) : undefined,
|
|
844
850
|
}),
|
|
845
|
-
[tags, injectedTags, selectedOfferDetails, eventContextTags, forwardedTags, restrictPersonalization, formatMessage],
|
|
851
|
+
[tags, injectedTags, selectedOfferDetails, eventContextTags, waitEventContextTags, forwardedTags, restrictPersonalization, formatMessage],
|
|
846
852
|
);
|
|
847
853
|
|
|
848
854
|
// Memoized TagList components with optimized props
|
|
@@ -1083,6 +1089,7 @@ WebPushCreate.propTypes = {
|
|
|
1083
1089
|
forwardedTags: PropTypes.object,
|
|
1084
1090
|
selectedOfferDetails: PropTypes.array,
|
|
1085
1091
|
eventContextTags: PropTypes.array,
|
|
1092
|
+
waitEventContextTags: PropTypes.object,
|
|
1086
1093
|
templateActions: PropTypes.object,
|
|
1087
1094
|
restrictPersonalization: PropTypes.bool,
|
|
1088
1095
|
};
|
|
@@ -1111,6 +1118,7 @@ WebPushCreate.defaultProps = {
|
|
|
1111
1118
|
forwardedTags: {},
|
|
1112
1119
|
selectedOfferDetails: [],
|
|
1113
1120
|
eventContextTags: [],
|
|
1121
|
+
waitEventContextTags: {},
|
|
1114
1122
|
templateActions: {},
|
|
1115
1123
|
Templates: {},
|
|
1116
1124
|
restrictPersonalization: false,
|
|
@@ -180,6 +180,7 @@ export const Whatsapp = (props) => {
|
|
|
180
180
|
getFormData,
|
|
181
181
|
selectedOfferDetails,
|
|
182
182
|
eventContextTags,
|
|
183
|
+
waitEventContextTags = {},
|
|
183
184
|
metaDataStatus = "",
|
|
184
185
|
showTestAndPreviewSlidebox: propsShowTestAndPreviewSlidebox,
|
|
185
186
|
handleTestAndPreview: propsHandleTestAndPreview,
|
|
@@ -950,6 +951,7 @@ const isAuthenticationTemplate = isEqual(templateCategory, WHATSAPP_CATEGORIES.a
|
|
|
950
951
|
injectedTags={injectedTags || {}}
|
|
951
952
|
selectedOfferDetails={selectedOfferDetails}
|
|
952
953
|
eventContextTags={eventContextTags}
|
|
954
|
+
waitEventContextTags={waitEventContextTags}
|
|
953
955
|
/>
|
|
954
956
|
)}
|
|
955
957
|
</>
|
|
@@ -1951,6 +1953,7 @@ const isAuthenticationTemplate = isEqual(templateCategory, WHATSAPP_CATEGORIES.a
|
|
|
1951
1953
|
injectedTags={injectedTags || {}}
|
|
1952
1954
|
selectedOfferDetails={selectedOfferDetails}
|
|
1953
1955
|
eventContextTags={eventContextTags}
|
|
1956
|
+
waitEventContextTags={waitEventContextTags}
|
|
1954
1957
|
/>
|
|
1955
1958
|
)
|
|
1956
1959
|
: !isAuthenticationTemplate && (
|
|
@@ -2757,6 +2760,7 @@ const isAuthenticationTemplate = isEqual(templateCategory, WHATSAPP_CATEGORIES.a
|
|
|
2757
2760
|
injectedTags={injectedTags || {}}
|
|
2758
2761
|
selectedOfferDetails={selectedOfferDetails}
|
|
2759
2762
|
eventContextTags={eventContextTags}
|
|
2763
|
+
waitEventContextTags={waitEventContextTags}
|
|
2760
2764
|
/>
|
|
2761
2765
|
)
|
|
2762
2766
|
}
|
|
@@ -2875,6 +2879,7 @@ const isAuthenticationTemplate = isEqual(templateCategory, WHATSAPP_CATEGORIES.a
|
|
|
2875
2879
|
injectedTags={injectedTags || {}}
|
|
2876
2880
|
selectedOfferDetails={selectedOfferDetails}
|
|
2877
2881
|
eventContextTags={eventContextTags}
|
|
2882
|
+
waitEventContextTags={waitEventContextTags}
|
|
2878
2883
|
/>
|
|
2879
2884
|
)}
|
|
2880
2885
|
{isBtnTypeQuickReply && (
|
|
@@ -258543,6 +258543,7 @@ Click {{3}} to unsubscribe'",
|
|
|
258543
258543
|
onContextChange={[Function]}
|
|
258544
258544
|
onTagSelect={[Function]}
|
|
258545
258545
|
tags={Array []}
|
|
258546
|
+
waitEventContextTags={Object {}}
|
|
258546
258547
|
/>
|
|
258547
258548
|
}
|
|
258548
258549
|
title={
|
|
@@ -258595,6 +258596,7 @@ Click {{3}} to unsubscribe'",
|
|
|
258595
258596
|
onContextChange={[Function]}
|
|
258596
258597
|
onTagSelect={[Function]}
|
|
258597
258598
|
tags={Array []}
|
|
258599
|
+
waitEventContextTags={Object {}}
|
|
258598
258600
|
>
|
|
258599
258601
|
<div
|
|
258600
258602
|
className="tag-mock"
|
|
@@ -258612,6 +258614,7 @@ Click {{3}} to unsubscribe'",
|
|
|
258612
258614
|
onContextChange={[Function]}
|
|
258613
258615
|
onTagSelect={[Function]}
|
|
258614
258616
|
tags={Array []}
|
|
258617
|
+
waitEventContextTags={Object {}}
|
|
258615
258618
|
>
|
|
258616
258619
|
TagList
|
|
258617
258620
|
</div>
|
|
@@ -260161,6 +260164,7 @@ T&C'
|
|
|
260161
260164
|
key=".2"
|
|
260162
260165
|
tags={Array []}
|
|
260163
260166
|
updateHandler={[Function]}
|
|
260167
|
+
waitEventContextTags={Object {}}
|
|
260164
260168
|
>
|
|
260165
260169
|
<CapWhatsappCTA
|
|
260166
260170
|
ctaData={
|
|
@@ -262436,6 +262440,7 @@ new message content.",
|
|
|
262436
262440
|
isEditFlow={true}
|
|
262437
262441
|
tags={Array []}
|
|
262438
262442
|
updateHandler={[Function]}
|
|
262443
|
+
waitEventContextTags={Object {}}
|
|
262439
262444
|
>
|
|
262440
262445
|
<CapRow
|
|
262441
262446
|
align="middle"
|
|
@@ -311074,6 +311079,7 @@ Click {{3}} to unsubscribe'",
|
|
|
311074
311079
|
onContextChange={[Function]}
|
|
311075
311080
|
onTagSelect={[Function]}
|
|
311076
311081
|
tags={Array []}
|
|
311082
|
+
waitEventContextTags={Object {}}
|
|
311077
311083
|
/>
|
|
311078
311084
|
}
|
|
311079
311085
|
title={
|
|
@@ -311126,6 +311132,7 @@ Click {{3}} to unsubscribe'",
|
|
|
311126
311132
|
onContextChange={[Function]}
|
|
311127
311133
|
onTagSelect={[Function]}
|
|
311128
311134
|
tags={Array []}
|
|
311135
|
+
waitEventContextTags={Object {}}
|
|
311129
311136
|
>
|
|
311130
311137
|
<div
|
|
311131
311138
|
className="tag-mock"
|
|
@@ -311143,6 +311150,7 @@ Click {{3}} to unsubscribe'",
|
|
|
311143
311150
|
onContextChange={[Function]}
|
|
311144
311151
|
onTagSelect={[Function]}
|
|
311145
311152
|
tags={Array []}
|
|
311153
|
+
waitEventContextTags={Object {}}
|
|
311146
311154
|
>
|
|
311147
311155
|
TagList
|
|
311148
311156
|
</div>
|
|
@@ -312692,6 +312700,7 @@ T&C'
|
|
|
312692
312700
|
key=".2"
|
|
312693
312701
|
tags={Array []}
|
|
312694
312702
|
updateHandler={[Function]}
|
|
312703
|
+
waitEventContextTags={Object {}}
|
|
312695
312704
|
>
|
|
312696
312705
|
<CapWhatsappCTA
|
|
312697
312706
|
ctaData={
|
|
@@ -314967,6 +314976,7 @@ new message content.",
|
|
|
314967
314976
|
isEditFlow={true}
|
|
314968
314977
|
tags={Array []}
|
|
314969
314978
|
updateHandler={[Function]}
|
|
314979
|
+
waitEventContextTags={Object {}}
|
|
314970
314980
|
>
|
|
314971
314981
|
<CapRow
|
|
314972
314982
|
align="middle"
|
|
@@ -337743,6 +337753,7 @@ Click {{unsubscribe}} to unsubscribe",
|
|
|
337743
337753
|
onContextChange={[Function]}
|
|
337744
337754
|
onTagSelect={[Function]}
|
|
337745
337755
|
tags={Array []}
|
|
337756
|
+
waitEventContextTags={Object {}}
|
|
337746
337757
|
/>
|
|
337747
337758
|
}
|
|
337748
337759
|
title={
|
|
@@ -337795,6 +337806,7 @@ Click {{unsubscribe}} to unsubscribe",
|
|
|
337795
337806
|
onContextChange={[Function]}
|
|
337796
337807
|
onTagSelect={[Function]}
|
|
337797
337808
|
tags={Array []}
|
|
337809
|
+
waitEventContextTags={Object {}}
|
|
337798
337810
|
>
|
|
337799
337811
|
<div
|
|
337800
337812
|
className="tag-mock"
|
|
@@ -337812,6 +337824,7 @@ Click {{unsubscribe}} to unsubscribe",
|
|
|
337812
337824
|
onContextChange={[Function]}
|
|
337813
337825
|
onTagSelect={[Function]}
|
|
337814
337826
|
tags={Array []}
|
|
337827
|
+
waitEventContextTags={Object {}}
|
|
337815
337828
|
>
|
|
337816
337829
|
TagList
|
|
337817
337830
|
</div>
|
|
@@ -339224,6 +339237,7 @@ Click {{unsubscribe}} to unsubscribe",
|
|
|
339224
339237
|
key=".2"
|
|
339225
339238
|
tags={Array []}
|
|
339226
339239
|
updateHandler={[Function]}
|
|
339240
|
+
waitEventContextTags={Object {}}
|
|
339227
339241
|
>
|
|
339228
339242
|
<CapWhatsappCTA
|
|
339229
339243
|
ctaData={
|
|
@@ -341499,6 +341513,7 @@ new message content.",
|
|
|
341499
341513
|
isEditFlow={true}
|
|
341500
341514
|
tags={Array []}
|
|
341501
341515
|
updateHandler={[Function]}
|
|
341516
|
+
waitEventContextTags={Object {}}
|
|
341502
341517
|
>
|
|
341503
341518
|
<CapRow
|
|
341504
341519
|
align="middle"
|
|
@@ -363096,6 +363111,7 @@ new message content.",
|
|
|
363096
363111
|
onContextChange={[Function]}
|
|
363097
363112
|
onTagSelect={[Function]}
|
|
363098
363113
|
tags={Array []}
|
|
363114
|
+
waitEventContextTags={Object {}}
|
|
363099
363115
|
/>
|
|
363100
363116
|
}
|
|
363101
363117
|
title={
|
|
@@ -363148,6 +363164,7 @@ new message content.",
|
|
|
363148
363164
|
onContextChange={[Function]}
|
|
363149
363165
|
onTagSelect={[Function]}
|
|
363150
363166
|
tags={Array []}
|
|
363167
|
+
waitEventContextTags={Object {}}
|
|
363151
363168
|
>
|
|
363152
363169
|
<div
|
|
363153
363170
|
className="tag-mock"
|
|
@@ -363165,6 +363182,7 @@ new message content.",
|
|
|
363165
363182
|
onContextChange={[Function]}
|
|
363166
363183
|
onTagSelect={[Function]}
|
|
363167
363184
|
tags={Array []}
|
|
363185
|
+
waitEventContextTags={Object {}}
|
|
363168
363186
|
>
|
|
363169
363187
|
TagList
|
|
363170
363188
|
</div>
|
|
@@ -364576,6 +364594,7 @@ new message content.",
|
|
|
364576
364594
|
key=".2"
|
|
364577
364595
|
tags={Array []}
|
|
364578
364596
|
updateHandler={[Function]}
|
|
364597
|
+
waitEventContextTags={Object {}}
|
|
364579
364598
|
>
|
|
364580
364599
|
<CapWhatsappCTA
|
|
364581
364600
|
ctaData={
|
|
@@ -366842,6 +366861,7 @@ new message content.",
|
|
|
366842
366861
|
isEditFlow={true}
|
|
366843
366862
|
tags={Array []}
|
|
366844
366863
|
updateHandler={[Function]}
|
|
366864
|
+
waitEventContextTags={Object {}}
|
|
366845
366865
|
>
|
|
366846
366866
|
<CapRow
|
|
366847
366867
|
align="middle"
|
|
@@ -76,6 +76,7 @@ export const Zalo = (props) => {
|
|
|
76
76
|
selectedOfferDetails,
|
|
77
77
|
hostName: zaloHostName = '',
|
|
78
78
|
eventContextTags,
|
|
79
|
+
waitEventContextTags,
|
|
79
80
|
metaDataStatus = "",
|
|
80
81
|
// TestAndPreviewSlidebox props
|
|
81
82
|
showTestAndPreviewSlidebox: propsShowTestAndPreviewSlidebox,
|
|
@@ -519,6 +520,7 @@ export const Zalo = (props) => {
|
|
|
519
520
|
injectedTags={injectedTags || {}}
|
|
520
521
|
selectedOfferDetails={selectedOfferDetails}
|
|
521
522
|
eventContextTags={eventContextTags}
|
|
523
|
+
waitEventContextTags={waitEventContextTags}
|
|
522
524
|
/>
|
|
523
525
|
}
|
|
524
526
|
/>
|