@capillarytech/creatives-library 7.0.8 → 7.1.0

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.
Files changed (33) hide show
  1. package/config/app.js +2 -0
  2. package/index.js +7 -0
  3. package/package.json +1 -1
  4. package/reducers.js +2 -1
  5. package/services/api.js +7 -0
  6. package/utils/common.js +177 -0
  7. package/v2Components/TemplatePreview/assets/images/mobile.svg +24 -0
  8. package/v2Components/TemplatePreview/index.js +8 -12
  9. package/v2Containers/App/constants.js +1 -1
  10. package/v2Containers/CreativesContainer/SlideBoxContent.js +17 -3
  11. package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -0
  12. package/v2Containers/CreativesContainer/constants.js +2 -0
  13. package/v2Containers/CreativesContainer/index.js +14 -14
  14. package/v2Containers/FTP/_FTP.scss +103 -0
  15. package/v2Containers/FTP/actions.js +7 -0
  16. package/v2Containers/FTP/constants.js +3 -0
  17. package/v2Containers/FTP/index.js +509 -0
  18. package/v2Containers/FTP/messages.js +60 -0
  19. package/v2Containers/FTP/reducer.js +32 -0
  20. package/v2Containers/FTP/sagas.js +26 -0
  21. package/v2Containers/FTP/selectors.js +20 -0
  22. package/v2Containers/FTP/temp.js +11838 -0
  23. package/v2Containers/Templates/_templates.scss +2 -2
  24. package/v2Containers/Templates/actions.js +110 -117
  25. package/v2Containers/Templates/constants.js +0 -2
  26. package/v2Containers/Templates/index.js +1 -29
  27. package/v2Containers/Templates/messages.js +0 -4
  28. package/v2Containers/Templates/reducer.js +0 -2
  29. package/v2Containers/TemplatesV2/index.js +13 -0
  30. package/v2Containers/TemplatesV2/messages.js +4 -0
  31. package/v2Containers/Viber/index.js +12 -32
  32. package/v2Containers/Viber/messages.js +4 -12
  33. package/v2Components/TemplatePreview/assets/images/viberMobile.svg +0 -135
@@ -54,9 +54,9 @@
54
54
  .button-content {
55
55
  .ant-card-meta-description {
56
56
  min-width: 108px;
57
- max-width: 215px;
57
+ max-width: 160px;
58
58
  height: 24px;
59
- padding: 2px 0px;
59
+ padding: 1px 23px 2px 22px;
60
60
  border-radius: 16px;
61
61
  font-size: 14px;
62
62
  font-weight: 500;
@@ -4,126 +4,119 @@
4
4
  *
5
5
  */
6
6
 
7
- import * as types from './constants';
8
-
9
- export function getAllTemplates(channel, queryParams) {
10
- console.log('get all templates action trigereed', channel, queryParams);
11
- return {
12
- type: types.GET_ALL_TEMPLATES_REQUEST, channel, queryParams,
13
- };
14
- }
15
-
16
- export function resetTemplate() {
17
- return {
18
- type: types.RESET_TEMPLATE,
19
- };
20
- }
21
-
22
- export function resetAccount() {
23
- return {
24
- type: types.RESET_ACCOUNT,
25
- };
26
- }
27
-
28
- export function deleteTemplate(channel, id) {
29
- console.log('delete template action trigereed', channel, id);
30
- return {
31
- type: types.DELETE_TEMPLATE_REQUEST, channel, id,
32
- };
33
- }
34
-
35
- export function getUserList() {
36
- return {
37
- type: types.GET_USER_LIST_REQUEST,
38
- };
39
- }
40
-
41
- export function getWeCrmAccounts(source) {
42
- return {
43
- type: types.GET_WECRM_ACCOUNTS_REQUEST, source,
44
- };
45
- }
46
-
47
- export function setWeChatAccount(weChatAccount) {
48
- console.log('setting wechat account', weChatAccount);
49
- return {
50
- type: types.SET_WECHAT_ACCOUNT,
51
- weChatAccount,
52
- };
53
- }
54
-
55
- export function setLineAccount(lineAccount) {
7
+ import * as types from './constants';
8
+
9
+ export function getAllTemplates(channel, queryParams) {
10
+ console.log('get all templates action trigereed', channel, queryParams);
11
+ return {
12
+ type: types.GET_ALL_TEMPLATES_REQUEST, channel, queryParams,
13
+ };
14
+ }
15
+
16
+ export function resetTemplate() {
17
+ return {
18
+ type: types.RESET_TEMPLATE,
19
+ };
20
+ }
21
+
22
+ export function resetAccount() {
23
+ return {
24
+ type: types.RESET_ACCOUNT,
25
+ };
26
+ }
27
+
28
+ export function deleteTemplate(channel, id) {
29
+ console.log('delete template action trigereed', channel, id);
30
+ return {
31
+ type: types.DELETE_TEMPLATE_REQUEST, channel, id,
32
+ };
33
+ }
34
+
35
+ export function getUserList() {
36
+ return {
37
+ type: types.GET_USER_LIST_REQUEST,
38
+ };
39
+ }
40
+
41
+ export function getWeCrmAccounts(source) {
42
+ return {
43
+ type: types.GET_WECRM_ACCOUNTS_REQUEST, source,
44
+ };
45
+ }
46
+
47
+ export function setWeChatAccount(weChatAccount) {
48
+ console.log('setting wechat account', weChatAccount);
49
+ return {
50
+ type: types.SET_WECHAT_ACCOUNT,
51
+ weChatAccount,
52
+ };
53
+ }
54
+
55
+ export function setLineAccount(lineAccount) {
56
56
  return {
57
57
  type: types.SET_LINE_ACCOUNT,
58
58
  lineAccount,
59
59
  };
60
60
  }
61
61
 
62
- export function setViberAccount(viberAccount) {
63
- return {
64
- type: types.SET_VIBER_ACCOUNT,
65
- viberAccount,
66
- };
67
- }
68
-
69
- export function handleHtmlUpload(selectedTemplate) {
70
- return {
71
- type: types.SET_SELECTED_LAYOUT,
72
- selectedTemplate,
73
- };
74
- }
75
-
76
- export function handleZipUpload(selectedFile, successHandler, errorHandler) {
77
- return {
78
- type: types.SEND_ZIPPED_FILE_REQUEST,
79
- selectedFile,
80
- successHandler,
81
- errorHandler,
82
- };
83
- }
84
-
85
- export function getDefaultBeeTemplates() {
86
- return {
87
- type: types.GET_DEAFULT_BEE_TEMPLATES_REQUEST,
88
- };
89
- }
90
-
91
- export function setEdmTemplate(template) {
92
- return {
93
- type: types.SET_EDM_TEMPLATE,
94
- template,
95
- };
96
- }
97
- export function setBEETemplate(template) {
98
- return {
99
- type: types.SET_BEE_TEMPLATE,
100
- template,
101
- };
102
- }
103
- export function getTemplateDetails(id, channel) {
104
- console.log('getting template', id, channel);
105
- return {
106
- type: types.GET_TEMPLATE_DETAILS_REQUEST,
107
- id,
108
- channel,
109
- };
110
- }
111
-
112
- export function resetTemplateData() {
113
- return {
114
- type: types.RESET_TEMPLATE_DATA,
115
- };
116
- }
117
-
118
- export function resetUploadData() {
119
- console.log('clearing upload data');
120
- return {
121
- type: types.RESET_UPLOAD_DATA,
122
- };
123
- }
124
-
125
- export function resetTemplateStoreData() {
126
- return {
127
- type: types.CLEAR_TEMPLATE_STORE_DATA,
128
- };
129
- }
62
+ export function handleHtmlUpload(selectedTemplate) {
63
+ return {
64
+ type: types.SET_SELECTED_LAYOUT,
65
+ selectedTemplate,
66
+ };
67
+ }
68
+
69
+ export function handleZipUpload(selectedFile, successHandler, errorHandler) {
70
+ return {
71
+ type: types.SEND_ZIPPED_FILE_REQUEST,
72
+ selectedFile,
73
+ successHandler,
74
+ errorHandler,
75
+ };
76
+ }
77
+
78
+ export function getDefaultBeeTemplates() {
79
+ return {
80
+ type: types.GET_DEAFULT_BEE_TEMPLATES_REQUEST,
81
+ };
82
+ }
83
+
84
+ export function setEdmTemplate(template) {
85
+ return {
86
+ type: types.SET_EDM_TEMPLATE,
87
+ template,
88
+ };
89
+ }
90
+ export function setBEETemplate(template) {
91
+ return {
92
+ type: types.SET_BEE_TEMPLATE,
93
+ template,
94
+ };
95
+ }
96
+ export function getTemplateDetails(id, channel) {
97
+ console.log('getting template', id, channel);
98
+ return {
99
+ type: types.GET_TEMPLATE_DETAILS_REQUEST,
100
+ id,
101
+ channel,
102
+ };
103
+ }
104
+
105
+ export function resetTemplateData() {
106
+ return {
107
+ type: types.RESET_TEMPLATE_DATA,
108
+ };
109
+ }
110
+
111
+ export function resetUploadData() {
112
+ console.log('clearing upload data');
113
+ return {
114
+ type: types.RESET_UPLOAD_DATA,
115
+ };
116
+ }
117
+
118
+ export function resetTemplateStoreData() {
119
+ return {
120
+ type: types.CLEAR_TEMPLATE_STORE_DATA,
121
+ };
122
+ }
@@ -43,8 +43,6 @@ export const RESET_UPLOAD_DATA = "app/v2Containers/Templates/RESET_UPLOAD_DATA";
43
43
  export const CLEAR_TEMPLATE_STORE_DATA = "app/v2Containers/Templates/CLEAR_TEMPLATE_STORE_DATA";
44
44
 
45
45
  export const SET_LINE_ACCOUNT = "app/v2Containers/Templates/SET_LINE_ACCOUNT";
46
- export const SET_VIBER_ACCOUNT = "app/v2Containers/Templates/SET_VIBER_ACCOUNT";
47
-
48
46
 
49
47
  export const GET_DEAFULT_BEE_TEMPLATES_REQUEST = 'app/v2Containers/Templates/GET_DEAFULT_BEE_TEMPLATES_REQUEST';
50
48
  export const GET_DEAFULT_BEE_TEMPLATES_SUCCESS = 'app/v2Containers/Templates/GET_DEAFULT_BEE_TEMPLATES_SUCCESS';
@@ -171,8 +171,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
171
171
  break;
172
172
  case VIBER:
173
173
  channel = 'Viber';
174
- activeMode = ACCOUNT_SELECTION_MODE;
175
- this.props.actions.getWeCrmAccounts(channel);
176
174
  break;
177
175
  case LINE:
178
176
  channel = "Line";
@@ -260,8 +258,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
260
258
  }
261
259
  } else if (nextProps.route.name.toLowerCase() === VIBER_CHANNEL) {
262
260
  channel = 'Viber';
263
- this.setState({defaultAccount: true});
264
- nextProps.actions.getWeCrmAccounts(channel);
265
261
  }
266
262
 
267
263
  this.setState({ channel }, () => {
@@ -286,22 +282,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
286
282
  if ((this.state.channel || '').toLowerCase() === "mobilepush" && nextProps.Templates.selectedWeChatAccount) {
287
283
  params.accountId = nextProps.Templates.selectedWeChatAccount.id;
288
284
  }
289
- if (this.state.channel.toLowerCase() === VIBER_CHANNEL && isEmpty(nextProps.Templates.selectedViberAccount)) {
290
- let selectedAccount = '';
291
- if (isEmpty(nextProps.Templates.weCrmAccounts)) {
292
- return;
293
- }
294
- selectedAccount = nextProps.Templates.weCrmAccounts[0];
295
- const { configs = {}, name = "" } = selectedAccount;
296
- const { wecrm_app_id = "", wecrm_token = "", sourceAccountIdentifier = "" } = configs;
297
- this.setState({selectedAccount: name}, () => {
298
- params.wecrmId = wecrm_app_id;
299
- params.wecrmToken = wecrm_token;
300
- params.originalId = sourceAccountIdentifier;
301
- this.props.actions.setViberAccount(nextProps.Templates.weCrmAccounts[0]);
302
- this.getAllTemplates({params});
303
- });
304
- }
305
285
  if ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && isEmpty(nextProps.Templates.selectedWeChatAccount) && (this.props.location.query.type === 'embedded') && !this.isEnabledInLibraryModule("showAccountSelection")) {
306
286
  let selectedAccount = '';
307
287
  if (isEmpty(nextProps.Templates.weCrmAccounts)) {
@@ -468,7 +448,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
468
448
  } else if (this.state.channel.toLowerCase() === 'line') {
469
449
  this.props.actions.setLineAccount(this.props.Templates.weCrmAccounts.find((item) => item.name === this.state.selectedAccount));
470
450
  }
471
-
472
451
  this.setState({activeMode: TEMPLATES_MODE});
473
452
  console.log("getAllTemplates params: ", params);
474
453
  this.getAllTemplates({params, resetPage: true});
@@ -1719,7 +1698,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1719
1698
  const isMobilePushChannel = channel === MOBILE_PUSH;
1720
1699
  const isLineChannel = channel === LINE;
1721
1700
 
1722
-
1723
1701
  if ((isWechatChannel || isMobilePushChannel || isLineChannel) && !isEmpty(weCrmAccounts)) {
1724
1702
  forEach(weCrmAccounts, (account) => {
1725
1703
  if ((isWechatChannel && account.configs && account.configs.is_wecrm_enabled) || isMobilePushChannel || isLineChannel) {
@@ -1778,10 +1756,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1778
1756
  noAccountHeader = messages.noAccountsPresentLine;
1779
1757
  break;
1780
1758
  }
1781
- case VIBER: {
1782
- noAccountHeader = messages.noAccountsPresentViber;
1783
- break;
1784
- }
1785
1759
  default:
1786
1760
  break;
1787
1761
  }
@@ -1840,9 +1814,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1840
1814
  render() {
1841
1815
  const isFullMode = this.isFullMode();
1842
1816
  const { activeMode, channel, wechatFilter, lineFilter } = this.state;
1843
- const showForViber = (channel.toLowerCase() !== VIBER_CHANNEL ||
1844
- (channel.toLowerCase() === VIBER_CHANNEL && !this.props.isFullMode && isEmpty(get(this.props, 'Templates.selectedViberAccount', {}))));
1845
- if (activeMode === ACCOUNT_SELECTION_MODE && showForViber ) {
1817
+ if (activeMode === ACCOUNT_SELECTION_MODE) {
1846
1818
  return this.renderAccountSelection();
1847
1819
  }
1848
1820
  const pageHeader = "";
@@ -366,8 +366,4 @@ export default defineMessages({
366
366
  id: `${scope}.duplicatingTemplate`,
367
367
  defaultMessage: 'Duplicating template...'
368
368
  },
369
- noAccountsPresentViber: {
370
- id: `${scope}.noAccountsPresentViber`,
371
- defaultMessage: "Viber accounts are not setup for your brand",
372
- },
373
369
  });
@@ -73,8 +73,6 @@ function templatesReducer(state = initialState, action) {
73
73
  .set('selectedWeChatAccount', fromJS(action.weChatAccount));
74
74
  case types.SET_LINE_ACCOUNT:
75
75
  return state.set('selectedLineAccount', fromJS(action.lineAccount));
76
- case types.SET_VIBER_ACCOUNT:
77
- return state.set('selectedViberAccount', fromJS(action.viberAccount));
78
76
  case types.RESET_ACCOUNT:
79
77
  return state
80
78
  .remove('selectedWeChatAccount')
@@ -24,6 +24,7 @@ import CallTask from '../CallTask';
24
24
  import Facebook from '../Facebook';
25
25
  import Viber from '../Viber';
26
26
  import Line from '../Line/Container';
27
+ import FTP from '../FTP';
27
28
  import Gallery from '../Assets/Gallery';
28
29
  import withStyles from '../../hoc/withStyles';
29
30
  import styles, { CapTabStyle } from './TemplatesV2.style';
@@ -72,6 +73,10 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
72
73
  if (!channelsToHide.includes('facebook')) {
73
74
  filteredPanes.push({content: <div></div>, tab: intl.formatMessage(messages.facebook), key: 'facebook'});
74
75
  }
76
+ if (!channelsToHide.includes('FTP')) {
77
+ filteredPanes.push({content: <></>, tab: intl.formatMessage(messages.FTP), key: 'ftp'});
78
+ defaultChannel = 'FTP';
79
+ }
75
80
  }
76
81
 
77
82
  filteredPanes = filteredPanes.map( (pane) => {
@@ -168,6 +173,10 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
168
173
  />
169
174
  )
170
175
 
176
+ getFTPComponent = () => (
177
+ <FTP mode={this.props.FTPMode} {...this.props} />
178
+ );
179
+
171
180
  getTemplatesComponent(channel) {
172
181
  // const templates = this.props.Templates[`${channel}Templates`];
173
182
  let query = {};
@@ -176,6 +185,9 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
176
185
  if (channel === 'line') {
177
186
  return this.getLineComponent();
178
187
  }
188
+ if (channel === 'ftp') {
189
+ return this.getFTPComponent();
190
+ }
179
191
  }
180
192
  const location = {pathname: `/${channel}`, search: '', query};
181
193
  switch (channel) {
@@ -274,6 +286,7 @@ TemplatesV2.propTypes = {
274
286
  messageDetails: PropTypes.object,
275
287
  cap: PropTypes.object,
276
288
  authData: PropTypes.object,
289
+ FTPMode: PropTypes.string,
277
290
  };
278
291
 
279
292
  TemplatesV2.defaultProps = {
@@ -34,6 +34,10 @@ export default defineMessages({
34
34
  id: 'creatives.containersV2.TemplatesV2.email',
35
35
  defaultMessage: 'Email',
36
36
  },
37
+ FTP: {
38
+ id: 'creatives.containersV2.TemplatesV2.FTP',
39
+ defaultMessage: 'FTP',
40
+ },
37
41
  pushNotification: {
38
42
  id: 'creatives.containersV2.TemplatesV2.pushNotification',
39
43
  defaultMessage: 'Push notification',
@@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react';
2
2
  import { bindActionCreators } from 'redux';
3
3
  import { createStructuredSelector } from 'reselect';
4
4
  import { injectIntl, FormattedMessage } from 'react-intl';
5
- import { isUrl } from '../Line/Container/Wrapper/utils';
5
+ // import { connect } from 'react-redux';
6
6
  import { get } from 'lodash';
7
7
  import withCreatives from '../../hoc/withCreatives';
8
8
  import {
@@ -64,11 +64,10 @@ const Viber = (props) => {
64
64
  handleClose,
65
65
  onCreateComplete,
66
66
  params,
67
- templateData = {},
67
+ templateData,
68
68
  actions,
69
69
  viber = {},
70
70
  getFormSubscriptionData,
71
- viberData = {},
72
71
  } = props || {};
73
72
 
74
73
  const { formatMessage } = intl;
@@ -85,8 +84,6 @@ const Viber = (props) => {
85
84
  const [isEditFlow, checkEditFlow] = useState(false);
86
85
  const [messageTitle, updateTextMessageTitle] = useState('');
87
86
  const [errorMessageTitle, updateErrorMessageTitle] = useState(false);
88
- const [buttonURLErrorMessage, updateButtonURLErrorMessage] = useState(false);
89
- const [accountName, updateAccountName] = useState("");
90
87
 
91
88
  const StyledHeader = styled(CapHeader)`
92
89
  margin-bottom: 14px;
@@ -117,12 +114,7 @@ const Viber = (props) => {
117
114
  }, [paramObj.id]);
118
115
 
119
116
  useEffect(() => {
120
- const { name = '' } = viberData.selectedViberAccount || {};
121
- updateAccountName(name);
122
- }, [viberData.selectedViberAccount]);
123
-
124
- useEffect(() => {
125
- if ((params && params.id) || templateData.edit) {
117
+ if (params && params.id) {
126
118
  const { viber: editViberContent = {} } = get(templateData, `versions.base.content`) || get(viber, `templateDetails.versions.base.content`) || {};
127
119
  const editMessageTitle = (templateData || {}).name || get(viber, 'templateDetails.name');
128
120
  updateTextMessageTitle(editMessageTitle);
@@ -138,7 +130,7 @@ const Viber = (props) => {
138
130
  }, [viber[`templateDetails`] || templateData]);
139
131
 
140
132
  // Common container for TEXT, IMAGE and Button
141
- const container = (icon, message, data, showOptional) => (<CapRow
133
+ const container = (icon, message, data) => (<CapRow
142
134
  style={{
143
135
  border: `solid 1px ${CAP_G07}`,
144
136
  marginBottom: '20px',
@@ -146,8 +138,7 @@ const Viber = (props) => {
146
138
  <CapRow style={{ padding: `${CAP_SPACE_12} ${CAP_SPACE_24} 0px` }}>
147
139
  <CapIcon type={icon}/>
148
140
  <CapHeading type="h4" style={{position: 'absolute', display: 'inline-block', top: '13px', paddingLeft: '10px'}}>
149
- {message} {" "}
150
- {showOptional && <CapLabel.CapLabelInline type="label14">{formatMessage(messages.optional)}</CapLabel.CapLabelInline>}
141
+ {message}
151
142
  </CapHeading>
152
143
  </CapRow>
153
144
  <CapDivider className="cap-divider-margin"/>
@@ -490,12 +481,7 @@ const Viber = (props) => {
490
481
  };
491
482
 
492
483
  const onChangeButtonUrl = ({ target: { value } }) => {
493
- let errorMessage = false;
494
484
  updateButtonUrl(value);
495
- if (!isUrl(value)) {
496
- errorMessage = formatMessage(messages.inValidUrliErrorMessage);
497
- }
498
- updateButtonURLErrorMessage(errorMessage);
499
485
  };
500
486
  const getPreviewSection = () =>
501
487
  // const accountName = get(lineData, 'selectedLineAccount.name', '');
@@ -503,8 +489,7 @@ const Viber = (props) => {
503
489
  <TemplatePreview
504
490
  channel="VIBER"
505
491
  content={{imageURL: imagePreview, buttonText, messageContent}}
506
- viberAccountName={((accountName[0] || "")).toUpperCase()}
507
- viberBrandName={accountName}
492
+ viberAccountName={"MUJI"}
508
493
  />
509
494
  );
510
495
 
@@ -516,7 +501,6 @@ const Viber = (props) => {
516
501
  defaultValue={buttonText}
517
502
  value={buttonText}
518
503
  style={{paddingBottom: '11px'}}
519
- maxLength={20}
520
504
  />
521
505
  <CapInput
522
506
  id="viber-button-url"
@@ -525,7 +509,6 @@ const Viber = (props) => {
525
509
  defaultValue={buttonURL}
526
510
  value={buttonURL}
527
511
  label={formatMessage(messages.buttonUrl)}
528
- errorMessage={buttonURLErrorMessage}
529
512
  />
530
513
  </>);
531
514
 
@@ -564,7 +547,7 @@ const Viber = (props) => {
564
547
  const createCallback = (errorMessage, isEdit) => {
565
548
  if (!errorMessage) {
566
549
  CapNotification.success({
567
- message: isEdit ? formatMessage(messages.viberEditNotification) : formatMessage(messages.viberCreateNotification),
550
+ message: formatMessage(messages.viberCreateNotification),
568
551
  });
569
552
  if (isEdit) {
570
553
  actions.clearEditResponse();
@@ -627,11 +610,7 @@ const Viber = (props) => {
627
610
  return true;
628
611
  }
629
612
  // if button is being added than button url and button Text both are mandatory
630
- if (( trimedButtonText === '' && trimedButtonUrl !== '') || ( trimedButtonText !== '' && trimedButtonUrl === '')) {
631
- return true;
632
- }
633
- // if button url is not valid url
634
- if (buttonURLErrorMessage) {
613
+ if (( trimedButtonText === '' && trimedButtonUrl !== '') || ( trimedButtonUrl !== '' && trimedButtonUrl === '')) {
635
614
  return true;
636
615
  }
637
616
  return false;
@@ -644,6 +623,7 @@ const Viber = (props) => {
644
623
  <CapColumn span={14}>
645
624
  <StyledHeader
646
625
  title={formatMessage(messages.viberCreativeTitle)}
626
+ description={formatMessage(messages.viberCreativeDesc)}
647
627
  size="regular"
648
628
  />
649
629
  {
@@ -664,9 +644,9 @@ const Viber = (props) => {
664
644
  )
665
645
  : null
666
646
  }
667
- {container("message", <FormattedMessage {...messages.message} />, TextAreaViber, false)}
668
- {container("image", <FormattedMessage {...messages.image} />, ImageViber, true)}
669
- {container("button", <FormattedMessage {...messages.button} />, ButtonViber, true)}
647
+ {container("message", <FormattedMessage {...messages.message} />, TextAreaViber)}
648
+ {container("image", <FormattedMessage {...messages.image} />, ImageViber)}
649
+ {container("button", <FormattedMessage {...messages.button} />, ButtonViber)}
670
650
  <div style={{marginBottom: '100px'}}/>
671
651
  </CapColumn>
672
652
  <CapColumn span={6}>
@@ -14,6 +14,10 @@ export default defineMessages({
14
14
  id: `${scope}.viberCreativeTitle`,
15
15
  defaultMessage: "Viber creative",
16
16
  },
17
+ viberCreativeDesc: {
18
+ id: `${scope}.viberCreativeDesc`,
19
+ defaultMessage: "Select any of the existing templates or create new",
20
+ },
17
21
  message: {
18
22
  id: `${scope}.message`,
19
23
  defaultMessage: 'Message',
@@ -118,10 +122,6 @@ export default defineMessages({
118
122
  id: `${scope}.viberCreateNotification`,
119
123
  defaultMessage: 'Viber template created successfully',
120
124
  },
121
- viberEditNotification: {
122
- id: `${scope}.viberEditNotification`,
123
- defaultMessage: 'Viber template updated successfully',
124
- },
125
125
  textMessageTitlePlaceholder: {
126
126
  id: `${scope}.textMessageTitlePlaceholder`,
127
127
  defaultMessage: 'Enter template name',
@@ -134,12 +134,4 @@ export default defineMessages({
134
134
  id: `${scope}.emptyTitleErrorMessage`,
135
135
  defaultMessage: 'Template title can not be empty',
136
136
  },
137
- optional: {
138
- id: `${scope}.optional`,
139
- defaultMessage: '(optional)',
140
- },
141
- inValidUrliErrorMessage: {
142
- id: `${scope}.inValidUrliErrorMessage`,
143
- defaultMessage: 'Button URL is not valid',
144
- },
145
137
  });