@capillarytech/creatives-library 7.0.7 → 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.
- package/config/app.js +2 -0
- package/index.js +7 -0
- package/package.json +1 -1
- package/reducers.js +2 -1
- package/services/api.js +7 -0
- package/utils/common.js +177 -0
- package/v2Components/TemplatePreview/assets/images/mobile.svg +24 -0
- package/v2Components/TemplatePreview/index.js +6 -10
- package/v2Containers/App/constants.js +1 -1
- package/v2Containers/CreativesContainer/SlideBoxContent.js +17 -3
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -0
- package/v2Containers/CreativesContainer/constants.js +2 -0
- package/v2Containers/CreativesContainer/index.js +14 -14
- package/v2Containers/FTP/_FTP.scss +103 -0
- package/v2Containers/FTP/actions.js +7 -0
- package/v2Containers/FTP/constants.js +3 -0
- package/v2Containers/FTP/index.js +509 -0
- package/v2Containers/FTP/messages.js +60 -0
- package/v2Containers/FTP/reducer.js +32 -0
- package/v2Containers/FTP/sagas.js +26 -0
- package/v2Containers/FTP/selectors.js +20 -0
- package/v2Containers/FTP/temp.js +11838 -0
- package/v2Containers/Templates/_templates.scss +2 -2
- package/v2Containers/Templates/actions.js +110 -117
- package/v2Containers/Templates/constants.js +0 -2
- package/v2Containers/Templates/index.js +1 -29
- package/v2Containers/Templates/messages.js +0 -4
- package/v2Containers/Templates/reducer.js +0 -2
- package/v2Containers/TemplatesV2/index.js +13 -0
- package/v2Containers/TemplatesV2/messages.js +4 -0
- package/v2Containers/Viber/index.js +11 -31
- package/v2Containers/Viber/messages.js +4 -8
- package/v2Components/TemplatePreview/assets/images/viberMobile.svg +0 -135
|
@@ -4,126 +4,119 @@
|
|
|
4
4
|
*
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import * as types from './constants';
|
|
8
|
-
|
|
9
|
-
export function getAllTemplates(channel, queryParams) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export function resetTemplate() {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function resetAccount() {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function deleteTemplate(channel, id) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function getUserList() {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function getWeCrmAccounts(source) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export function setWeChatAccount(weChatAccount) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export function
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export function
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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={
|
|
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
|
|
|
@@ -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 !== '') || (
|
|
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
|
|
668
|
-
{container("image", <FormattedMessage {...messages.image} />, ImageViber
|
|
669
|
-
{container("button", <FormattedMessage {...messages.button} />, ButtonViber
|
|
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',
|
|
@@ -130,12 +134,4 @@ export default defineMessages({
|
|
|
130
134
|
id: `${scope}.emptyTitleErrorMessage`,
|
|
131
135
|
defaultMessage: 'Template title can not be empty',
|
|
132
136
|
},
|
|
133
|
-
optional: {
|
|
134
|
-
id: `${scope}.optional`,
|
|
135
|
-
defaultMessage: '(optional)',
|
|
136
|
-
},
|
|
137
|
-
inValidUrliErrorMessage: {
|
|
138
|
-
id: `${scope}.inValidUrliErrorMessage`,
|
|
139
|
-
defaultMessage: 'Button URL is not valid',
|
|
140
|
-
},
|
|
141
137
|
});
|