@capillarytech/creatives-library 7.12.32 → 7.12.34
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/Card/tests/index.test.js +10 -12
- package/components/FormBuilder/_formBuilder.scss +1 -1
- package/components/SlideBox/index.js +0 -1
- package/components/SlideBox/tests/index.test.js +2 -2
- package/containers/Assets/Gallery/tests/reducer.test.js +2 -1
- package/containers/Cap/tests/__snapshots__/index.test.js.snap +1876 -0
- package/containers/Cap/tests/index.test.js +16 -10
- package/containers/LanguageProvider/tests/index.test.js +5 -1
- package/i18n.js +6 -4
- package/package.json +4 -1
- package/translations/en.json +42 -119
- package/translations/zh.json +38 -115
- package/utils/test-utils.js +63 -0
- package/v2Components/CapActionButton/index.js +54 -48
- package/v2Components/CapActionButton/tests/index.test.js +33 -24
- package/v2Components/CapWhatsappCTA/constants.js +34 -0
- package/v2Components/CapWhatsappCTA/index.js +321 -0
- package/v2Components/CapWhatsappCTA/index.scss +64 -0
- package/v2Components/CapWhatsappCTA/messages.js +56 -0
- package/v2Components/EmailPreviewV2/index.js +1 -1
- package/v2Components/EmailPreviewV2/tests/__snapshots__/index.test.js.snap +135 -0
- package/v2Components/EmailPreviewV2/tests/index.test.js +8 -2
- package/v2Components/FormBuilder/_formBuilder.scss +1 -1
- package/v2Components/MarketingObjective/index.js +2 -2
- package/v2Components/MarketingObjective/test/index.test.js +33 -0
- package/v2Components/SlideBox/tests/index.test.js +2 -2
- package/v2Components/TemplatePreview/_templatePreview.scss +8 -0
- package/v2Components/TemplatePreview/index.js +29 -2
- package/v2Components/TemplatePreview/tests/__snapshots__/index.test.js.snap +1 -1
- package/v2Containers/Assets/Gallery/tests/reducer.test.js +2 -1
- package/v2Containers/Cap/messages.js +4 -0
- package/v2Containers/Cap/tests/__snapshots__/index.test.js.snap +1930 -0
- package/v2Containers/Cap/tests/index.test.js +56 -10
- package/v2Containers/LanguageProvider/tests/index.test.js +9 -2
- package/v2Containers/LanguageProvider/tests/reducer.test.js +5 -1
- package/v2Containers/Line/Container/Video/index.js +1 -0
- package/v2Containers/Line/Container/Video/tests/index.test.js +62 -0
- package/v2Containers/Rcs/index.js +71 -67
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +2004 -16874
- package/v2Containers/Rcs/tests/index.test.js +7 -12
- package/v2Containers/SmsTrai/Create/tests/__snapshots__/index.test.js.snap +176 -476
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +336 -952
- package/v2Containers/Templates/index.js +10 -5
- package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +499 -419
- package/v2Containers/Templates/tests/index.test.js +8 -4
- package/v2Containers/Whatsapp/constants.js +22 -5
- package/v2Containers/Whatsapp/index.js +199 -9
- package/v2Containers/Whatsapp/index.scss +42 -1
- package/v2Containers/Whatsapp/messages.js +39 -2
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +37677 -5915
- package/v2Containers/Whatsapp/utils.js +37 -0
- package/v2Containers/mockdata.js +47 -0
- package/components/BreadCrumbs/tests/index.test.js +0 -10
- package/components/CapTagList/tests/index.test.js +0 -10
- package/components/CardGrid/tests/index.test.js +0 -10
- package/components/Ckeditor/tests/index.test.js +0 -10
- package/components/Component/tests/index.test.js +0 -10
- package/components/CustomPopOver/tests/index.test.js +0 -10
- package/components/DateFilter/tests/index.test.js +0 -15
- package/components/DateRange/tests/index.test.js +0 -10
- package/components/Edmeditor/tests/index.test.js +0 -10
- package/components/EmailPreview/tests/index.test.js +0 -10
- package/components/Footer/tests/index.test.js +0 -10
- package/components/FormBuilder/tests/index.test.js +0 -10
- package/components/Header/tests/index.test.js +0 -10
- package/components/ImagePreview/tests/index.test.js +0 -10
- package/components/PageHeader/tests/index.test.js +0 -10
- package/components/Pagination/tests/index.test.js +0 -10
- package/components/PreviewSideBar/tests/index.test.js +0 -10
- package/components/Sidebar/tests/index.test.js +0 -10
- package/components/SmsEditor/tests/index.test.js +0 -10
- package/components/SmsTest/tests/index.test.js +0 -10
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/tests/index.test.js +0 -10
- package/components/TemplatePreview/tests/index.test.js +0 -10
- package/components/Toastr/tests/index.test.js +0 -10
- package/components/ToastrMessage/tests/index.test.js +0 -10
- package/components/TopBar/tests/index.test.js +0 -10
- package/containers/App/tests/actions.test.js +0 -18
- package/containers/App/tests/reducer.test.js +0 -9
- package/containers/App/tests/sagas.test.js +0 -15
- package/containers/App/tests/selectors.test.js +0 -10
- package/containers/Assets/Gallery/tests/index.test.js +0 -10
- package/containers/Assets/Gallery/tests/sagas.test.js +0 -15
- package/containers/Assets/Gallery/tests/selectors.test.js +0 -10
- package/containers/Dashboard/tests/actions.test.js +0 -18
- package/containers/Dashboard/tests/index.test.js +0 -10
- package/containers/Dashboard/tests/reducer.test.js +0 -9
- package/containers/Dashboard/tests/sagas.test.js +0 -15
- package/containers/Dashboard/tests/selectors.test.js +0 -10
- package/containers/Ebill/tests/actions.test.js +0 -18
- package/containers/Ebill/tests/index.test.js +0 -10
- package/containers/Ebill/tests/reducer.test.js +0 -9
- package/containers/Ebill/tests/sagas.test.js +0 -15
- package/containers/Ebill/tests/selectors.test.js +0 -10
- package/containers/Email/tests/actions.test.js +0 -18
- package/containers/Email/tests/index.test.js +0 -10
- package/containers/Email/tests/reducer.test.js +0 -9
- package/containers/Email/tests/sagas.test.js +0 -15
- package/containers/Email/tests/selectors.test.js +0 -10
- package/containers/Line/Edit/tests/actions.test.js +0 -18
- package/containers/Line/Edit/tests/index.test.js +0 -10
- package/containers/Line/Edit/tests/reducer.test.js +0 -9
- package/containers/Line/Edit/tests/sagas.test.js +0 -15
- package/containers/Line/Edit/tests/selectors.test.js +0 -10
- package/containers/Login/components/LoginForm/tests/index.test.js +0 -10
- package/containers/Login/tests/index.test.js +0 -10
- package/containers/Login/tests/sagas.test.js +0 -15
- package/containers/Login/tests/selectors.test.js +0 -10
- package/containers/MobilePush/Create/tests/actions.test.js +0 -18
- package/containers/MobilePush/Create/tests/index.test.js +0 -10
- package/containers/MobilePush/Create/tests/reducer.test.js +0 -9
- package/containers/MobilePush/Create/tests/sagas.test.js +0 -15
- package/containers/MobilePush/Create/tests/selectors.test.js +0 -10
- package/containers/MobilePush/Edit/tests/actions.test.js +0 -18
- package/containers/MobilePush/Edit/tests/index.test.js +0 -10
- package/containers/MobilePush/Edit/tests/reducer.test.js +0 -9
- package/containers/MobilePush/Edit/tests/sagas.test.js +0 -15
- package/containers/MobilePush/Edit/tests/selectors.test.js +0 -10
- package/containers/Sms/Create/tests/actions.test.js +0 -18
- package/containers/Sms/Create/tests/index.test.js +0 -10
- package/containers/Sms/Create/tests/reducer.test.js +0 -9
- package/containers/Sms/Create/tests/sagas.test.js +0 -15
- package/containers/Sms/Create/tests/selectors.test.js +0 -10
- package/containers/Sms/Edit/tests/actions.test.js +0 -18
- package/containers/Sms/Edit/tests/index.test.js +0 -10
- package/containers/Sms/Edit/tests/reducer.test.js +0 -9
- package/containers/Sms/Edit/tests/sagas.test.js +0 -15
- package/containers/Sms/Edit/tests/selectors.test.js +0 -10
- package/containers/TagList/tests/actions.test.js +0 -18
- package/containers/TagList/tests/index.test.js +0 -10
- package/containers/TagList/tests/reducer.test.js +0 -9
- package/containers/TagList/tests/sagas.test.js +0 -15
- package/containers/TagList/tests/selectors.test.js +0 -10
- package/containers/Templates/tests/actions.test.js +0 -18
- package/containers/Templates/tests/index.test.js +0 -10
- package/containers/Templates/tests/reducer.test.js +0 -9
- package/containers/Templates/tests/sagas.test.js +0 -15
- package/containers/Templates/tests/selectors.test.js +0 -10
- package/containers/Testv2/tests/actions.test.js +0 -18
- package/containers/Testv2/tests/index.test.js +0 -10
- package/containers/Testv2/tests/reducer.test.js +0 -9
- package/containers/Testv2/tests/sagas.test.js +0 -15
- package/containers/Testv2/tests/selectors.test.js +0 -10
- package/containers/WeChat/MapTemplates/tests/actions.test.js +0 -18
- package/containers/WeChat/MapTemplates/tests/index.test.js +0 -10
- package/containers/WeChat/MapTemplates/tests/reducer.test.js +0 -9
- package/containers/WeChat/MapTemplates/tests/sagas.test.js +0 -15
- package/containers/WeChat/MapTemplates/tests/selectors.test.js +0 -10
- package/containers/WeChat/RichmediaTemplates/Create/tests/actions.test.js +0 -18
- package/containers/WeChat/RichmediaTemplates/Create/tests/index.test.js +0 -10
- package/containers/WeChat/RichmediaTemplates/Create/tests/reducer.test.js +0 -9
- package/containers/WeChat/RichmediaTemplates/Create/tests/sagas.test.js +0 -15
- package/containers/WeChat/RichmediaTemplates/Create/tests/selectors.test.js +0 -10
- package/containers/WeChat/RichmediaTemplates/Edit/tests/actions.test.js +0 -18
- package/containers/WeChat/RichmediaTemplates/Edit/tests/index.test.js +0 -10
- package/containers/WeChat/RichmediaTemplates/Edit/tests/reducer.test.js +0 -9
- package/containers/WeChat/RichmediaTemplates/Edit/tests/sagas.test.js +0 -15
- package/containers/WeChat/RichmediaTemplates/Edit/tests/selectors.test.js +0 -10
- package/containers/WeChat/RichmediaTemplates/View/tests/actions.test.js +0 -18
- package/containers/WeChat/RichmediaTemplates/View/tests/index.test.js +0 -10
- package/containers/WeChat/RichmediaTemplates/View/tests/reducer.test.js +0 -9
- package/containers/WeChat/RichmediaTemplates/View/tests/sagas.test.js +0 -15
- package/containers/WeChat/RichmediaTemplates/View/tests/selectors.test.js +0 -10
- package/gtm/tests/events.test.js +0 -3
- package/v2Components/BreadCrumbs/tests/index.test.js +0 -10
- package/v2Components/CapActionButton/tests/__snapshots__/index.test.js.snap +0 -151
- package/v2Components/CapTagList/tests/index.test.js +0 -10
- package/v2Components/Card/tests/index.test.js +0 -10
- package/v2Components/CardGrid/tests/index.test.js +0 -10
- package/v2Components/Ckeditor/tests/index.test.js +0 -10
- package/v2Components/CmsTemplatesComponent/tests/index.test.js +0 -10
- package/v2Components/Component/tests/index.test.js +0 -10
- package/v2Components/CustomPopOver/tests/index.test.js +0 -10
- package/v2Components/Edmeditor/tests/index.test.js +0 -10
- package/v2Components/EmailPreview/tests/index.test.js +0 -10
- package/v2Components/Footer/tests/index.test.js +0 -10
- package/v2Components/FormBuilder/tests/index.test.js +0 -10
- package/v2Components/ImagePreview/tests/index.test.js +0 -10
- package/v2Components/MobilePushPreviewV2/tests/index.test.js +0 -10
- package/v2Components/NavigationBar/tests/index.test.js +0 -11
- package/v2Components/NewCallTask/tests/index.test.js +0 -10
- package/v2Components/Pagination/tests/index.test.js +0 -10
- package/v2Components/PreviewSideBar/tests/index.test.js +0 -10
- package/v2Components/SmsTest/tests/index.test.js +0 -10
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/tests/index.test.js +0 -10
- package/v2Components/Toastr/tests/index.test.js +0 -10
- package/v2Components/ToastrMessage/tests/index.test.js +0 -10
- package/v2Components/TopBar/tests/index.test.js +0 -10
- package/v2Containers/App/tests/actions.test.js +0 -18
- package/v2Containers/App/tests/reducer.test.js +0 -9
- package/v2Containers/App/tests/sagas.test.js +0 -15
- package/v2Containers/App/tests/selectors.test.js +0 -10
- package/v2Containers/Assets/Gallery/tests/index.test.js +0 -10
- package/v2Containers/Assets/Gallery/tests/sagas.test.js +0 -15
- package/v2Containers/Assets/Gallery/tests/selectors.test.js +0 -10
- package/v2Containers/BeeEditor/tests/index.test.js +0 -10
- package/v2Containers/CallTask/tests/actions.test.js +0 -18
- package/v2Containers/CallTask/tests/index.test.js +0 -10
- package/v2Containers/CallTask/tests/reducer.test.js +0 -9
- package/v2Containers/CallTask/tests/sagas.test.js +0 -15
- package/v2Containers/CallTask/tests/selectors.test.js +0 -10
- package/v2Containers/ChannelTemplates/tests/actions.test.js +0 -18
- package/v2Containers/ChannelTemplates/tests/index.test.js +0 -10
- package/v2Containers/ChannelTemplates/tests/reducer.test.js +0 -9
- package/v2Containers/ChannelTemplates/tests/sagas.test.js +0 -15
- package/v2Containers/ChannelTemplates/tests/selectors.test.js +0 -10
- package/v2Containers/CreativesContainer/tests/actions.test.js +0 -18
- package/v2Containers/CreativesContainer/tests/reducer.test.js +0 -9
- package/v2Containers/CreativesContainer/tests/sagas.test.js +0 -15
- package/v2Containers/CreativesContainer/tests/selectors.test.js +0 -10
- package/v2Containers/Dashboard/tests/actions.test.js +0 -18
- package/v2Containers/Dashboard/tests/index.test.js +0 -10
- package/v2Containers/Dashboard/tests/reducer.test.js +0 -9
- package/v2Containers/Dashboard/tests/sagas.test.js +0 -15
- package/v2Containers/Dashboard/tests/selectors.test.js +0 -10
- package/v2Containers/Ebill/tests/actions.test.js +0 -18
- package/v2Containers/Ebill/tests/index.test.js +0 -10
- package/v2Containers/Ebill/tests/reducer.test.js +0 -9
- package/v2Containers/Ebill/tests/sagas.test.js +0 -15
- package/v2Containers/Ebill/tests/selectors.test.js +0 -10
- package/v2Containers/Email/tests/actions.test.js +0 -18
- package/v2Containers/Email/tests/index.test.js +0 -10
- package/v2Containers/Email/tests/reducer.test.js +0 -9
- package/v2Containers/Email/tests/sagas.test.js +0 -15
- package/v2Containers/Email/tests/selectors.test.js +0 -10
- package/v2Containers/EmailWrapper/tests/actions.test.js +0 -18
- package/v2Containers/EmailWrapper/tests/index.test.js +0 -10
- package/v2Containers/EmailWrapper/tests/reducer.test.js +0 -9
- package/v2Containers/EmailWrapper/tests/sagas.test.js +0 -15
- package/v2Containers/EmailWrapper/tests/selectors.test.js +0 -10
- package/v2Containers/Login/components/LoginForm/tests/index.test.js +0 -10
- package/v2Containers/Login/tests/index.test.js +0 -10
- package/v2Containers/Login/tests/sagas.test.js +0 -15
- package/v2Containers/Login/tests/selectors.test.js +0 -10
- package/v2Containers/MobilePush/Create/tests/actions.test.js +0 -18
- package/v2Containers/MobilePush/Create/tests/index.test.js +0 -10
- package/v2Containers/MobilePush/Create/tests/reducer.test.js +0 -9
- package/v2Containers/MobilePush/Create/tests/sagas.test.js +0 -15
- package/v2Containers/MobilePush/Create/tests/selectors.test.js +0 -10
- package/v2Containers/MobilePush/Edit/tests/actions.test.js +0 -18
- package/v2Containers/MobilePush/Edit/tests/index.test.js +0 -10
- package/v2Containers/MobilePush/Edit/tests/reducer.test.js +0 -9
- package/v2Containers/MobilePush/Edit/tests/sagas.test.js +0 -15
- package/v2Containers/MobilePush/Edit/tests/selectors.test.js +0 -10
- package/v2Containers/MobilepushWrapper/tests/index.test.js +0 -10
- package/v2Containers/Sms/Create/tests/actions.test.js +0 -18
- package/v2Containers/Sms/Create/tests/index.test.js +0 -10
- package/v2Containers/Sms/Create/tests/reducer.test.js +0 -9
- package/v2Containers/Sms/Create/tests/sagas.test.js +0 -15
- package/v2Containers/Sms/Create/tests/selectors.test.js +0 -10
- package/v2Containers/Sms/Edit/tests/actions.test.js +0 -18
- package/v2Containers/Sms/Edit/tests/index.test.js +0 -10
- package/v2Containers/Sms/Edit/tests/reducer.test.js +0 -9
- package/v2Containers/Sms/Edit/tests/sagas.test.js +0 -15
- package/v2Containers/Sms/Edit/tests/selectors.test.js +0 -10
- package/v2Containers/SmsWrapper/tests/index.test.js +0 -10
- package/v2Containers/TagList/tests/actions.test.js +0 -18
- package/v2Containers/TagList/tests/index.test.js +0 -10
- package/v2Containers/TagList/tests/reducer.test.js +0 -9
- package/v2Containers/TagList/tests/sagas.test.js +0 -15
- package/v2Containers/TagList/tests/selectors.test.js +0 -10
- package/v2Containers/Templates/tests/actions.test.js +0 -18
- package/v2Containers/Templates/tests/reducer.test.js +0 -9
- package/v2Containers/Templates/tests/sagas.test.js +0 -15
- package/v2Containers/Templates/tests/selectors.test.js +0 -10
- package/v2Containers/TemplatesV2/tests/actions.test.js +0 -18
- package/v2Containers/TemplatesV2/tests/index.test.js +0 -10
- package/v2Containers/TemplatesV2/tests/reducer.test.js +0 -9
- package/v2Containers/TemplatesV2/tests/sagas.test.js +0 -15
- package/v2Containers/TemplatesV2/tests/selectors.test.js +0 -10
- package/v2Containers/Testv2/tests/actions.test.js +0 -18
- package/v2Containers/Testv2/tests/index.test.js +0 -10
- package/v2Containers/Testv2/tests/reducer.test.js +0 -9
- package/v2Containers/Testv2/tests/sagas.test.js +0 -15
- package/v2Containers/Testv2/tests/selectors.test.js +0 -10
- package/v2Containers/WeChat/MapTemplates/tests/actions.test.js +0 -18
- package/v2Containers/WeChat/MapTemplates/tests/index.test.js +0 -10
- package/v2Containers/WeChat/MapTemplates/tests/reducer.test.js +0 -9
- package/v2Containers/WeChat/MapTemplates/tests/sagas.test.js +0 -15
- package/v2Containers/WeChat/MapTemplates/tests/selectors.test.js +0 -10
- package/v2Containers/WeChat/RichmediaTemplates/Create/tests/actions.test.js +0 -18
- package/v2Containers/WeChat/RichmediaTemplates/Create/tests/index.test.js +0 -10
- package/v2Containers/WeChat/RichmediaTemplates/Create/tests/reducer.test.js +0 -9
- package/v2Containers/WeChat/RichmediaTemplates/Create/tests/sagas.test.js +0 -15
- package/v2Containers/WeChat/RichmediaTemplates/Create/tests/selectors.test.js +0 -10
- package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/actions.test.js +0 -18
- package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/index.test.js +0 -10
- package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/reducer.test.js +0 -9
- package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/sagas.test.js +0 -15
- package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/selectors.test.js +0 -10
- package/v2Containers/WeChat/RichmediaTemplates/View/tests/actions.test.js +0 -18
- package/v2Containers/WeChat/RichmediaTemplates/View/tests/index.test.js +0 -10
- package/v2Containers/WeChat/RichmediaTemplates/View/tests/reducer.test.js +0 -9
- package/v2Containers/WeChat/RichmediaTemplates/View/tests/sagas.test.js +0 -15
- package/v2Containers/WeChat/RichmediaTemplates/View/tests/selectors.test.js +0 -10
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
/* eslint-disable camelcase */
|
|
2
|
+
/* eslint-disable react/prop-types */
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { injectIntl } from 'react-intl';
|
|
5
|
+
import PhoneInput from 'react-phone-input-2';
|
|
6
|
+
import 'react-phone-input-2/lib/style.css';
|
|
7
|
+
import { cloneDeep } from 'lodash';
|
|
8
|
+
import CapRow from '@capillarytech/cap-ui-library/CapRow';
|
|
9
|
+
import CapColumn from '@capillarytech/cap-ui-library/CapColumn';
|
|
10
|
+
import CapHeading from '@capillarytech/cap-ui-library/CapHeading';
|
|
11
|
+
import CapSelect from '@capillarytech/cap-ui-library/CapSelect';
|
|
12
|
+
import CapInput from '@capillarytech/cap-ui-library/CapInput';
|
|
13
|
+
import CapButton from '@capillarytech/cap-ui-library/CapButton';
|
|
14
|
+
import CapLabel from '@capillarytech/cap-ui-library/CapLabel';
|
|
15
|
+
import CapIcon from '@capillarytech/cap-ui-library/CapIcon';
|
|
16
|
+
import globalMessages from '../../v2Containers/Cap/messages';
|
|
17
|
+
import whatsappMsg from '../../v2Containers/Whatsapp/messages';
|
|
18
|
+
import messages from './messages';
|
|
19
|
+
import './index.scss';
|
|
20
|
+
import { isUrl } from '../../v2Containers/Line/Container/Wrapper/utils';
|
|
21
|
+
import {
|
|
22
|
+
CTA_OPTIONS,
|
|
23
|
+
BTN_MAX_LENGTH,
|
|
24
|
+
PHONE_NUMBER_MAX_LENGTH,
|
|
25
|
+
CTA_URL_OPTIONS,
|
|
26
|
+
URL_MAX_LENGTH,
|
|
27
|
+
PHONE_NUMBER,
|
|
28
|
+
WEBSITE,
|
|
29
|
+
STATIC_URL,
|
|
30
|
+
} from './constants';
|
|
31
|
+
import { INITIAL_CTA_DATA } from '../../v2Containers/Whatsapp/constants';
|
|
32
|
+
|
|
33
|
+
export const CapWhatsappCTA = (props) => {
|
|
34
|
+
const { intl, ctaData = [], updateHandler, deleteHandler } = props;
|
|
35
|
+
const { formatMessage } = intl;
|
|
36
|
+
|
|
37
|
+
const [urlError, setUrlError] = useState(false);
|
|
38
|
+
|
|
39
|
+
const updateHelper = (type, value, index) => {
|
|
40
|
+
let clonedCta = cloneDeep(ctaData[index]);
|
|
41
|
+
clonedCta = {
|
|
42
|
+
...clonedCta,
|
|
43
|
+
[type]: value,
|
|
44
|
+
};
|
|
45
|
+
updateHandler(clonedCta, index);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const renderLength = (len, max) => (
|
|
49
|
+
<CapHeading type="label1" className="whatsapp-render-btn-length">
|
|
50
|
+
{formatMessage(whatsappMsg.templateMessageLength, {
|
|
51
|
+
currentLength: len,
|
|
52
|
+
maxLength: max,
|
|
53
|
+
})}
|
|
54
|
+
</CapHeading>
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
const onCtaTypeChange = (value, index) => {
|
|
58
|
+
let clonedCta = cloneDeep(ctaData[index]);
|
|
59
|
+
clonedCta = {
|
|
60
|
+
...clonedCta,
|
|
61
|
+
ctaType: value,
|
|
62
|
+
text: '',
|
|
63
|
+
phone_number: '',
|
|
64
|
+
url: '',
|
|
65
|
+
};
|
|
66
|
+
setUrlError(false);
|
|
67
|
+
updateHandler(clonedCta, index);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const filteredCtaoptions = () => {
|
|
71
|
+
if (ctaData[0].isSaved) {
|
|
72
|
+
return CTA_OPTIONS.filter((i) => i.value !== ctaData[0].ctaType);
|
|
73
|
+
}
|
|
74
|
+
return CTA_OPTIONS;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const addCta = () => {
|
|
78
|
+
const clonedCta = cloneDeep(ctaData);
|
|
79
|
+
clonedCta.push(cloneDeep(INITIAL_CTA_DATA[0]));
|
|
80
|
+
if (clonedCta.length === 2) {
|
|
81
|
+
clonedCta[1].index = 1;
|
|
82
|
+
clonedCta[1].ctaType =
|
|
83
|
+
clonedCta[0].ctaType === PHONE_NUMBER ? WEBSITE : PHONE_NUMBER;
|
|
84
|
+
}
|
|
85
|
+
updateHandler(clonedCta, null, true);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
const onButtonTextChange = ({ target }) => {
|
|
89
|
+
const { value, id } = target;
|
|
90
|
+
updateHelper('text', value, id);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const onPhoneNoChange = (value, index) => {
|
|
94
|
+
updateHelper('phone_number', value, index);
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const onUrlChange = ({ target }) => {
|
|
98
|
+
const { value, id } = target;
|
|
99
|
+
let errorMessage = false;
|
|
100
|
+
if (!isUrl(value)) {
|
|
101
|
+
errorMessage = formatMessage(messages.ctaWebsiteUrlErrorMessage);
|
|
102
|
+
}
|
|
103
|
+
setUrlError(errorMessage);
|
|
104
|
+
updateHelper('url', value, id);
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const ctaSaveDisabled = (index) => {
|
|
108
|
+
const { ctaType, text, phone_number, url } = ctaData[index] || {};
|
|
109
|
+
if (text === '') {
|
|
110
|
+
return true;
|
|
111
|
+
} else if (
|
|
112
|
+
ctaType === PHONE_NUMBER &&
|
|
113
|
+
(phone_number === '91' || phone_number === '' || phone_number.length < 5)
|
|
114
|
+
) {
|
|
115
|
+
return true;
|
|
116
|
+
} else if (ctaType === WEBSITE && (url === '' || urlError)) {
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
const saveCta = (index) => {
|
|
123
|
+
updateHelper('isSaved', true, index);
|
|
124
|
+
};
|
|
125
|
+
const editCta = (index) => {
|
|
126
|
+
updateHelper('isSaved', false, index);
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
const renderedContent = () => {
|
|
130
|
+
const renderArray = [];
|
|
131
|
+
ctaData.forEach((cta) => {
|
|
132
|
+
const { index, ctaType, text, phone_number, url, isSaved } = cta || {};
|
|
133
|
+
if (isSaved) {
|
|
134
|
+
const ctaIsPhone = ctaType === PHONE_NUMBER;
|
|
135
|
+
renderArray.push(
|
|
136
|
+
<CapRow
|
|
137
|
+
className="cap-whatsapp-saved-cta margin-t-12"
|
|
138
|
+
align="middle"
|
|
139
|
+
type="flex"
|
|
140
|
+
>
|
|
141
|
+
<CapColumn span={1}>
|
|
142
|
+
<CapIcon
|
|
143
|
+
size="s"
|
|
144
|
+
type="drag"
|
|
145
|
+
style={{ transform: 'rotate(90deg)' }}
|
|
146
|
+
/>
|
|
147
|
+
</CapColumn>
|
|
148
|
+
<CapColumn
|
|
149
|
+
span={1}
|
|
150
|
+
style={{ marginBottom: ctaIsPhone ? '-4px' : '' }}
|
|
151
|
+
>
|
|
152
|
+
<CapIcon size="s" type={ctaIsPhone ? 'call' : 'launch'} />
|
|
153
|
+
</CapColumn>
|
|
154
|
+
<CapColumn span={6}>
|
|
155
|
+
<CapLabel type="label2" style={{ fontWeight: '500' }}>
|
|
156
|
+
{text}
|
|
157
|
+
</CapLabel>
|
|
158
|
+
</CapColumn>
|
|
159
|
+
{ctaIsPhone && (
|
|
160
|
+
<CapColumn span={11} align="left">
|
|
161
|
+
<CapLabel className="phone">+{phone_number}</CapLabel>
|
|
162
|
+
</CapColumn>
|
|
163
|
+
)}
|
|
164
|
+
{!ctaIsPhone && (
|
|
165
|
+
<>
|
|
166
|
+
<CapColumn span={3}>
|
|
167
|
+
<CapLabel className="url-type" type="label2">
|
|
168
|
+
Static
|
|
169
|
+
</CapLabel>
|
|
170
|
+
</CapColumn>
|
|
171
|
+
<CapColumn span={8} style={{ marginRight: '0px' }}>
|
|
172
|
+
<CapLabel className="url">{url}</CapLabel>
|
|
173
|
+
</CapColumn>
|
|
174
|
+
</>
|
|
175
|
+
)}
|
|
176
|
+
<CapColumn
|
|
177
|
+
span={1}
|
|
178
|
+
style={{ marginLeft: '16px' }}
|
|
179
|
+
onClick={() => editCta(index)}
|
|
180
|
+
>
|
|
181
|
+
<CapIcon size="s" type="edit" />
|
|
182
|
+
</CapColumn>
|
|
183
|
+
<CapColumn span={1} onClick={() => deleteHandler(index)}>
|
|
184
|
+
<CapIcon size="s" type="delete" />
|
|
185
|
+
</CapColumn>
|
|
186
|
+
</CapRow>,
|
|
187
|
+
);
|
|
188
|
+
} else {
|
|
189
|
+
renderArray.push(
|
|
190
|
+
<CapRow
|
|
191
|
+
className="cap-whatsapp-cta margin-t-16"
|
|
192
|
+
id={`cap-whatsapp-cta-${index}`}
|
|
193
|
+
>
|
|
194
|
+
<CapRow>
|
|
195
|
+
<CapColumn span={12}>
|
|
196
|
+
{/* Type of action */}
|
|
197
|
+
<CapHeading type="h4">
|
|
198
|
+
{formatMessage(messages.ctaType)}
|
|
199
|
+
</CapHeading>
|
|
200
|
+
<CapSelect
|
|
201
|
+
id="whatsapp-cta-type"
|
|
202
|
+
options={filteredCtaoptions()}
|
|
203
|
+
onChange={(value) => onCtaTypeChange(value, index)}
|
|
204
|
+
value={ctaType}
|
|
205
|
+
/>
|
|
206
|
+
</CapColumn>
|
|
207
|
+
<CapColumn span={12}>
|
|
208
|
+
{/* Button text */}
|
|
209
|
+
<CapHeading type="h4">
|
|
210
|
+
{formatMessage(messages.ctaButtonText)}
|
|
211
|
+
</CapHeading>
|
|
212
|
+
<CapInput
|
|
213
|
+
id={index}
|
|
214
|
+
className="whatsapp-cta-button-text"
|
|
215
|
+
onChange={onButtonTextChange}
|
|
216
|
+
placeholder={formatMessage(messages.ctaButtonTextPlaceholder)}
|
|
217
|
+
value={text}
|
|
218
|
+
size="large"
|
|
219
|
+
maxLength={BTN_MAX_LENGTH}
|
|
220
|
+
/>
|
|
221
|
+
{renderLength(text.length, BTN_MAX_LENGTH)}
|
|
222
|
+
</CapColumn>
|
|
223
|
+
</CapRow>
|
|
224
|
+
{ctaType === PHONE_NUMBER && (
|
|
225
|
+
<CapRow>
|
|
226
|
+
<CapColumn span={11}>
|
|
227
|
+
{/* phone number */}
|
|
228
|
+
<CapHeading type="h4">
|
|
229
|
+
{formatMessage(messages.ctaPhoneNo)}
|
|
230
|
+
</CapHeading>
|
|
231
|
+
<PhoneInput
|
|
232
|
+
placeholder={formatMessage(messages.ctaPhoneNoPlaceholder)}
|
|
233
|
+
autoFormat={false}
|
|
234
|
+
countryCodeEditable={false}
|
|
235
|
+
value={phone_number}
|
|
236
|
+
onChange={(value) => onPhoneNoChange(value, index)}
|
|
237
|
+
country="in"
|
|
238
|
+
className="cta-phone-number"
|
|
239
|
+
/>
|
|
240
|
+
{renderLength(phone_number.length, PHONE_NUMBER_MAX_LENGTH)}
|
|
241
|
+
</CapColumn>
|
|
242
|
+
</CapRow>
|
|
243
|
+
)}
|
|
244
|
+
{ctaType === WEBSITE && (
|
|
245
|
+
<CapRow>
|
|
246
|
+
<CapColumn span={12}>
|
|
247
|
+
{/* URL Type */}
|
|
248
|
+
<CapHeading type="h4">
|
|
249
|
+
{formatMessage(messages.ctaWebsiteType)}
|
|
250
|
+
</CapHeading>
|
|
251
|
+
<CapSelect
|
|
252
|
+
id="whatsapp-cta-url-type"
|
|
253
|
+
options={CTA_URL_OPTIONS || []}
|
|
254
|
+
value={STATIC_URL}
|
|
255
|
+
/>
|
|
256
|
+
</CapColumn>
|
|
257
|
+
<CapColumn span={12}>
|
|
258
|
+
{/* cta url */}
|
|
259
|
+
<CapHeading type="h4">
|
|
260
|
+
{formatMessage(messages.ctaWebsiteUrl)}
|
|
261
|
+
</CapHeading>
|
|
262
|
+
<CapInput
|
|
263
|
+
id={index}
|
|
264
|
+
className="whatsapp-cta-url"
|
|
265
|
+
onChange={onUrlChange}
|
|
266
|
+
placeholder={formatMessage(messages.ctaWebsitePlaceholder)}
|
|
267
|
+
value={url}
|
|
268
|
+
size="large"
|
|
269
|
+
maxLength={URL_MAX_LENGTH}
|
|
270
|
+
errorMessage={urlError}
|
|
271
|
+
/>
|
|
272
|
+
{renderLength(url.length, URL_MAX_LENGTH)}
|
|
273
|
+
</CapColumn>
|
|
274
|
+
</CapRow>
|
|
275
|
+
)}
|
|
276
|
+
<CapRow className="whatsapp-cta-save-delete-btn">
|
|
277
|
+
<CapButton
|
|
278
|
+
onClick={() => saveCta(index)}
|
|
279
|
+
disabled={ctaSaveDisabled(index)}
|
|
280
|
+
className="whatsapp-cta-save-btn"
|
|
281
|
+
>
|
|
282
|
+
{formatMessage(globalMessages.save)}
|
|
283
|
+
</CapButton>
|
|
284
|
+
<CapButton
|
|
285
|
+
onClick={() => deleteHandler(index)}
|
|
286
|
+
className="whatsapp-cta-delete-btn"
|
|
287
|
+
type="secondary"
|
|
288
|
+
>
|
|
289
|
+
{formatMessage(globalMessages.delete)}
|
|
290
|
+
</CapButton>
|
|
291
|
+
</CapRow>
|
|
292
|
+
</CapRow>,
|
|
293
|
+
);
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
// eslint-disable-next-line no-lone-blocks
|
|
297
|
+
{
|
|
298
|
+
// eslint-disable-next-line no-unused-expressions
|
|
299
|
+
ctaData.length < 2 &&
|
|
300
|
+
renderArray.push(
|
|
301
|
+
<CapRow>
|
|
302
|
+
<CapButton
|
|
303
|
+
type="flat"
|
|
304
|
+
id="whatsapp-cta-add-button"
|
|
305
|
+
disabled={ctaData?.length === 1 && !ctaData[0].isSaved}
|
|
306
|
+
className="margin-t-12 margin-l-24"
|
|
307
|
+
isAddBtn
|
|
308
|
+
onClick={addCta}
|
|
309
|
+
>
|
|
310
|
+
{formatMessage(messages.addButton)}
|
|
311
|
+
</CapButton>
|
|
312
|
+
</CapRow>,
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
return renderArray;
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
return renderedContent();
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
export default injectIntl(CapWhatsappCTA);
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
@import'~@capillarytech/cap-ui-library/styles/_variables';
|
|
2
|
+
|
|
3
|
+
.cap-whatsapp-saved-cta {
|
|
4
|
+
border: solid 1px $CAP_G06;
|
|
5
|
+
margin-left: 24px;
|
|
6
|
+
padding: 0 20px;
|
|
7
|
+
border-radius: 4px;
|
|
8
|
+
|
|
9
|
+
div:not(:last-child) {
|
|
10
|
+
margin-right: 9px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.url,
|
|
14
|
+
.phone {
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.url-type {
|
|
19
|
+
border: solid 1px $CAP_G06;
|
|
20
|
+
padding: 4px 8px;
|
|
21
|
+
border-radius: 16px;
|
|
22
|
+
text-align: center;
|
|
23
|
+
background-color: #f1f1f1;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.cap-whatsapp-cta {
|
|
28
|
+
border: solid 1px $CAP_G06;
|
|
29
|
+
margin-left: 24px;
|
|
30
|
+
padding: 20px;
|
|
31
|
+
border-radius: 4px;
|
|
32
|
+
|
|
33
|
+
.whatsapp-cta-save-delete-btn {
|
|
34
|
+
.ant-btn {
|
|
35
|
+
margin-right: $CAP_SPACE_16;
|
|
36
|
+
margin-top: $CAP_SPACE_16;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.whatsapp-render-btn-length {
|
|
41
|
+
text-align: right;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.cta-phone-number {
|
|
45
|
+
div.flag-dropdown {
|
|
46
|
+
background-color: transparent;
|
|
47
|
+
border: 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
input {
|
|
51
|
+
width: 99%;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
div.flag-dropdown.open>ul {
|
|
55
|
+
overflow-x: hidden;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
#whatsapp-cta-type,
|
|
60
|
+
#whatsapp-cta-country,
|
|
61
|
+
#whatsapp-cta-url-type {
|
|
62
|
+
width: 90%;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
const prefix = `creatives.componentsV2.CapWhatsappCTA`;
|
|
3
|
+
export default defineMessages({
|
|
4
|
+
ctaType: {
|
|
5
|
+
id: `${prefix}.ctaType`,
|
|
6
|
+
defaultMessage: 'Type of action',
|
|
7
|
+
},
|
|
8
|
+
ctaPhoneNo: {
|
|
9
|
+
id: `${prefix}.ctaPhoneNo`,
|
|
10
|
+
defaultMessage: 'Phone number',
|
|
11
|
+
},
|
|
12
|
+
ctaWebsite: {
|
|
13
|
+
id: `${prefix}.ctaWebsite`,
|
|
14
|
+
defaultMessage: 'Website',
|
|
15
|
+
},
|
|
16
|
+
ctaButtonText: {
|
|
17
|
+
id: `${prefix}.ctaButtonText`,
|
|
18
|
+
defaultMessage: 'Button text',
|
|
19
|
+
},
|
|
20
|
+
ctaButtonTextPlaceholder: {
|
|
21
|
+
id: `${prefix}.ctaButtonTextPlaceholder`,
|
|
22
|
+
defaultMessage: 'Enter button text',
|
|
23
|
+
},
|
|
24
|
+
ctaWebsiteType: {
|
|
25
|
+
id: `${prefix}.ctaWebsiteType`,
|
|
26
|
+
defaultMessage: 'URL Type',
|
|
27
|
+
},
|
|
28
|
+
ctaWebsiteTypeStatic: {
|
|
29
|
+
id: `${prefix}.ctaWebsiteTypeStatic`,
|
|
30
|
+
defaultMessage: 'Static',
|
|
31
|
+
},
|
|
32
|
+
// ctaWebsiteTypeDynamic: {
|
|
33
|
+
// id: `${prefix}.ctaWebsiteTypeDynamic`,
|
|
34
|
+
// defaultMessage: 'Dynamic',
|
|
35
|
+
// },
|
|
36
|
+
ctaPhoneNoPlaceholder: {
|
|
37
|
+
id: `${prefix}.ctaPhoneNoPlaceholder`,
|
|
38
|
+
defaultMessage: 'Enter phone number',
|
|
39
|
+
},
|
|
40
|
+
ctaWebsiteUrl: {
|
|
41
|
+
id: `${prefix}.ctaWebsiteUrl`,
|
|
42
|
+
defaultMessage: 'Website URL',
|
|
43
|
+
},
|
|
44
|
+
ctaWebsitePlaceholder: {
|
|
45
|
+
id: `${prefix}.ctaWebsitePlaceholder`,
|
|
46
|
+
defaultMessage: 'Enter website URL',
|
|
47
|
+
},
|
|
48
|
+
ctaWebsiteUrlErrorMessage: {
|
|
49
|
+
id: `${prefix}.ctaWebsiteUrlErrorMessage`,
|
|
50
|
+
defaultMessage: 'URL is not valid',
|
|
51
|
+
},
|
|
52
|
+
addButton: {
|
|
53
|
+
id: `${prefix}.addButton`,
|
|
54
|
+
defaultMessage: 'Add button',
|
|
55
|
+
},
|
|
56
|
+
});
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`<EmailPreviewV2 /> <EmailPreviewV2 /> without the templateData 1`] = `
|
|
4
|
+
<div
|
|
5
|
+
className="email-preview-v2"
|
|
6
|
+
>
|
|
7
|
+
<CapSpin
|
|
8
|
+
spinning={true}
|
|
9
|
+
>
|
|
10
|
+
<div
|
|
11
|
+
id="emailPreivew-container"
|
|
12
|
+
>
|
|
13
|
+
<div
|
|
14
|
+
id="emailPreivew-content-wrapper"
|
|
15
|
+
>
|
|
16
|
+
<div
|
|
17
|
+
id="emailPreivew-content"
|
|
18
|
+
>
|
|
19
|
+
<CapTab
|
|
20
|
+
activeKey="desktop"
|
|
21
|
+
className="email-preview-device-tabs"
|
|
22
|
+
onChange={[Function]}
|
|
23
|
+
panes={
|
|
24
|
+
Array [
|
|
25
|
+
Object {
|
|
26
|
+
"content": <div
|
|
27
|
+
className="email-preview-container"
|
|
28
|
+
>
|
|
29
|
+
<div
|
|
30
|
+
className=""
|
|
31
|
+
>
|
|
32
|
+
<iframe
|
|
33
|
+
height="500"
|
|
34
|
+
srcDoc="<html><head></head><body>undefined</body></html>"
|
|
35
|
+
width="1024"
|
|
36
|
+
>
|
|
37
|
+
<p>
|
|
38
|
+
<FormattedMessage
|
|
39
|
+
defaultMessage="Your browser does not support iframes."
|
|
40
|
+
id="creatives.componentsV2.EmailPreviewV2.browserDoesntSupportIframe"
|
|
41
|
+
values={Object {}}
|
|
42
|
+
/>
|
|
43
|
+
</p>
|
|
44
|
+
</iframe>
|
|
45
|
+
</div>
|
|
46
|
+
</div>,
|
|
47
|
+
"key": "desktop",
|
|
48
|
+
"tab": <EmailPreviewV2__StyledCapIcon
|
|
49
|
+
active={true}
|
|
50
|
+
type="desktop"
|
|
51
|
+
/>,
|
|
52
|
+
},
|
|
53
|
+
Object {
|
|
54
|
+
"content": <div
|
|
55
|
+
className="email-preview-container"
|
|
56
|
+
>
|
|
57
|
+
<div
|
|
58
|
+
className="shell align-center"
|
|
59
|
+
>
|
|
60
|
+
<img
|
|
61
|
+
alt="capillary"
|
|
62
|
+
src="test-file-stub"
|
|
63
|
+
width="520"
|
|
64
|
+
/>
|
|
65
|
+
<div
|
|
66
|
+
className=""
|
|
67
|
+
>
|
|
68
|
+
<iframe
|
|
69
|
+
height="500"
|
|
70
|
+
srcDoc="<html><head></head><body>undefined</body></html>"
|
|
71
|
+
width="1024"
|
|
72
|
+
>
|
|
73
|
+
<p>
|
|
74
|
+
<FormattedMessage
|
|
75
|
+
defaultMessage="Your browser does not support iframes."
|
|
76
|
+
id="creatives.componentsV2.EmailPreviewV2.browserDoesntSupportIframe"
|
|
77
|
+
values={Object {}}
|
|
78
|
+
/>
|
|
79
|
+
</p>
|
|
80
|
+
</iframe>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>,
|
|
84
|
+
"key": "tablet",
|
|
85
|
+
"tab": <EmailPreviewV2__StyledCapIcon
|
|
86
|
+
active={false}
|
|
87
|
+
type="tablet"
|
|
88
|
+
/>,
|
|
89
|
+
},
|
|
90
|
+
Object {
|
|
91
|
+
"content": <div
|
|
92
|
+
className="email-preview-container"
|
|
93
|
+
>
|
|
94
|
+
<div
|
|
95
|
+
className="shell align-center"
|
|
96
|
+
>
|
|
97
|
+
<img
|
|
98
|
+
alt="capillary"
|
|
99
|
+
src="test-file-stub"
|
|
100
|
+
width="386"
|
|
101
|
+
/>
|
|
102
|
+
<div
|
|
103
|
+
className=""
|
|
104
|
+
>
|
|
105
|
+
<iframe
|
|
106
|
+
height="500"
|
|
107
|
+
srcDoc="<html><head></head><body>undefined</body></html>"
|
|
108
|
+
width="1024"
|
|
109
|
+
>
|
|
110
|
+
<p>
|
|
111
|
+
<FormattedMessage
|
|
112
|
+
defaultMessage="Your browser does not support iframes."
|
|
113
|
+
id="creatives.componentsV2.EmailPreviewV2.browserDoesntSupportIframe"
|
|
114
|
+
values={Object {}}
|
|
115
|
+
/>
|
|
116
|
+
</p>
|
|
117
|
+
</iframe>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
</div>,
|
|
121
|
+
"key": "mobile",
|
|
122
|
+
"tab": <EmailPreviewV2__StyledCapIcon
|
|
123
|
+
active={false}
|
|
124
|
+
type="mobile"
|
|
125
|
+
/>,
|
|
126
|
+
},
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
/>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
</CapSpin>
|
|
134
|
+
</div>
|
|
135
|
+
`;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { shallow } from 'enzyme';
|
|
3
|
-
import EmailPreviewV2 from '../index';
|
|
3
|
+
import {EmailPreviewV2} from '../index';
|
|
4
4
|
|
|
5
5
|
describe('<EmailPreviewV2 />', () => {
|
|
6
6
|
it('<EmailPreviewV2 /> without the templateData', () => {
|
|
7
|
-
const compoent = shallow(<EmailPreviewV2
|
|
7
|
+
const compoent = shallow(<EmailPreviewV2
|
|
8
|
+
templateData={{_id: 'test'}}
|
|
9
|
+
templateActions={{
|
|
10
|
+
getTemplateDetails: jest.fn(),
|
|
11
|
+
resetTemplateData: jest.fn(),
|
|
12
|
+
}}
|
|
13
|
+
/>);
|
|
8
14
|
expect(compoent).toMatchSnapshot();
|
|
9
15
|
});
|
|
10
16
|
});
|
|
@@ -48,7 +48,7 @@ const renderMarketingObjectiveList = ({
|
|
|
48
48
|
);
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
const MarketingObjective = ({
|
|
51
|
+
export const MarketingObjective = ({
|
|
52
52
|
onMarketingObjectiveSelect,
|
|
53
53
|
selectedMarketingObjective,
|
|
54
54
|
defaultmarketingObjective,
|
|
@@ -91,7 +91,7 @@ const MarketingObjective = ({
|
|
|
91
91
|
<CapButton
|
|
92
92
|
type="primary"
|
|
93
93
|
className="submit-button-section"
|
|
94
|
-
onClick={() => onSubmitAction(
|
|
94
|
+
onClick={() => onSubmitAction()}
|
|
95
95
|
>
|
|
96
96
|
<FormattedMessage {...messages.fbMarketingObjectiveDone} />
|
|
97
97
|
</CapButton>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { injectIntl } from 'react-intl';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import {
|
|
5
|
+
render,
|
|
6
|
+
/* eslint-disable import/named */
|
|
7
|
+
screen,
|
|
8
|
+
fireEvent,
|
|
9
|
+
/* eslint-enable import/named */
|
|
10
|
+
} from '../../../utils/test-utils';
|
|
11
|
+
import { MarketingObjective } from "../index";
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
const initializeComponent = () => {
|
|
15
|
+
const Component = injectIntl(MarketingObjective);
|
|
16
|
+
return render( <Component
|
|
17
|
+
defaultmarketingObjective="test"
|
|
18
|
+
marketingObjectiveList={[{label: "test", panes: [{value: "test"}]}]}
|
|
19
|
+
selectedMarketingObjective="test"
|
|
20
|
+
onSubmit={() => {}}
|
|
21
|
+
className=""
|
|
22
|
+
onMarketingObjectiveSelect={() => {}}
|
|
23
|
+
/>);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
describe('renders a MarketingObjective', () => {
|
|
27
|
+
it("Test if MarketingObjective component renders", () => {
|
|
28
|
+
initializeComponent();
|
|
29
|
+
const button = screen.getByRole('button', {name: 'Done'});
|
|
30
|
+
expect(button).toBeInTheDocument();
|
|
31
|
+
fireEvent.click(button);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -34,7 +34,7 @@ describe('<SlideBox />', () => {
|
|
|
34
34
|
it('contains everything else that gets rendered', () => {
|
|
35
35
|
const divs = slideBox().find("div");
|
|
36
36
|
const wrappingDiv = divs.first();
|
|
37
|
-
expect(wrappingDiv.children()).toEqual(
|
|
37
|
+
expect(wrappingDiv.children()).toEqual({});
|
|
38
38
|
});
|
|
39
39
|
|
|
40
40
|
it('has a className of show-slidebox if "show" props is true', () => {
|
|
@@ -97,7 +97,7 @@ describe('<SlideBox />', () => {
|
|
|
97
97
|
const renderedComponent = shallow(<SlideBox {...props}/>);
|
|
98
98
|
const boxActionDiv = renderedComponent.find('#box-actions').first();
|
|
99
99
|
const icon = boxActionDiv.find('i');
|
|
100
|
-
expect(icon.
|
|
100
|
+
expect(icon.props().children).toBe('close');
|
|
101
101
|
});
|
|
102
102
|
});
|
|
103
103
|
});
|