@capillarytech/creatives-library 8.0.159 → 8.0.160
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/components/BreadCrumbs/index.js +65 -0
- package/components/BreadCrumbs/messages.js +13 -0
- package/components/CapTagList/index.js +235 -0
- package/components/CapTagList/messages.js +45 -0
- package/components/Card/_customCard.scss +40 -0
- package/components/Card/index.js +78 -0
- package/components/Card/tests/__snapshots__/index.test.js.snap +22 -0
- package/components/Card/tests/index.test.js +20 -0
- package/components/CardGrid/index.js +71 -0
- package/components/Ckeditor/index.js +238 -0
- package/components/Ckeditor/messages.js +13 -0
- package/components/Ckeditor/style.scss +3 -0
- package/components/Component/index.js +29 -0
- package/components/CustomPopOver/index.js +81 -0
- package/components/CustomPopOver/messages.js +17 -0
- package/components/DateFilter/index.js +349 -0
- package/components/DateFilter/messages.js +57 -0
- package/components/DateRange/index.js +114 -0
- package/components/DateRange/messages.js +25 -0
- package/components/Edmeditor/index.js +65 -0
- package/components/Edmeditor/messages.js +13 -0
- package/components/EmailPreview/_emailPreview.scss +119 -0
- package/components/EmailPreview/assets/images/iPad.svg +10 -0
- package/components/EmailPreview/assets/images/mobile.png +0 -0
- package/components/EmailPreview/index.js +107 -0
- package/components/EmailPreview/messages.js +33 -0
- package/components/Footer/index.js +27 -0
- package/components/Footer/messages.js +13 -0
- package/components/FormBuilder/_formBuilder.scss +83 -0
- package/components/FormBuilder/index.js +3279 -0
- package/components/FormBuilder/messages.js +61 -0
- package/components/Header/index.js +44 -0
- package/components/Header/messages.js +29 -0
- package/components/ImagePreview/_imagePreview.scss +63 -0
- package/components/ImagePreview/index.js +52 -0
- package/components/ImagePreview/messages.js +17 -0
- package/components/PageHeader/_pageHeader.scss +22 -0
- package/components/PageHeader/index.js +37 -0
- package/components/PageHeader/messages.js +13 -0
- package/components/Pagination/_pagination.scss +5 -0
- package/components/Pagination/index.js +49 -0
- package/components/PreviewSideBar/_previewsidebar.scss +28 -0
- package/components/PreviewSideBar/index.js +152 -0
- package/components/PreviewSideBar/messages.js +41 -0
- package/components/Sidebar/_sidebar.scss +115 -0
- package/components/Sidebar/index.js +214 -0
- package/components/Sidebar/messages.js +21 -0
- package/components/SlideBox/_slideBox.scss +63 -0
- package/components/SlideBox/index.js +47 -0
- package/components/SlideBox/tests/index.test.js +103 -0
- package/components/SmsEditor/index.js +55 -0
- package/components/SmsTest/index.js +117 -0
- package/components/SmsTest/messages.js +21 -0
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +42 -0
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +141 -0
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +21 -0
- package/components/TemplatePreview/_templatePreview.scss +642 -0
- package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
- package/components/TemplatePreview/assets/images/androidPushMessage.svg +45 -0
- package/components/TemplatePreview/assets/images/home-screen-android.svg +21 -0
- package/components/TemplatePreview/assets/images/home-screen-ios.svg +16 -0
- package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +135 -0
- package/components/TemplatePreview/assets/images/mobile.svg +24 -0
- package/components/TemplatePreview/assets/images/sms-body.png +0 -0
- package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
- package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
- package/components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -0
- package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +16 -0
- package/components/TemplatePreview/assets/images/user-icon.svg +19 -0
- package/components/TemplatePreview/assets/images/wechat-mobile.svg +78 -0
- package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -0
- package/components/TemplatePreview/index.js +617 -0
- package/components/TemplatePreview/messages.js +78 -0
- package/components/Toastr/index.js +60 -0
- package/components/Toastr/messages.js +13 -0
- package/components/ToastrMessage/index.js +113 -0
- package/components/ToastrMessage/messages.js +17 -0
- package/components/TopBar/_topbar.scss +46 -0
- package/components/TopBar/assets/images/capillary_logo.png +0 -0
- package/components/TopBar/assets/images/old_capillary_logo.png +0 -0
- package/components/TopBar/index.js +113 -0
- package/components/TopBar/messages.js +29 -0
- package/containers/App/actions.js +7 -0
- package/containers/App/constants.js +114 -0
- package/containers/App/index.js +52 -0
- package/containers/App/reducer.js +19 -0
- package/containers/App/sagas.js +31 -0
- package/containers/App/selectors.js +25 -0
- package/containers/App/test/saga.test.js +11 -0
- package/containers/Assets/Gallery/_gallery.scss +126 -0
- package/containers/Assets/Gallery/actions.js +37 -0
- package/containers/Assets/Gallery/constants.js +23 -0
- package/containers/Assets/Gallery/index.js +473 -0
- package/containers/Assets/Gallery/messages.js +93 -0
- package/containers/Assets/Gallery/reducer.js +81 -0
- package/containers/Assets/Gallery/sagas.js +80 -0
- package/containers/Assets/Gallery/selectors.js +25 -0
- package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +9 -0
- package/containers/Assets/Gallery/tests/actions.test.js +25 -0
- package/containers/Assets/Gallery/tests/reducer.test.js +96 -0
- package/containers/Assets/Gallery/tests/saga.test.js +157 -0
- package/containers/Cap/actions.js +66 -0
- package/containers/Cap/constants.js +25 -0
- package/containers/Cap/index.js +402 -0
- package/containers/Cap/messages.js +75 -0
- package/containers/Cap/reducer.js +113 -0
- package/containers/Cap/sagas.js +159 -0
- package/containers/Cap/selectors.js +75 -0
- package/containers/Cap/tests/__snapshots__/index.test.js.snap +2270 -0
- package/containers/Cap/tests/index.test.js +22 -0
- package/containers/Cap/tests/saga.test.js +284 -0
- package/containers/Dashboard/actions.js +15 -0
- package/containers/Dashboard/constants.js +7 -0
- package/containers/Dashboard/index.js +76 -0
- package/containers/Dashboard/messages.js +13 -0
- package/containers/Dashboard/reducer.js +21 -0
- package/containers/Dashboard/sagas.js +17 -0
- package/containers/Dashboard/selectors.js +25 -0
- package/containers/Dashboard/test/saga.test.js +9 -0
- package/containers/Ebill/_ebill.scss +5 -0
- package/containers/Ebill/actions.js +43 -0
- package/containers/Ebill/constants.js +20 -0
- package/containers/Ebill/index.js +1278 -0
- package/containers/Ebill/messages.js +77 -0
- package/containers/Ebill/reducer.js +72 -0
- package/containers/Ebill/sagas.js +74 -0
- package/containers/Ebill/selectors.js +25 -0
- package/containers/Ebill/test/saga.test.js +11 -0
- package/containers/Email/_email.scss +141 -0
- package/containers/Email/actions.js +81 -0
- package/containers/Email/constants.js +36 -0
- package/containers/Email/index.js +3325 -0
- package/containers/Email/messages.js +289 -0
- package/containers/Email/reducer.js +142 -0
- package/containers/Email/sagas.js +135 -0
- package/containers/Email/selectors.js +31 -0
- package/containers/Email/test/saga.test.js +671 -0
- package/containers/LanguageProvider/actions.js +17 -0
- package/containers/LanguageProvider/constants.js +8 -0
- package/containers/LanguageProvider/index.js +80 -0
- package/containers/LanguageProvider/reducer.js +30 -0
- package/containers/LanguageProvider/selectors.js +20 -0
- package/containers/LanguageProvider/tests/actions.test.js +19 -0
- package/containers/LanguageProvider/tests/index.test.js +78 -0
- package/containers/LanguageProvider/tests/reducer.test.js +20 -0
- package/containers/LanguageProvider/tests/selectors.test.js +15 -0
- package/containers/Line/Create/_lineCreate.scss +54 -0
- package/containers/Line/Create/actions.js +90 -0
- package/containers/Line/Create/constants.js +39 -0
- package/containers/Line/Create/index.js +836 -0
- package/containers/Line/Create/messages.js +189 -0
- package/containers/Line/Create/reducer.js +99 -0
- package/containers/Line/Create/sagas.js +121 -0
- package/containers/Line/Create/selectors.js +36 -0
- package/containers/Line/Create/tests/saga.test.js +202 -0
- package/containers/Line/Edit/_lineEdit.scss +35 -0
- package/containers/Line/Edit/actions.js +79 -0
- package/containers/Line/Edit/constants.js +27 -0
- package/containers/Line/Edit/index.js +1050 -0
- package/containers/Line/Edit/messages.js +177 -0
- package/containers/Line/Edit/reducer.js +83 -0
- package/containers/Line/Edit/sagas.js +80 -0
- package/containers/Line/Edit/selectors.js +29 -0
- package/containers/Line/Edit/test/saga.test.js +160 -0
- package/containers/Login/assets/images/capillary_logo.png +0 -0
- package/containers/Login/components/LoginForm/index.js +62 -0
- package/containers/Login/components/LoginForm/messages.js +33 -0
- package/containers/Login/index.js +130 -0
- package/containers/Login/messages.js +25 -0
- package/containers/Login/selectors.js +25 -0
- package/containers/MobilePush/Create/_mobilePushCreate.scss +39 -0
- package/containers/MobilePush/Create/actions.js +46 -0
- package/containers/MobilePush/Create/constants.js +23 -0
- package/containers/MobilePush/Create/index.js +2303 -0
- package/containers/MobilePush/Create/messages.js +269 -0
- package/containers/MobilePush/Create/reducer.js +70 -0
- package/containers/MobilePush/Create/sagas.js +74 -0
- package/containers/MobilePush/Create/selectors.js +28 -0
- package/containers/MobilePush/Create/test/saga.test.js +19 -0
- package/containers/MobilePush/Edit/_mobilePushCreate.scss +39 -0
- package/containers/MobilePush/Edit/actions.js +91 -0
- package/containers/MobilePush/Edit/constants.js +35 -0
- package/containers/MobilePush/Edit/index.js +2601 -0
- package/containers/MobilePush/Edit/messages.js +266 -0
- package/containers/MobilePush/Edit/reducer.js +112 -0
- package/containers/MobilePush/Edit/sagas.js +126 -0
- package/containers/MobilePush/Edit/selectors.js +29 -0
- package/containers/MobilePush/Edit/tests/saga.test.js +255 -0
- package/containers/NotFoundPage/index.js +25 -0
- package/containers/NotFoundPage/messages.js +13 -0
- package/containers/NotFoundPage/tests/index.test.js +17 -0
- package/containers/Sms/Create/_smsCreate.scss +42 -0
- package/containers/Sms/Create/actions.js +27 -0
- package/containers/Sms/Create/constants.js +16 -0
- package/containers/Sms/Create/index.js +1488 -0
- package/containers/Sms/Create/messages.js +109 -0
- package/containers/Sms/Create/reducer.js +41 -0
- package/containers/Sms/Create/sagas.js +40 -0
- package/containers/Sms/Create/selectors.js +28 -0
- package/containers/Sms/Create/test/saga.test.js +11 -0
- package/containers/Sms/Edit/actions.js +40 -0
- package/containers/Sms/Edit/constants.js +17 -0
- package/containers/Sms/Edit/index.js +1472 -0
- package/containers/Sms/Edit/messages.js +105 -0
- package/containers/Sms/Edit/reducer.js +50 -0
- package/containers/Sms/Edit/sagas.js +60 -0
- package/containers/Sms/Edit/selectors.js +32 -0
- package/containers/Sms/Edit/test/saga.test.js +13 -0
- package/containers/TagList/_tagList.scss +8 -0
- package/containers/TagList/actions.js +15 -0
- package/containers/TagList/constants.js +32 -0
- package/containers/TagList/index.js +236 -0
- package/containers/TagList/messages.js +13 -0
- package/containers/TagList/reducer.js +23 -0
- package/containers/TagList/sagas.js +11 -0
- package/containers/TagList/selectors.js +25 -0
- package/containers/Templates/_templates.scss +333 -0
- package/containers/Templates/actions.js +103 -0
- package/containers/Templates/constants.js +60 -0
- package/containers/Templates/index.js +1756 -0
- package/containers/Templates/messages.js +337 -0
- package/containers/Templates/reducer.js +142 -0
- package/containers/Templates/sagas.js +163 -0
- package/containers/Templates/selectors.js +28 -0
- package/containers/Templates/test/saga.test.js +241 -0
- package/containers/WeChat/MapTemplates/_mapTemplates.scss +8 -0
- package/containers/WeChat/MapTemplates/actions.js +52 -0
- package/containers/WeChat/MapTemplates/constants.js +28 -0
- package/containers/WeChat/MapTemplates/index.js +1610 -0
- package/containers/WeChat/MapTemplates/messages.js +157 -0
- package/containers/WeChat/MapTemplates/reducer.js +74 -0
- package/containers/WeChat/MapTemplates/sagas.js +84 -0
- package/containers/WeChat/MapTemplates/selectors.js +25 -0
- package/containers/WeChat/MapTemplates/test/saga.test.js +155 -0
- package/containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +57 -0
- package/containers/WeChat/RichmediaTemplates/Create/actions.js +36 -0
- package/containers/WeChat/RichmediaTemplates/Create/constants.js +15 -0
- package/containers/WeChat/RichmediaTemplates/Create/index.js +1071 -0
- package/containers/WeChat/RichmediaTemplates/Create/messages.js +165 -0
- package/containers/WeChat/RichmediaTemplates/Create/reducer.js +60 -0
- package/containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +497 -0
- package/containers/WeChat/RichmediaTemplates/Create/sagas.js +51 -0
- package/containers/WeChat/RichmediaTemplates/Create/selectors.js +37 -0
- package/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +13 -0
- package/containers/WeChat/RichmediaTemplates/Edit/actions.js +20 -0
- package/containers/WeChat/RichmediaTemplates/Edit/constants.js +10 -0
- package/containers/WeChat/RichmediaTemplates/Edit/index.js +136 -0
- package/containers/WeChat/RichmediaTemplates/Edit/messages.js +13 -0
- package/containers/WeChat/RichmediaTemplates/Edit/reducer.js +28 -0
- package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +36 -0
- package/containers/WeChat/RichmediaTemplates/Edit/selectors.js +30 -0
- package/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +12 -0
- package/containers/WeChat/RichmediaTemplates/View/actions.js +15 -0
- package/containers/WeChat/RichmediaTemplates/View/constants.js +7 -0
- package/containers/WeChat/RichmediaTemplates/View/index.js +47 -0
- package/containers/WeChat/RichmediaTemplates/View/messages.js +21 -0
- package/containers/WeChat/RichmediaTemplates/View/reducer.js +23 -0
- package/containers/WeChat/RichmediaTemplates/View/sagas.js +11 -0
- package/containers/WeChat/RichmediaTemplates/View/selectors.js +25 -0
- package/index.js +2 -4
- package/package.json +1 -1
- package/routes.js +202 -136
- package/services/getSchema.js +1 -1
- package/services/localStorageApi.js +0 -1
- package/tests/i18n.test.js +1 -1
- package/utils/asyncInjectors.js +78 -0
- package/utils/authWrapper.js +1 -1
- package/utils/callNativeEvent.js +16 -0
- package/utils/checkStore.js +21 -0
- package/utils/common.js +2 -2
- package/utils/customAuthWrapper.js +62 -0
- package/utils/customConnectedAuthWrapper.js +26 -0
- package/utils/tagValidations.js +1 -1
- package/utils/tests/authWrapper.test.js +1 -1
- package/utils/tests/checkStore.test.js +1 -1
- package/utils/tests/customAuth.test.js +1 -1
- package/utils/transformerUtils.js +1 -1
- package/v2Components/CapTagList/index.js +14 -9
- package/v2Components/Carousel/style.scss +1 -1
- package/v2Components/CustomerSearchSection/index.js +83 -79
- package/v2Components/EmailMobilePreview/index.js +2 -2
- package/v2Components/EmailPreview/_emailPreview.scss +1 -0
- package/v2Components/EmailPreviewV2/_emailPreviewV2.scss +1 -0
- package/v2Components/FormBuilder/index.js +80 -55
- package/v2Components/TemplatePreview/index.js +1 -2
- package/v2Components/TestAndPreviewSlidebox/PreviewSection.js +1 -1
- package/v2Components/TestAndPreviewSlidebox/SendTestMessage.js +1 -1
- package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +2 -1
- package/v2Components/TestAndPreviewSlidebox/index.js +231 -22
- package/v2Components/TestAndPreviewSlidebox/tests/PreviewSection.test.js +1 -1
- package/v2Containers/Cap/tests/saga.test.js +1 -1
- package/v2Containers/CreativesContainer/SlideBoxContent.js +9 -3
- package/v2Containers/CreativesContainer/index.js +22 -15
- package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +599 -1
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +1941 -0
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +5 -0
- package/v2Containers/Email/index.js +116 -32
- package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +3 -0
- package/v2Containers/EmailWrapper/index.js +6 -0
- package/v2Containers/FTP/index.js +1 -1
- package/v2Containers/Line/Container/Text/index.js +1 -1
- package/v2Containers/Sms/Create/index.js +1 -1
- package/v2Containers/Sms/Edit/index.js +1 -1
- package/v2Containers/TagList/index.js +1 -1
- package/v2Containers/TagList/utils.js +1 -1
- package/v2Containers/Templates/index.js +1 -1
- package/v2Containers/Templates/sagas.js +1 -1
- package/constants/unified.js +0 -189
|
@@ -30,8 +30,15 @@ import { FormattedMessage, injectIntl, intlShape } from 'react-intl';
|
|
|
30
30
|
import { createStructuredSelector } from 'reselect';
|
|
31
31
|
import messages from './messages';
|
|
32
32
|
import { makeSelectLoyaltyPromotionDisplay } from '../../v2Containers/Cap/selectors';
|
|
33
|
-
import { CARD_RELATED_TAGS, HOSPITALITY_RELATED_TAGS, CUSTOMER_BARCODE_TAG
|
|
33
|
+
import { CARD_RELATED_TAGS, HOSPITALITY_RELATED_TAGS, CUSTOMER_BARCODE_TAG } from '../../containers/App/constants';
|
|
34
34
|
import { hasCardBasedScope, hasCustomerBarcodeFeatureEnabled, hasHospitalityBasedScope } from '../../utils/common';
|
|
35
|
+
|
|
36
|
+
import {
|
|
37
|
+
GET_TRANSLATION_MAPPED,
|
|
38
|
+
JAPANESE_HELP_TEXT,
|
|
39
|
+
TAG_TRANSLATION_DOC,
|
|
40
|
+
STRING,
|
|
41
|
+
} from "../../containers/TagList/constants";
|
|
35
42
|
import { EMAIL, JP_LOCALE_HIDE_FEATURE, LOYALTY } from '../../v2Containers/App/constants';
|
|
36
43
|
import { hidingDateTagsForJpLocale } from '../../v2Containers/TagList/utils';
|
|
37
44
|
|
|
@@ -125,10 +132,9 @@ class CapTagList extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
125
132
|
getSearchedExpandedKeys(tags, value = '') {
|
|
126
133
|
let list = [];
|
|
127
134
|
_.forEach(tags, (val = {}, key) => {
|
|
128
|
-
const tagName =
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
: _.toLower(_.get(val, "name.props.defaultMessage", ""));
|
|
135
|
+
const tagName = typeof val?.name === STRING
|
|
136
|
+
? _.toLower(_.get(val, "name", ""))
|
|
137
|
+
: _.toLower(_.get(val, "name.props.defaultMessage", ""));
|
|
132
138
|
const tagNameWithoutUnderscore = tagName.replace(/_/g, " ");
|
|
133
139
|
const searchStringLower = _.toLower(value);
|
|
134
140
|
if (_.has(val, "subtags")) {
|
|
@@ -261,10 +267,9 @@ class CapTagList extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
261
267
|
supportedTagsString += `${supportedTag} ,`;
|
|
262
268
|
});
|
|
263
269
|
supportedTagsString = supportedTagsString.replace(/,\s*$/, "");
|
|
264
|
-
const tagName =
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
: _.toLower(_.get(val, "name.props.defaultMessage", ""));
|
|
270
|
+
const tagName = typeof val?.name === STRING
|
|
271
|
+
? _.toLower(_.get(val, "name", ""))
|
|
272
|
+
: _.toLower(_.get(val, "name.props.defaultMessage", ""));
|
|
268
273
|
const tagNameWithoutUnderscore = tagName.replace(/_/g, " ");
|
|
269
274
|
const searchStringLower = _.toLower(searchString);
|
|
270
275
|
const tagContainsSearchedString = searchStringLower
|
|
@@ -69,7 +69,9 @@ const CustomerSearchSection = ({
|
|
|
69
69
|
if (value?.trim()) {
|
|
70
70
|
debouncedSearch(value.trim());
|
|
71
71
|
} else {
|
|
72
|
-
onClearSearch
|
|
72
|
+
if (onClearSearch && typeof onClearSearch === 'function') {
|
|
73
|
+
onClearSearch();
|
|
74
|
+
}
|
|
73
75
|
setShowDropdown(false);
|
|
74
76
|
}
|
|
75
77
|
},
|
|
@@ -182,86 +184,88 @@ const CustomerSearchSection = ({
|
|
|
182
184
|
|
|
183
185
|
return (
|
|
184
186
|
<CapRow className="customer-search-section">
|
|
185
|
-
<
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
<CapRow
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
<
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
<
|
|
215
|
-
<
|
|
216
|
-
|
|
217
|
-
</CapCard>
|
|
218
|
-
)}
|
|
219
|
-
</CapRow>
|
|
220
|
-
<CapRow type="flex" justify="center" align="middle">
|
|
221
|
-
{processedSearchData?.length > 0 && (
|
|
222
|
-
<CapCard className="search-result-card scroll-bar">
|
|
223
|
-
{
|
|
224
|
-
<CapRow className="identifier-row">
|
|
225
|
-
{processedSearchData?.map((d) => (
|
|
226
|
-
<>
|
|
227
|
-
<CapLink
|
|
228
|
-
key={d?.customerId}
|
|
229
|
-
className="search-results-height link-result"
|
|
230
|
-
title={(
|
|
231
|
-
<>
|
|
232
|
-
<CapRow type="flex" align="middle" gutter={16}>
|
|
233
|
-
<CapColumn data-testid="namingIcon">
|
|
234
|
-
<CapRow className="customer-common-profile">{getNamingIcon(d?.name)}</CapRow>
|
|
235
|
-
</CapColumn>
|
|
236
|
-
<CapColumn>
|
|
237
|
-
<CapRow type="flex" gutter={12}>
|
|
238
|
-
<CapColumn data-testid="searchResultName">
|
|
239
|
-
<CapHeading className="search-text" type="h4">
|
|
240
|
-
{d?.name}
|
|
241
|
-
</CapHeading>
|
|
242
|
-
</CapColumn>
|
|
243
|
-
</CapRow>
|
|
244
|
-
{(
|
|
245
|
-
<CapRow type="flex">
|
|
246
|
-
{showIdentifiers(d?.identifiers)}
|
|
247
|
-
</CapRow>
|
|
248
|
-
)}
|
|
249
|
-
</CapColumn>
|
|
250
|
-
</CapRow>
|
|
251
|
-
</>
|
|
252
|
-
)}
|
|
253
|
-
onClick={() => handleCustomerSelectItem(d)}
|
|
254
|
-
/>
|
|
255
|
-
</>
|
|
256
|
-
))}
|
|
187
|
+
<div ref={searchContainerRef}>
|
|
188
|
+
<CapRow className="search-container">
|
|
189
|
+
{selectedCustomer ? (
|
|
190
|
+
<SelectedCustomerView
|
|
191
|
+
customer={selectedCustomer}
|
|
192
|
+
onClear={onClear}
|
|
193
|
+
showIdentifiers={showIdentifiers}
|
|
194
|
+
/>
|
|
195
|
+
) : (
|
|
196
|
+
<SearchInput
|
|
197
|
+
value={customerSearchValue}
|
|
198
|
+
onChange={handleSearchChange}
|
|
199
|
+
isLoading={isSearchingCustomer}
|
|
200
|
+
error={searchError}
|
|
201
|
+
disabled={disabled}
|
|
202
|
+
placeholder={formatMessage(messages.searchPlaceholder)}
|
|
203
|
+
/>
|
|
204
|
+
)}
|
|
205
|
+
{showDropdown && !selectedCustomer && (
|
|
206
|
+
<CapRow className="search-dropdown-container">
|
|
207
|
+
<CapRow type="flex" justify="center" align="middle">
|
|
208
|
+
{(processedSearchData?.length === 0 && customerSearchValue != null && !isSearchingCustomer) && (
|
|
209
|
+
<CapCard className="validation-card">
|
|
210
|
+
<CapHeading type="h6">
|
|
211
|
+
{formatMessage(messages.noCustomersFound)}
|
|
212
|
+
</CapHeading>
|
|
213
|
+
</CapCard>
|
|
214
|
+
)}
|
|
215
|
+
{(isSearchingCustomer) && (
|
|
216
|
+
<CapCard className="validation-card">
|
|
217
|
+
<CapRow className="spin-card-align">
|
|
218
|
+
<CapSpin />
|
|
257
219
|
</CapRow>
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
220
|
+
</CapCard>
|
|
221
|
+
)}
|
|
222
|
+
</CapRow>
|
|
223
|
+
<CapRow type="flex" justify="center" align="middle">
|
|
224
|
+
{processedSearchData?.length > 0 && (
|
|
225
|
+
<CapCard className="search-result-card scroll-bar">
|
|
226
|
+
{
|
|
227
|
+
<CapRow className="identifier-row">
|
|
228
|
+
{processedSearchData?.map((d) => (
|
|
229
|
+
<>
|
|
230
|
+
<CapLink
|
|
231
|
+
key={d?.customerId}
|
|
232
|
+
className="search-results-height link-result"
|
|
233
|
+
title={(
|
|
234
|
+
<>
|
|
235
|
+
<CapRow type="flex" align="middle" gutter={16}>
|
|
236
|
+
<CapColumn data-testid="namingIcon">
|
|
237
|
+
<CapRow className="customer-common-profile">{getNamingIcon(d?.name)}</CapRow>
|
|
238
|
+
</CapColumn>
|
|
239
|
+
<CapColumn>
|
|
240
|
+
<CapRow type="flex" gutter={12}>
|
|
241
|
+
<CapColumn data-testid="searchResultName">
|
|
242
|
+
<CapHeading className="search-text" type="h4">
|
|
243
|
+
{d?.name}
|
|
244
|
+
</CapHeading>
|
|
245
|
+
</CapColumn>
|
|
246
|
+
</CapRow>
|
|
247
|
+
{(
|
|
248
|
+
<CapRow type="flex">
|
|
249
|
+
{showIdentifiers(d?.identifiers)}
|
|
250
|
+
</CapRow>
|
|
251
|
+
)}
|
|
252
|
+
</CapColumn>
|
|
253
|
+
</CapRow>
|
|
254
|
+
</>
|
|
255
|
+
)}
|
|
256
|
+
onClick={() => handleCustomerSelectItem(d)}
|
|
257
|
+
/>
|
|
258
|
+
</>
|
|
259
|
+
))}
|
|
260
|
+
</CapRow>
|
|
261
|
+
}
|
|
262
|
+
</CapCard>
|
|
263
|
+
)}
|
|
264
|
+
</CapRow>
|
|
261
265
|
</CapRow>
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
</
|
|
266
|
+
)}
|
|
267
|
+
</CapRow>
|
|
268
|
+
</div>
|
|
265
269
|
</CapRow>
|
|
266
270
|
);
|
|
267
271
|
};
|
|
@@ -19,8 +19,8 @@ import messages from '../EmailPreviewV2/messages';
|
|
|
19
19
|
import './index.scss';
|
|
20
20
|
import mobileBody from '../../assets/DeviceForEmail.png';
|
|
21
21
|
import { iframePreviewAdjustWidth, removeLinksFromHtmlContent } from './../../utils/common';
|
|
22
|
-
import {selectTemplateContent} from '../../
|
|
23
|
-
import * as templateActions from '../../
|
|
22
|
+
import {selectTemplateContent} from '../../containers/Templates/selectors';
|
|
23
|
+
import * as templateActions from '../../containers/Templates/actions';
|
|
24
24
|
|
|
25
25
|
const deviceAspectRatio = {
|
|
26
26
|
mobile: {
|
|
@@ -54,9 +54,9 @@ import { SMS, MOBILE_PUSH, LINE, ENABLE_AI_SUGGESTIONS,AI_CONTENT_BOT_DISABLED,
|
|
|
54
54
|
import globalMessages from '../../v2Containers/Cap/messages';
|
|
55
55
|
import { convert } from 'html-to-text';
|
|
56
56
|
import { OUTBOUND } from './constants';
|
|
57
|
-
import { GET_TRANSLATION_MAPPED } from '../../constants
|
|
57
|
+
import { GET_TRANSLATION_MAPPED } from '../../containers/TagList/constants';
|
|
58
58
|
import moment from 'moment';
|
|
59
|
-
import { CUSTOMER_BARCODE_TAG , COPY_OF, ENTRY_TRIGGER_TAG_REGEX} from '../../constants
|
|
59
|
+
import { CUSTOMER_BARCODE_TAG , COPY_OF, ENTRY_TRIGGER_TAG_REGEX} from '../../containers/App/constants';
|
|
60
60
|
import { REQUEST } from '../../v2Containers/Cap/constants'
|
|
61
61
|
import { hasLiquidSupportFeature, isEmailUnsubscribeTagMandatory } from '../../utils/common';
|
|
62
62
|
import { isUrl } from '../../v2Containers/Line/Container/Wrapper/utils';
|
|
@@ -235,9 +235,15 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
235
235
|
( !this.state.usingTabContainer || (this.state.usingTabContainer && nextProps.tabKey !== ''))
|
|
236
236
|
&& !_.isEqual(nextProps.formData, this.state.formData) &&
|
|
237
237
|
!_.isEqual(nextProps.formData, this.props.formData)) {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
238
|
+
// Don't run validation if we're in Test & Preview mode
|
|
239
|
+
if (!nextProps.isTestAndPreviewMode) {
|
|
240
|
+
this.setState({formData: nextProps.formData, tabKey: nextProps.tabKey}, () => {
|
|
241
|
+
this.validateForm();
|
|
242
|
+
});
|
|
243
|
+
} else {
|
|
244
|
+
// Just update formData without validation
|
|
245
|
+
this.setState({formData: nextProps.formData, tabKey: nextProps.tabKey});
|
|
246
|
+
}
|
|
241
247
|
//this.resetTabKeys(nextProps.formData, nextProps.tabCount);
|
|
242
248
|
} else if ((_.isEmpty(this.props.formData) || !this.props.formData) && _.isEmpty(this.state.formData)) {
|
|
243
249
|
this.initialiseForm(nextProps.schema, true);
|
|
@@ -265,10 +271,16 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
265
271
|
this.resetTabKeys(nextProps.formData, nextProps.tabCount, false, true);
|
|
266
272
|
}
|
|
267
273
|
if (type === 'embedded' || ( this.props.schema.channel && this.props.schema.channel.toUpperCase() === 'EMAIL')) {
|
|
268
|
-
|
|
274
|
+
// Don't run validation if we're in Test & Preview mode
|
|
275
|
+
if (!nextProps.isTestAndPreviewMode) {
|
|
276
|
+
this.validateForm();
|
|
277
|
+
}
|
|
269
278
|
}
|
|
270
279
|
if ((this.props.schema && this.props.schema.channel && this.props.schema.channel.toUpperCase() === 'MOBILEPUSH')) {
|
|
271
|
-
|
|
280
|
+
// Don't run validation if we're in Test & Preview mode
|
|
281
|
+
if (!nextProps.isTestAndPreviewMode) {
|
|
282
|
+
this.validateForm();
|
|
283
|
+
}
|
|
272
284
|
}
|
|
273
285
|
});
|
|
274
286
|
}
|
|
@@ -286,7 +298,10 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
286
298
|
}
|
|
287
299
|
|
|
288
300
|
this.initialiseForm(nextProps.schema, false, resetTabKeys);
|
|
289
|
-
|
|
301
|
+
// Don't run validation if we're in Test & Preview mode
|
|
302
|
+
if (!nextProps.isTestAndPreviewMode) {
|
|
303
|
+
this.validateForm();
|
|
304
|
+
}
|
|
290
305
|
}
|
|
291
306
|
});
|
|
292
307
|
}
|
|
@@ -299,10 +314,16 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
299
314
|
}
|
|
300
315
|
|
|
301
316
|
if (!_.isEmpty(nextProps.injectedTags) && !_.isEqual(nextProps.injectedTags, this.props.injectedTags)) {
|
|
302
|
-
|
|
317
|
+
// Don't run validation if we're in Test & Preview mode
|
|
318
|
+
if (!nextProps.isTestAndPreviewMode) {
|
|
319
|
+
this.validateForm(nextProps.tags, nextProps.injectedTags);
|
|
320
|
+
}
|
|
303
321
|
}
|
|
304
322
|
if (!_.isEmpty(nextProps.tags) && !_.isEqual(nextProps.tags, this.props.tags)) {
|
|
305
|
-
|
|
323
|
+
// Don't run validation if we're in Test & Preview mode
|
|
324
|
+
if (!nextProps.isTestAndPreviewMode) {
|
|
325
|
+
this.validateForm(nextProps.tags, nextProps.injectedTags);
|
|
326
|
+
}
|
|
306
327
|
}
|
|
307
328
|
if (!_.isEqual(nextProps.showModal, this.props.showModal)) {
|
|
308
329
|
this.setState({showModal: nextProps.showModal});
|
|
@@ -3917,55 +3938,59 @@ FormBuilder.defaultProps = {
|
|
|
3917
3938
|
userLocale: localStorage.getItem('jlocale') || 'en',
|
|
3918
3939
|
showLiquidErrorInFooter: () => {},
|
|
3919
3940
|
metaDataStatus: "",
|
|
3941
|
+
isTestAndPreviewMode: false, // Default to false to maintain existing behavior
|
|
3920
3942
|
};
|
|
3921
3943
|
|
|
3922
3944
|
FormBuilder.propTypes = {
|
|
3923
3945
|
schema: PropTypes.object.isRequired,
|
|
3924
|
-
onSubmit: PropTypes.func,
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
injectedTags: PropTypes.object,
|
|
3934
|
-
onFormValidityChange: PropTypes.func,
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
isNewVersionFlow: PropTypes.bool,
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
startValidation: PropTypes.bool,
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
showLiquidErrorInFooter: PropTypes.
|
|
3968
|
-
|
|
3946
|
+
onSubmit: PropTypes.func.isRequired,
|
|
3947
|
+
onChange: PropTypes.func.isRequired,
|
|
3948
|
+
currentTab: PropTypes.number.isRequired,
|
|
3949
|
+
parent: PropTypes.object.isRequired,
|
|
3950
|
+
formData: PropTypes.object.isRequired,
|
|
3951
|
+
location: PropTypes.object.isRequired,
|
|
3952
|
+
tabKey: PropTypes.string.isRequired,
|
|
3953
|
+
tags: PropTypes.array.isRequired,
|
|
3954
|
+
tagModule: PropTypes.string.isRequired,
|
|
3955
|
+
injectedTags: PropTypes.object.isRequired,
|
|
3956
|
+
onFormValidityChange: PropTypes.func.isRequired,
|
|
3957
|
+
handleCancelModal: PropTypes.func.isRequired,
|
|
3958
|
+
usingTabContainer: PropTypes.bool.isRequired,
|
|
3959
|
+
checkValidation: PropTypes.bool.isRequired,
|
|
3960
|
+
onContextChange: PropTypes.func.isRequired,
|
|
3961
|
+
tabCount: PropTypes.number.isRequired,
|
|
3962
|
+
isNewVersionFlow: PropTypes.bool.isRequired,
|
|
3963
|
+
modal: PropTypes.object.isRequired,
|
|
3964
|
+
showModal: PropTypes.bool.isRequired,
|
|
3965
|
+
isEdit: PropTypes.bool.isRequired,
|
|
3966
|
+
iframeParent: PropTypes.object.isRequired,
|
|
3967
|
+
router: PropTypes.object.isRequired,
|
|
3968
|
+
baseLanguage: PropTypes.string.isRequired,
|
|
3969
|
+
supportedLanguages: PropTypes.array.isRequired,
|
|
3970
|
+
isSchemaChanged: PropTypes.bool.isRequired,
|
|
3971
|
+
cmsTemplates: PropTypes.array.isRequired,
|
|
3972
|
+
getCmsTemplatesInProgress: PropTypes.bool.isRequired,
|
|
3973
|
+
showEdmEmailTemplates: PropTypes.bool.isRequired,
|
|
3974
|
+
toggleEdmEmailTemplateSelection: PropTypes.func.isRequired,
|
|
3975
|
+
handleEdmDefaultTemplateSelection: PropTypes.func.isRequired,
|
|
3976
|
+
setModalContent: PropTypes.func.isRequired,
|
|
3977
|
+
addLanguageType: PropTypes.string.isRequired,
|
|
3978
|
+
startValidation: PropTypes.bool.isRequired,
|
|
3979
|
+
getValidationData: PropTypes.func.isRequired,
|
|
3980
|
+
saveForm: PropTypes.bool.isRequired,
|
|
3981
|
+
stopValidation: PropTypes.func.isRequired,
|
|
3982
|
+
selectedOfferDetails: PropTypes.object.isRequired,
|
|
3983
|
+
saveBeeInstance: PropTypes.func.isRequired,
|
|
3984
|
+
saveBeeData: PropTypes.func.isRequired,
|
|
3985
|
+
uuid: PropTypes.string.isRequired,
|
|
3986
|
+
type: PropTypes.string.isRequired,
|
|
3987
|
+
isEmailLoading: PropTypes.bool.isRequired,
|
|
3988
|
+
moduleType: PropTypes.string.isRequired,
|
|
3989
|
+
showLiquidErrorInFooter: PropTypes.bool.isRequired,
|
|
3990
|
+
eventContextTags: PropTypes.array.isRequired,
|
|
3991
|
+
forwardedTags: PropTypes.object.isRequired,
|
|
3992
|
+
isLoyaltyModule: PropTypes.bool.isRequired,
|
|
3993
|
+
isTestAndPreviewMode: PropTypes.bool, // Add new prop type
|
|
3969
3994
|
};
|
|
3970
3995
|
|
|
3971
3996
|
const mapStateToProps = createStructuredSelector({
|
|
@@ -32,11 +32,10 @@ import {
|
|
|
32
32
|
RCS,
|
|
33
33
|
ZALO,
|
|
34
34
|
INAPP,
|
|
35
|
-
VIBER,
|
|
36
|
-
FACEBOOK,
|
|
37
35
|
MOBILE_PUSH
|
|
38
36
|
} from '../../v2Containers/CreativesContainer/constants';
|
|
39
37
|
import Carousel from '../Carousel';
|
|
38
|
+
import { VIBER, FACEBOOK } from '../../v2Containers/App/constants';
|
|
40
39
|
import whatsappMobileAndroid from './assets/images/whatsapp_mobile_android.svg';
|
|
41
40
|
import inAppMobileAndroidModal from './assets/images/inapp_mobile_android_modal.svg';
|
|
42
41
|
import inAppMobileAndroidTop from './assets/images/inapp_mobile_android_top.svg';
|
|
@@ -15,7 +15,7 @@ const PreviewSection = ({
|
|
|
15
15
|
formatMessage,
|
|
16
16
|
PreviewChrome,
|
|
17
17
|
}) => (
|
|
18
|
-
<CapRow className="preview-section panel-section">
|
|
18
|
+
<CapRow className="test-and-preview-section panel-section">
|
|
19
19
|
<PreviewChrome
|
|
20
20
|
device={previewDevice}
|
|
21
21
|
onDeviceChange={setPreviewDevice}
|
|
@@ -43,7 +43,7 @@ const SendTestMessage = ({
|
|
|
43
43
|
multiple
|
|
44
44
|
placeholder={formatMessage(messages.testCustomersPlaceholder)}
|
|
45
45
|
/>
|
|
46
|
-
<CapButton onClick={handleSendTestMessage} disabled={isEmpty(selectedTestEntities) || isEmpty(formData['template-subject']) || isSendingTestMessage}>
|
|
46
|
+
<CapButton onClick={handleSendTestMessage} disabled={isEmpty(selectedTestEntities) || (isEmpty(formData['template-subject']) && isEmpty(formData[0]?.['template-subject'])) || isSendingTestMessage}>
|
|
47
47
|
<FormattedMessage {...messages.sendTestButton} />
|
|
48
48
|
</CapButton>
|
|
49
49
|
</CapRow>),
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
.test-preview-container {
|
|
31
|
+
margin-left: 2%;
|
|
31
32
|
height: 100%;
|
|
32
33
|
display: flex;
|
|
33
34
|
flex-direction: column;
|
|
@@ -329,7 +330,7 @@
|
|
|
329
330
|
}
|
|
330
331
|
}
|
|
331
332
|
|
|
332
|
-
.preview-section {
|
|
333
|
+
.test-and-preview-section {
|
|
333
334
|
.section-title {
|
|
334
335
|
margin-bottom: $CAP_SPACE_16;
|
|
335
336
|
color: #333;
|