@capillarytech/creatives-library 3.9.21 → 3.10.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/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +7 -7
- package/components/TemplatePreview/_templatePreview.scss +20 -287
- package/components/TemplatePreview/index.js +31 -203
- package/components/TemplatePreview/messages.js +0 -21
- package/containers/Assets/Gallery/index.js +59 -53
- package/containers/Cap/index.js +0 -1
- package/index.js +0 -6
- package/package.json +1 -1
- package/routes.js +0 -5
- package/services/getSchema.js +1 -4
- package/translations/en.json +1 -29
- package/translations/zh.json +1 -29
- package/v2Components/FormBuilder/index.js +37 -188
- package/v2Components/FormBuilder/messages.js +0 -16
- package/v2Components/MobilePushPreviewV2/index.js +36 -44
- package/v2Components/MobilePushPreviewV2/messages.js +8 -0
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +0 -64
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +18 -100
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +0 -12
- package/v2Components/TemplatePreview/_templatePreview.scss +4 -24
- package/v2Components/TemplatePreview/index.js +23 -162
- package/v2Components/TemplatePreview/messages.js +0 -8
- package/v2Containers/Assets/Gallery/index.js +48 -54
- package/v2Containers/CreativesContainer/SlideBoxContent.js +4 -87
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -1
- package/v2Containers/CreativesContainer/index.js +2 -58
- package/v2Containers/CreativesContainer/messages.js +2 -2
- package/v2Containers/Email/_email.scss +1 -7
- package/v2Containers/Email/index.js +14 -40
- package/v2Containers/Email/messages.js +0 -4
- package/v2Containers/Email/reducer.js +0 -1
- package/v2Containers/EmailWrapper/index.js +5 -7
- package/v2Containers/Line/Create/_lineCreate.scss +19 -40
- package/v2Containers/Line/Create/actions.js +9 -13
- package/v2Containers/Line/Create/index.js +237 -498
- package/v2Containers/Line/Create/messages.js +2 -42
- package/v2Containers/Line/Create/sagas.js +4 -10
- package/v2Containers/Line/Create/selectors.js +9 -3
- package/v2Containers/MobilePush/Create/index.js +0 -5
- package/v2Containers/MobilePush/Edit/index.js +0 -5
- package/v2Containers/MobilepushWrapper/index.js +1 -4
- package/v2Containers/Sms/Create/index.js +1 -2
- package/v2Containers/Sms/Edit/index.js +0 -2
- package/v2Containers/Templates/_templates.scss +1 -24
- package/v2Containers/Templates/actions.js +0 -7
- package/v2Containers/Templates/constants.js +0 -2
- package/v2Containers/Templates/index.js +15 -118
- package/v2Containers/Templates/messages.js +0 -8
- package/v2Containers/Templates/reducer.js +0 -2
- package/v2Containers/TemplatesV2/index.js +4 -5
- package/v2Containers/TemplatesV2/messages.js +0 -4
- package/assets/IPad.js +0 -23
- package/assets/index.js +0 -1
- package/assets/lineImageTemplate.png +0 -0
- package/components/TemplatePreview/assets/images/HomeScreenAndroid.js +0 -53
- package/components/TemplatePreview/assets/images/SmsMobileAndroid.js +0 -52
- package/components/TemplatePreview/assets/images/SmsMobileIos.js +0 -71
- package/components/TemplatePreview/assets/images/UserIcon.js +0 -24
- package/components/TemplatePreview/assets/images/WechatMobileAndroid.js +0 -53
- package/components/TemplatePreview/assets/images/home-screen-android.svg +0 -21
- package/components/TemplatePreview/assets/images/home-screen-ios.svg +0 -16
- package/components/TemplatePreview/assets/images/sms_mobile_android.svg +0 -22
- package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +0 -16
- package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +0 -20
- package/v2Components/TemplatePreview/assets/images/HomeScreenAndroid.js +0 -53
- package/v2Components/TemplatePreview/assets/images/SmsMobileAndroid.js +0 -52
- package/v2Components/TemplatePreview/assets/images/UserIcon.js +0 -24
- package/v2Components/TemplatePreview/assets/images/WechatHomeScreenAndroid.js +0 -74
- package/v2Components/TemplatePreview/assets/images/WechatMobileAndroid.js +0 -53
- package/v2Components/TemplatePreview/assets/images/home-screen-android.svg +0 -21
- package/v2Components/TemplatePreview/assets/images/home-screen-ios.svg +0 -16
- package/v2Components/TemplatePreview/assets/images/sms_mobile_android.svg +0 -22
- package/v2Components/TemplatePreview/assets/images/wechat-home-screen-android.svg +0 -21
- package/v2Components/TemplatePreview/assets/images/wechat_mobile_android.svg +0 -20
- package/v2Containers/Assets/images/CalltaskIllustration.js +0 -71
- package/v2Containers/Assets/images/EmailIllustration.js +0 -87
- package/v2Containers/Assets/images/ImageGalleryIllustration.js +0 -60
- package/v2Containers/Assets/images/PushIllustration.js +0 -60
- package/v2Containers/Assets/images/SmsIllustration.js +0 -191
- package/v2Containers/Assets/images/WechatIllustration.js +0 -90
- package/v2Containers/Assets/images/index.js +0 -6
- package/v2Containers/Line/Create/initialSchema.js +0 -378
- package/v2Containers/Line/CreateWrapper/constants.js +0 -2
- package/v2Containers/Line/CreateWrapper/index.js +0 -117
- package/v2Containers/Line/CreateWrapper/messages.js +0 -55
|
@@ -8,145 +8,18 @@ import PropTypes from 'prop-types';
|
|
|
8
8
|
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import _ from 'lodash';
|
|
11
|
-
import { injectIntl, intlShape
|
|
12
|
-
import {CapColumn
|
|
11
|
+
import { injectIntl, intlShape} from 'react-intl';
|
|
12
|
+
import {CapColumn} from '@capillarytech/cap-react-ui-library';
|
|
13
13
|
import './_templatePreview.scss';
|
|
14
14
|
import {updateCharCount} from '../../utils/smsCharCountV2';
|
|
15
15
|
import messages from './messages';
|
|
16
16
|
const smsIcon = require('./assets/images/user-icon.svg');
|
|
17
|
-
const smsMobileAndroid = require('./assets/images/sms_mobile_android.svg');
|
|
18
|
-
const wechatMobileAndroid = require('./assets/images/wechat_mobile_android.svg');
|
|
19
|
-
const smsMobileIos = require('./assets/images/sms_mobile_ios.svg');
|
|
20
|
-
const smsAndroidHomeScreen = require('./assets/images/home-screen-android.svg');
|
|
21
|
-
const smsIosHomeScreen = require('./assets/images/home-screen-ios.svg');
|
|
22
17
|
const wechatBody = require('./assets/images/WECHAT_5x.png');
|
|
23
18
|
const smsBody = require('./assets/images/mobile.svg');
|
|
24
19
|
const androidPushMessagePhone = require('./assets/images/androidPushMessage.svg');
|
|
25
20
|
const iPhonePushMessagePhone = require('./assets/images/iPhonePushMessage.svg');
|
|
26
21
|
|
|
27
22
|
class TemplatePreview extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
28
|
-
getWechatAndroidPreview = (content) => (
|
|
29
|
-
<div className="shell-lock-screen-android align-center" id="sms-preview">
|
|
30
|
-
<div className="lock-screen-preview">
|
|
31
|
-
<CapImage className="preview-image sms" src={smsAndroidHomeScreen} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
32
|
-
<div className="lock-msgContainer wechat">
|
|
33
|
-
<div className="sender-id-text">
|
|
34
|
-
{this.props.intl.formatMessage(messages.senderId)}
|
|
35
|
-
</div>
|
|
36
|
-
<div className="message-text-container">
|
|
37
|
-
<CapLabel type="label1" style={{ height: '15px' }} >{content}</CapLabel>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
<div className="action-text">
|
|
41
|
-
<FormattedMessage {...messages.markAsRead}/> <FormattedMessage {...messages.reply}/>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
<div className="main-screen-preview">
|
|
45
|
-
<CapImage className="preview-image" src={wechatMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
46
|
-
<div className="msgContainer wechat">
|
|
47
|
-
<div className="message-pop wechat align-left" style={{ background: '#ffffff', color: '#333333' }}>
|
|
48
|
-
{content}
|
|
49
|
-
</div>
|
|
50
|
-
</div>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
getWechatIosPreview = (content) => (
|
|
56
|
-
<div className="shell-lock-screen-ios align-center" id="sms-preview">
|
|
57
|
-
<div className="lock-screen-preview">
|
|
58
|
-
<CapImage className="preview-image sms" src={smsIosHomeScreen} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
59
|
-
<div className="lock-msgContainer wechat">
|
|
60
|
-
<div className="sender-id-text">
|
|
61
|
-
{this.props.intl.formatMessage(messages.senderId)}
|
|
62
|
-
</div>
|
|
63
|
-
<div className="message-text-container">
|
|
64
|
-
<CapLabel type="label1" style={{ height: '15px' }} >{content}</CapLabel>
|
|
65
|
-
</div>
|
|
66
|
-
</div>
|
|
67
|
-
<div className="action-text-reply">
|
|
68
|
-
<FormattedMessage {...messages.reply}/>
|
|
69
|
-
</div>
|
|
70
|
-
<div className="action-text-cancel">
|
|
71
|
-
<FormattedMessage {...messages.cancel}/>
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
<div className="main-screen-preview">
|
|
75
|
-
<CapImage className="preview-image" src={wechatMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
76
|
-
<div className="msgContainer wechat">
|
|
77
|
-
<div className="message-pop wechat align-left" style={{ background: '#ffffff', color: '#333333' }}>
|
|
78
|
-
{content}
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
</div>
|
|
83
|
-
);
|
|
84
|
-
|
|
85
|
-
getSmsAndroidPreview = (content) => (
|
|
86
|
-
<div className="shell-lock-screen-android align-center" id="sms-preview">
|
|
87
|
-
<div className="lock-screen-preview">
|
|
88
|
-
<CapImage className="preview-image sms" src={smsAndroidHomeScreen} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
89
|
-
<div className="lock-msgContainer sms">
|
|
90
|
-
<div className="sender-id-text">
|
|
91
|
-
{this.props.intl.formatMessage(messages.senderId)}
|
|
92
|
-
</div>
|
|
93
|
-
<div className="message-text-container">
|
|
94
|
-
<CapLabel type="label1" style={{ height: '15px' }} >{content}</CapLabel>
|
|
95
|
-
</div>
|
|
96
|
-
</div>
|
|
97
|
-
<div className="action-text">
|
|
98
|
-
<FormattedMessage {...messages.markAsRead}/> <FormattedMessage {...messages.reply}/>
|
|
99
|
-
</div>
|
|
100
|
-
</div>
|
|
101
|
-
<div className="main-screen-preview">
|
|
102
|
-
<CapImage className="preview-image sms" src={smsMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
103
|
-
<div className="msgContainer sms">
|
|
104
|
-
<div className={"message-pop sms"}>
|
|
105
|
-
{content && content.length && content.map((msg) =>
|
|
106
|
-
<CapColumn className="message-pop-item align-left" style={{ background: '#FFFFFF', color: '#091e42'}}>
|
|
107
|
-
{msg}
|
|
108
|
-
</CapColumn>)
|
|
109
|
-
}
|
|
110
|
-
</div>
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
);
|
|
115
|
-
|
|
116
|
-
getSmsIosPreview = (content) => (
|
|
117
|
-
<div className="shell-lock-screen-ios align-center" id="sms-preview">
|
|
118
|
-
<div className="lock-screen-preview">
|
|
119
|
-
<CapImage className="preview-image sms" src={smsIosHomeScreen} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
120
|
-
<div className="lock-msgContainer sms">
|
|
121
|
-
<div className="sender-id-text">
|
|
122
|
-
{this.props.intl.formatMessage(messages.senderId)}
|
|
123
|
-
</div>
|
|
124
|
-
<div className="message-text-container">
|
|
125
|
-
<CapLabel type="label1" style={{ height: '15px' }} >{content}</CapLabel>
|
|
126
|
-
</div>
|
|
127
|
-
</div>
|
|
128
|
-
<div className="action-text-reply">
|
|
129
|
-
<FormattedMessage {...messages.reply}/>
|
|
130
|
-
</div>
|
|
131
|
-
<div className="action-text-cancel">
|
|
132
|
-
<FormattedMessage {...messages.cancel}/>
|
|
133
|
-
</div>
|
|
134
|
-
</div>
|
|
135
|
-
<div className="main-screen-preview">
|
|
136
|
-
<CapImage className="preview-image sms" src={smsMobileIos} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
137
|
-
<div className="msgContainer sms">
|
|
138
|
-
<div className={"message-pop sms"}>
|
|
139
|
-
{content && content.length && content.map((msg) =>
|
|
140
|
-
<CapColumn className="message-pop-item align-left" style={{ background: '#ebecf0', color: '#091e42'}}>
|
|
141
|
-
{msg}
|
|
142
|
-
</CapColumn>)
|
|
143
|
-
}
|
|
144
|
-
</div>
|
|
145
|
-
</div>
|
|
146
|
-
</div>
|
|
147
|
-
</div>
|
|
148
|
-
);
|
|
149
|
-
|
|
150
23
|
render() {
|
|
151
24
|
console.log('preview props', this.props);
|
|
152
25
|
let content = channel && channel.toLowerCase() === 'sms' ? [this.props.content] : this.props.content;
|
|
@@ -165,9 +38,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
165
38
|
//smsText = this.props.intl.formatMessage(messages.previewGenerationMessage);
|
|
166
39
|
//console.log('message text', smsText);
|
|
167
40
|
}
|
|
168
|
-
const showLockScreenPreview = !!this.props.showLockScreenPreview;
|
|
169
41
|
const type = this.props.location && this.props.location.query.type ? this.props.location.query.type : '';
|
|
170
|
-
const { containsUnicodeContent = false } = this.props;
|
|
171
42
|
let iosActions = [];
|
|
172
43
|
if (channel.toLowerCase() === "mobilepush") {
|
|
173
44
|
iosActions = _.map(content.actions, (action) => {
|
|
@@ -182,66 +53,34 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
182
53
|
return (
|
|
183
54
|
<div className={`preview-container ${type === 'embedded' ? 'embedded-preview' : ''}`}>
|
|
184
55
|
{ channel && channel.toLowerCase() === 'sms' &&
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
content: this.getSmsIosPreview(content),
|
|
195
|
-
tab: <CapIcon type="ios" size="m" />,
|
|
196
|
-
key: 'ios',
|
|
197
|
-
},
|
|
198
|
-
]}
|
|
199
|
-
tabBarStyle={{margin: 'auto', width: '14%'}}
|
|
200
|
-
/>
|
|
201
|
-
) : (
|
|
202
|
-
<div className="shell align-center" id="sms-preview">
|
|
203
|
-
<CapImage className="preview-image sms" src={smsMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
204
|
-
<div className="msgContainer sms">
|
|
205
|
-
<div className={"message-pop sms"}>
|
|
206
|
-
{content && content.length && content.map((msg) =>
|
|
207
|
-
<CapColumn className="message-pop-item align-left" style={{ background: '#FFFFFF', color: '#091e42'}}>
|
|
208
|
-
{msg}
|
|
209
|
-
</CapColumn>)
|
|
56
|
+
<div className="shell align-center" id="sms-preview">
|
|
57
|
+
<img className="preview-image sms" src={smsBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
58
|
+
<div className="msgContainer sms">
|
|
59
|
+
<img className="sms-icon" src={smsIcon} alt={this.props.intl.formatMessage(messages.smsIcon)} />
|
|
60
|
+
<div className={"message-pop sms"}>
|
|
61
|
+
{content && content.length && content.map((msg) =>
|
|
62
|
+
<CapColumn className="message-pop-item align-left" style={{ background: '#3F51B5', color: '#ffffff'}}>
|
|
63
|
+
{msg}
|
|
64
|
+
</CapColumn>)
|
|
210
65
|
}
|
|
211
|
-
</div>
|
|
212
|
-
</div>
|
|
213
|
-
</div>)
|
|
214
|
-
)}
|
|
215
|
-
{channel && channel.toLowerCase() === 'wechat' &&
|
|
216
|
-
(showLockScreenPreview ? (
|
|
217
|
-
<CapTab
|
|
218
|
-
panes={[
|
|
219
|
-
{
|
|
220
|
-
content: this.getWechatAndroidPreview(content),
|
|
221
|
-
tab: <CapIcon type="android" size="m" />,
|
|
222
|
-
key: 'android',
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
content: this.getWechatIosPreview(content),
|
|
226
|
-
tab: <CapIcon type="ios" size="m" />,
|
|
227
|
-
key: 'ios',
|
|
228
|
-
},
|
|
229
|
-
]}
|
|
230
|
-
tabBarStyle={{margin: 'auto', width: '14%'}}
|
|
231
|
-
/>
|
|
232
|
-
) : (
|
|
233
|
-
<div className="shell align-center" id="sms-preview">
|
|
234
|
-
<CapImage className="preview-image" src={channel.toLowerCase() === 'wechat' ? wechatMobileAndroid : smsBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
235
|
-
<div className="msgContainer">
|
|
236
|
-
<div className="message-pop align-left" style={{ background: `${this.props.channel.toLowerCase() === 'wechat' ? '#ffffff' : '#3F51B5'}`, color: `${this.props.channel.toLowerCase() === 'wechat' ? '#333333' : '#ffffff'}`}}>{content}
|
|
237
|
-
</div>
|
|
238
66
|
</div>
|
|
239
67
|
</div>
|
|
240
|
-
|
|
241
|
-
|
|
68
|
+
</div>
|
|
69
|
+
}
|
|
70
|
+
{channel && channel.toLowerCase() === 'wechat' ?
|
|
71
|
+
( <div className="shell align-center" id="sms-preview">
|
|
72
|
+
<img className="preview-image" src={channel.toLowerCase() === 'wechat' ? wechatBody : smsBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
73
|
+
<div className="msgContainer">
|
|
74
|
+
{this.props.channel.toLowerCase() === 'wechat' ? <div className="sms-icon" style={{ width: '25px', height: '25px', background: '#2E89DF' }}></div> : <img className="sms-icon" src={smsIcon} alt={this.props.intl.formatMessage(messages.smsIcon)} />}
|
|
75
|
+
<div className="message-pop align-left" style={{ background: `${this.props.channel.toLowerCase() === 'wechat' ? '#ffffff' : '#3F51B5'}`, color: `${this.props.channel.toLowerCase() === 'wechat' ? '#333333' : '#ffffff'}`}}>{content}
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
) : ''
|
|
80
|
+
}
|
|
242
81
|
{ channel && (channel.toLowerCase() === 'mobilepush') &&
|
|
243
82
|
(<div className="shell align-center" id="mobilepush-preview">
|
|
244
|
-
<
|
|
83
|
+
<img className="preview-image" src={this.props.device === "android" ? androidPushMessagePhone : iPhonePushMessagePhone} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
245
84
|
{(!!content.header || !!content.bodyText || !!content.bodyImage) &&
|
|
246
85
|
<div className={`${this.props.device}-push-message-Container`}>
|
|
247
86
|
{this.props.device === "android" ?
|
|
@@ -256,7 +95,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
256
95
|
{content.bodyText}
|
|
257
96
|
</div>
|
|
258
97
|
{content.bodyImage && <div className="body-image">
|
|
259
|
-
<
|
|
98
|
+
<img src={content.bodyImage} alt="" />
|
|
260
99
|
</div>}
|
|
261
100
|
{content.actions.filter((action) => action.label).length ?
|
|
262
101
|
<div className="actions">
|
|
@@ -272,7 +111,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
272
111
|
<span className="app-icon"></span>{content.appName ? content.appName : "App name"} <i className="material-icons">{this.props.intl.formatMessage(messages.close)}</i>
|
|
273
112
|
</div>
|
|
274
113
|
{content.bodyImage && <div className="body-image">
|
|
275
|
-
<
|
|
114
|
+
<img src={content.bodyImage} alt=""/>
|
|
276
115
|
</div>}
|
|
277
116
|
<div className="title">
|
|
278
117
|
{content.header}
|
|
@@ -291,11 +130,11 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
291
130
|
{
|
|
292
131
|
channel && channel.toLowerCase() === 'line' ? (
|
|
293
132
|
<div className="shell align-center" id="sms-preview">
|
|
294
|
-
<
|
|
295
|
-
<div className="msgContainer
|
|
133
|
+
<img className="preview-image" src={wechatBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
|
|
134
|
+
<div className="msgContainer">
|
|
296
135
|
<div className="sms-icon" style={{ width: '25px', height: '25px', background: '#2E89DF' }}></div>
|
|
297
136
|
<div className="message-pop align-left" style={{ background: '#ffffff', color: '#333333' }}>
|
|
298
|
-
{ (content && content.bodyImage) ? <
|
|
137
|
+
{ (content && content.bodyImage) ? <img src={content.bodyImage} alt="ddd" style={{maxWidth: '100%'}}/> : '' }
|
|
299
138
|
{ (content && content.bodyText) ? content.bodyText : ''}
|
|
300
139
|
</div>
|
|
301
140
|
</div>
|
|
@@ -310,18 +149,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
310
149
|
{smsDetails.unicode &&
|
|
311
150
|
<div style={{fontSize: '16px'}}>{`${this.props.intl.formatMessage(messages.smsFormatType)}`}</div>
|
|
312
151
|
}
|
|
313
|
-
<div style={{marginTop: '8px', fontSize: '16px'
|
|
314
|
-
{`${smsDetails.parts} ${this.props.intl.formatMessage(messages.sms)} (${smsDetails.chars_used} ${this.props.intl.formatMessage(messages.characters)})`}
|
|
315
|
-
{containsUnicodeContent &&
|
|
316
|
-
<CapTooltip
|
|
317
|
-
title={this.props.intl.formatMessage(
|
|
318
|
-
messages.unicodeIconTooltip,
|
|
319
|
-
)}
|
|
320
|
-
>
|
|
321
|
-
<CapIcon type="unicode" style={{ marginLeft: 4 }} />
|
|
322
|
-
</CapTooltip>
|
|
323
|
-
}
|
|
324
|
-
</div>
|
|
152
|
+
<div style={{marginTop: '8px', fontSize: '16px'}} >{`${smsDetails.parts} ${this.props.intl.formatMessage(messages.sms)} (${smsDetails.chars_used} ${this.props.intl.formatMessage(messages.characters)})`}</div>
|
|
325
153
|
{smsDetails.optoutUrlPresent && <div style={{fontWeight: '100', fontSize: '12px'}}>
|
|
326
154
|
{`${this.props.intl.formatMessage(messages.includesOptoutTag)} (${smsDetails.optouturlLength} ${this.props.intl.formatMessage(messages.characters)})`}
|
|
327
155
|
</div>}
|
|
@@ -10,10 +10,6 @@ export default defineMessages({
|
|
|
10
10
|
id: 'creatives.components.TemplatePreview.previewGenerationMessage',
|
|
11
11
|
defaultMessage: "Preview is being generated",
|
|
12
12
|
},
|
|
13
|
-
senderId: {
|
|
14
|
-
id: 'creatives.components.TemplatePreview.senderId',
|
|
15
|
-
defaultMessage: "Sender ID",
|
|
16
|
-
},
|
|
17
13
|
sms: {
|
|
18
14
|
id: 'creatives.components.TemplatePreview.sms',
|
|
19
15
|
defaultMessage: "SMS",
|
|
@@ -50,21 +46,4 @@ export default defineMessages({
|
|
|
50
46
|
id: 'creatives.components.TemplatePreview.smsIcon',
|
|
51
47
|
defaultMessage: 'Sms Icon',
|
|
52
48
|
},
|
|
53
|
-
markAsRead: {
|
|
54
|
-
id: 'creatives.components.TemplatePreview.markAsRead',
|
|
55
|
-
defaultMessage: 'Mark as read',
|
|
56
|
-
},
|
|
57
|
-
reply: {
|
|
58
|
-
id: 'creatives.components.TemplatePreview.reply',
|
|
59
|
-
defaultMessage: 'Reply',
|
|
60
|
-
},
|
|
61
|
-
cancel: {
|
|
62
|
-
id: 'creatives.components.TemplatePreview.cancel',
|
|
63
|
-
defaultMessage: 'Cancel',
|
|
64
|
-
},
|
|
65
|
-
unicodeIconTooltip: {
|
|
66
|
-
id: `creatives.components.TemplatePreview.unicodeIconTooltip`,
|
|
67
|
-
defaultMessage:
|
|
68
|
-
'This message has unicode characters. This may affect the cost per message.',
|
|
69
|
-
},
|
|
70
49
|
});
|
|
@@ -109,6 +109,13 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
109
109
|
const message = getMessageObject('error', this.props.intl.formatMessage(messages.assetDeleteFailed), true);
|
|
110
110
|
this.props.globalActions.addMessageToQueue(message);
|
|
111
111
|
}
|
|
112
|
+
if ( nextProps.Gallery.itemDeleted || !nextProps.Gallery.assetUploading) {
|
|
113
|
+
const params = {
|
|
114
|
+
name: this.state.searchText,
|
|
115
|
+
sortBy: 'Most Recent',
|
|
116
|
+
};
|
|
117
|
+
this.getAllAssets({params}, true);
|
|
118
|
+
}
|
|
112
119
|
}
|
|
113
120
|
|
|
114
121
|
componentWillUnmount() {
|
|
@@ -230,19 +237,18 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
230
237
|
uploadImages(e, {files}) {
|
|
231
238
|
e.preventDefault();
|
|
232
239
|
const _URL = window.URL || window.webkitURL;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
};
|
|
243
|
-
that.props.actions.uploadAsset(files[file], 'image', fileParams);
|
|
240
|
+
//const file = files[0];
|
|
241
|
+
for (let file in files){
|
|
242
|
+
const img = new Image();
|
|
243
|
+
const that = this;
|
|
244
|
+
img.src = _URL.createObjectURL(files[file]);
|
|
245
|
+
img.onload = function () {
|
|
246
|
+
const fileParams = {
|
|
247
|
+
width: this.width,
|
|
248
|
+
height: this.height,
|
|
244
249
|
};
|
|
245
|
-
|
|
250
|
+
that.props.actions.uploadAsset(files[file], 'image', fileParams);
|
|
251
|
+
};
|
|
246
252
|
}
|
|
247
253
|
}
|
|
248
254
|
|
|
@@ -375,10 +381,10 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
375
381
|
return (
|
|
376
382
|
<div>
|
|
377
383
|
{/*<Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>*/}
|
|
378
|
-
|
|
379
|
-
|
|
384
|
+
<Helmet
|
|
385
|
+
title={this.props.intl.formatMessage(messages.gallery)}
|
|
380
386
|
/>
|
|
381
|
-
|
|
387
|
+
{/* this.props.location.query.type !== 'embedded' && <Row style={{marginBottom: '16px'}}>
|
|
382
388
|
<Col>
|
|
383
389
|
<Breadcrumb>
|
|
384
390
|
<Breadcrumb.Item>Campaigns</Breadcrumb.Item>
|
|
@@ -388,49 +394,49 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
|
|
|
388
394
|
</Col>
|
|
389
395
|
</Row> */}
|
|
390
396
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
397
|
+
{!this.state.showEmbeddedPreview && <PageHeader pageHeading={pageHeading} actionComponents={actionComponents} />}
|
|
398
|
+
|
|
399
|
+
{this.state.showEmbeddedPreview ?
|
|
400
|
+
<div className="embedded-preview-wrapper">
|
|
401
|
+
<div className="embedded-preview-header" onClick={this.hideEmbeddedPreviewMode}>
|
|
402
|
+
<p className="embedded-preview-header-wrapper" style={{display: 'inline-flex'}}>
|
|
403
|
+
<i className="material-icons">arrow_back</i>
|
|
404
|
+
<span className="embedded-preview-header-text">
|
|
405
|
+
<FormattedMessage {...messages.backToGallery} />
|
|
406
|
+
</span>
|
|
407
|
+
</p>
|
|
408
|
+
</div>
|
|
409
|
+
<div style={{height: "75vh", width: '100%'}}>
|
|
410
|
+
<div style={{overflow: 'hidden', textAlign: 'center'}}>
|
|
411
|
+
<div style={{ display: 'table', height: '75vh', width: '85vw', background: 'url(https://s3.amazonaws.com/test_files_cache_bkp/intouch_creative_assets/1720b7f7e78860c1f905.svg)' }}>
|
|
412
|
+
<div style={{ height: "75vh", display: 'table-cell', verticalAlign: 'middle' }}>
|
|
413
|
+
<img style={{maxWidth: '100%', maxHeight: '100%'}} src={this.state.selectedAsset.metaInfo.secure_file_path ? this.state.selectedAsset.metaInfo.secure_file_path : this.state.selectedAsset.metaInfo.public_url} alt={this.state.selectedAsset.name} />
|
|
414
|
+
</div>
|
|
408
415
|
</div>
|
|
416
|
+
<a href={this.state.selectedAsset.metaInfo.public_url} target="_blank" style={{ position: 'fixed', right: '24px', bottom: '17vh' }} ><i className="material-icons" style={{ color: '#2E89DF', cursor: 'pointer' }}>fullscreen</i></a>
|
|
417
|
+
</div>
|
|
418
|
+
<div style={{ fontSize: '14px', color: '#333333', lineHeight: '24px', fontFamily: 'OpenSans', textAlign: 'center', paddingTop: '10px'}}>
|
|
419
|
+
<p><span><FormattedMessage {...messages.dimensions} />: </span> <span>{`${this.state.selectedAsset.metaInfo.width}X${this.state.selectedAsset.metaInfo.height} px`}</span></p>
|
|
420
|
+
<p><span><FormattedMessage {...messages.size} />: </span> <span>{this.state.selectedAsset.metaInfo.file_size}</span></p>
|
|
421
|
+
<p><span><FormattedMessage {...messages.uploadedOn} />: </span> <span>{moment(this.state.selectedAsset.updatedAt).format('DD MMM YYYY hh:mm A')}</span></p>
|
|
422
|
+
{/* <p><span>URL: </span> <span>{this.state.selectedAsset.metaInfo.publicUrl}</span></p> */}
|
|
409
423
|
</div>
|
|
410
|
-
<a href={this.state.selectedAsset.metaInfo.public_url} target="_blank" style={{ position: 'fixed', right: '24px', bottom: '17vh' }} ><i className="material-icons" style={{ color: '#2E89DF', cursor: 'pointer' }}>fullscreen</i></a>
|
|
411
|
-
</div>
|
|
412
|
-
<div style={{ fontSize: '14px', color: '#333333', lineHeight: '24px', fontFamily: 'OpenSans', textAlign: 'center', paddingTop: '10px'}}>
|
|
413
|
-
<p><span><FormattedMessage {...messages.dimensions} />: </span> <span>{`${this.state.selectedAsset.metaInfo.width}X${this.state.selectedAsset.metaInfo.height} px`}</span></p>
|
|
414
|
-
<p><span><FormattedMessage {...messages.size} />: </span> <span>{this.state.selectedAsset.metaInfo.file_size}</span></p>
|
|
415
|
-
<p><span><FormattedMessage {...messages.uploadedOn} />: </span> <span>{moment(this.state.selectedAsset.updatedAt).format('DD MMM YYYY hh:mm A')}</span></p>
|
|
416
|
-
{/* <p><span>URL: </span> <span>{this.state.selectedAsset.metaInfo.publicUrl}</span></p> */}
|
|
417
424
|
</div>
|
|
418
|
-
</div>
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
enablePagination
|
|
425
|
+
</div> :
|
|
426
|
+
<Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>
|
|
427
|
+
<Pagination onPageChange={() => { this.getAllAssets({getNextPage: true}); }} paginationSelector="pagination-container">
|
|
428
|
+
<CardGrid
|
|
429
|
+
listItem={this.prepareData()}
|
|
430
|
+
filterContent={filterContent}
|
|
431
|
+
onHoverItem={this.handleOnHoverItem}
|
|
432
|
+
onItemClick={this.handleOnHoverItem}
|
|
433
|
+
colNumber={this.props.location.query.type === 'embedded' ? 2 : 4}
|
|
434
|
+
enablePagination
|
|
429
435
|
/>
|
|
430
|
-
|
|
431
|
-
|
|
436
|
+
</Pagination>
|
|
437
|
+
</Spin>
|
|
432
438
|
}
|
|
433
|
-
|
|
439
|
+
{this.state.showImagePreviewModal && this.renderAssetPreviewModal()}
|
|
434
440
|
{/*</Spin>*/}
|
|
435
441
|
</div>
|
|
436
442
|
);
|
package/containers/Cap/index.js
CHANGED
|
@@ -75,7 +75,6 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
75
75
|
this.props.locationActions.changeLocale(locale);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
|
|
79
78
|
componentWillReceiveProps(nextProps) {
|
|
80
79
|
const user = this.props.Global.user;
|
|
81
80
|
const nextPropsUser = nextProps.Global.user;
|
package/index.js
CHANGED
|
@@ -43,10 +43,6 @@ import Facebook from './v2Containers/Facebook';
|
|
|
43
43
|
import facebookReducer from './v2Containers/Facebook/reducer';
|
|
44
44
|
import facebookSaga from './v2Containers/Facebook/sagas';
|
|
45
45
|
|
|
46
|
-
import Gallery from './v2Containers/Assets/Gallery';
|
|
47
|
-
import galleryReducer from './v2Containers/Assets/Gallery/reducer';
|
|
48
|
-
import gallerySagas from './v2Containers/Assets/Gallery/sagas';
|
|
49
|
-
|
|
50
46
|
import MobilepushCreate from './v2Containers/MobilePush/Create';
|
|
51
47
|
import mobilepushCreateReducer from './v2Containers/MobilePush/Create/reducer';
|
|
52
48
|
import mobilepushCreateSaga from './v2Containers/MobilePush/Create/sagas';
|
|
@@ -90,7 +86,6 @@ const LineCreateContainer = {LineCreate, lineCreateReducer, lineCreateSaga};
|
|
|
90
86
|
const LineEditContainer = {LineEdit, lineEditReducer, lineEditSaga};
|
|
91
87
|
const TemplatesV2Container = {TemplatesV2, templateReducer, templateSaga};
|
|
92
88
|
const FacebookContainer = {Facebook, facebookReducer, facebookSaga};
|
|
93
|
-
const GalleryContainer = {Gallery, galleryReducer, gallerySagas};
|
|
94
89
|
|
|
95
90
|
export {default as TagList} from './v2Containers/TagList/index';
|
|
96
91
|
export {default as TagListSaga} from './v2Containers/TagList/sagas';
|
|
@@ -128,5 +123,4 @@ export { CapContainer,
|
|
|
128
123
|
CreativesContainer,
|
|
129
124
|
updateCharCount,
|
|
130
125
|
FacebookContainer,
|
|
131
|
-
GalleryContainer,
|
|
132
126
|
};
|
package/package.json
CHANGED
package/routes.js
CHANGED
|
@@ -630,8 +630,6 @@ export default function createRoutes(store) {
|
|
|
630
630
|
import('v2Containers/Assets/Gallery/sagas'),
|
|
631
631
|
import('v2Containers/Facebook/sagas'),
|
|
632
632
|
import('v2Containers/Facebook/reducer'),
|
|
633
|
-
import('v2Containers/Line/Create/sagas'),
|
|
634
|
-
import('v2Containers/Line/Create/reducer'),
|
|
635
633
|
]);
|
|
636
634
|
|
|
637
635
|
const renderRoute = loadModule(cb);
|
|
@@ -650,7 +648,6 @@ export default function createRoutes(store) {
|
|
|
650
648
|
weChatRichmediaTemplatesEditSagas, weChatRichmediaTemplatesEditReducer,
|
|
651
649
|
galleryReducer, gallerySagas,
|
|
652
650
|
facebookSagas, facebookReducer,
|
|
653
|
-
lineCreateSagas, lineCreateReducer,
|
|
654
651
|
]) => {
|
|
655
652
|
injectReducer('templates', reducer.default);
|
|
656
653
|
injectReducer('cap', capReducer.default);
|
|
@@ -666,7 +663,6 @@ export default function createRoutes(store) {
|
|
|
666
663
|
injectReducer('weChatRichmediaEdit', weChatRichmediaTemplatesEditReducer.default);
|
|
667
664
|
injectReducer('gallery', galleryReducer.default);
|
|
668
665
|
injectReducer('facebook', facebookReducer.default);
|
|
669
|
-
injectReducer('lineCreate', lineCreateReducer.default);
|
|
670
666
|
injectSagas(gallerySagas.default);
|
|
671
667
|
injectSagas(sagas.default);
|
|
672
668
|
injectSagas(capSagas.default);
|
|
@@ -680,7 +676,6 @@ export default function createRoutes(store) {
|
|
|
680
676
|
injectSagas(weChatRichmediaTemplatesCreateSagas.default);
|
|
681
677
|
injectSagas(weChatRichmediaTemplatesEditSagas.default);
|
|
682
678
|
injectSagas(facebookSagas.default);
|
|
683
|
-
injectSagas(lineCreateSagas.default);
|
|
684
679
|
renderRoute(component);
|
|
685
680
|
});
|
|
686
681
|
importModules.catch(errorLoading);
|
package/services/getSchema.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {SMS, EMAIL, MOBILE_PUSH, WECHAT
|
|
1
|
+
import {SMS, EMAIL, MOBILE_PUSH, WECHAT} from '../v2Containers/CreativesContainer/constants';
|
|
2
2
|
export default function getSchema(channel) {
|
|
3
3
|
let schemaPath = '../containers/';
|
|
4
4
|
switch (channel.toUpperCase()) {
|
|
@@ -14,9 +14,6 @@ export default function getSchema(channel) {
|
|
|
14
14
|
case WECHAT:
|
|
15
15
|
schemaPath = import(`../v2Containers/WeChat/MapTemplates/initialSchema`);
|
|
16
16
|
break;
|
|
17
|
-
case LINE:
|
|
18
|
-
schemaPath = import(`../v2Containers/Line/Create/initialSchema`);
|
|
19
|
-
break;
|
|
20
17
|
default:
|
|
21
18
|
schemaPath = import(`../v2Containers/Sms/initialSchema`);
|
|
22
19
|
}
|