@capillarytech/creatives-library 3.8.11 → 3.9.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 (52) hide show
  1. package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +8 -7
  2. package/components/TemplatePreview/_templatePreview.scss +20 -279
  3. package/components/TemplatePreview/index.js +20 -180
  4. package/components/TemplatePreview/messages.js +0 -16
  5. package/index.js +6 -0
  6. package/package.json +1 -1
  7. package/v2Components/FormBuilder/index.js +17 -25
  8. package/v2Components/MobilePushPreviewV2/index.js +32 -40
  9. package/v2Components/MobilePushPreviewV2/messages.js +8 -0
  10. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +0 -64
  11. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +19 -101
  12. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +0 -12
  13. package/v2Components/TemplatePreview/_templatePreview.scss +4 -13
  14. package/v2Components/TemplatePreview/index.js +20 -147
  15. package/v2Components/TemplatePreview/messages.js +0 -8
  16. package/v2Containers/Assets/Gallery/index.js +1 -0
  17. package/v2Containers/CreativesContainer/SlideBoxContent.js +17 -17
  18. package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -1
  19. package/v2Containers/CreativesContainer/index.js +51 -4
  20. package/v2Containers/CreativesContainer/messages.js +2 -2
  21. package/v2Containers/Email/_email.scss +1 -7
  22. package/v2Containers/Email/index.js +13 -39
  23. package/v2Containers/Email/messages.js +0 -4
  24. package/v2Containers/EmailWrapper/index.js +5 -7
  25. package/v2Containers/Line/Create/actions.js +2 -1
  26. package/v2Containers/Line/Create/index.js +137 -61
  27. package/v2Containers/Line/Create/sagas.js +2 -2
  28. package/v2Containers/Line/Create/selectors.js +2 -7
  29. package/v2Containers/Line/CreateWrapper/index.js +5 -2
  30. package/v2Containers/Line/CreateWrapper/messages.js +12 -0
  31. package/v2Containers/MobilePush/Create/index.js +0 -5
  32. package/v2Containers/MobilePush/Edit/index.js +0 -5
  33. package/v2Containers/MobilepushWrapper/index.js +1 -4
  34. package/v2Containers/Sms/Create/index.js +1 -2
  35. package/v2Containers/Sms/Edit/index.js +0 -2
  36. package/v2Containers/Templates/_templates.scss +20 -16
  37. package/v2Containers/Templates/actions.js +7 -0
  38. package/v2Containers/Templates/constants.js +2 -0
  39. package/v2Containers/Templates/index.js +58 -9
  40. package/v2Containers/Templates/messages.js +8 -0
  41. package/v2Containers/Templates/reducer.js +2 -0
  42. package/components/TemplatePreview/assets/images/home-screen-android.svg +0 -21
  43. package/components/TemplatePreview/assets/images/home-screen-ios.svg +0 -16
  44. package/components/TemplatePreview/assets/images/sms_mobile_android.svg +0 -22
  45. package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +0 -16
  46. package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +0 -20
  47. package/package-lock.json +0 -3096
  48. package/v2Components/TemplatePreview/assets/images/home-screen-android.svg +0 -21
  49. package/v2Components/TemplatePreview/assets/images/home-screen-ios.svg +0 -16
  50. package/v2Components/TemplatePreview/assets/images/sms_mobile_android.svg +0 -22
  51. package/v2Components/TemplatePreview/assets/images/wechat-home-screen-android.svg +0 -21
  52. package/v2Components/TemplatePreview/assets/images/wechat_mobile_android.svg +0 -20
@@ -7,15 +7,14 @@
7
7
  import React from 'react';
8
8
  import PropTypes from 'prop-types';
9
9
  // import { connect } from 'react-redux';
10
- import { CapRow, CapColumn, CapButton, CapImage } from '@capillarytech/cap-react-ui-library/';
11
- import { CapHeading, CapLabel, CapTab, CapIcon } from '@capillarytech/cap-ui-library/';
10
+ import { CapRow, CapColumn, CapButton } from '@capillarytech/cap-react-ui-library/';
11
+ import { CapHeading, CapLabel } from '@capillarytech/cap-ui-library/';
12
12
  import { FormattedMessage } from 'react-intl';
13
13
  import _ from 'lodash';
14
14
  import './_wechatRichmediaTemplatePrev.scss';
15
15
  import messages from './messages';
16
- const wechatBody = require('./../assets/images/wechat_mobile_android.svg');
17
- const wechatLockScreenAndroid = require('./../assets/images/wechat-home-screen-android.svg');
18
- const wechatLockScreenIos = require('./../assets/images/home-screen-ios.svg');
16
+ const wechatBody = require('./../assets/images/WECHAT_5x.png');
17
+
19
18
  class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-disable-line react/prefer-stateless-function
20
19
  preparePreviewData = (mediaList) => {
21
20
  const previewMsg = [];
@@ -24,7 +23,7 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
24
23
  const contentData = content[0];
25
24
  previewMsg.push(
26
25
  <div className="richmedia-image-container">
27
- <CapImage alt="default" width="100%" height="102px" src={contentData.image_url} />
26
+ <img alt="default" width="100%" height="102px" src={contentData.image_url} />
28
27
  {mediaListLength !== 1 && (
29
28
  <div className="name-container">
30
29
  <CapHeading type="h4" style={{color: "white"}}>{contentData.title}</CapHeading>
@@ -44,7 +43,7 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
44
43
  previewMsg.push(
45
44
  <div className="additional-richmedia-container">
46
45
  <div><CapLabel type="label9" style={{width: '170px', top: '12px', position: 'relative'}}>{data.title}</CapLabel></div>
47
- <CapImage alt="default" width="34px" height="34px" src={data.image_url} />
46
+ <img alt="default" width="34px" height="34px" src={data.image_url} />
48
47
  </div>
49
48
  );
50
49
  });
@@ -62,7 +61,7 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
62
61
  returnObj.push(
63
62
  <div style={{ width: "100%", height: 116, position: "relative" }}>
64
63
  <CapRow>
65
- <CapImage alt="default" width="100%" height="110px" src={contentData.image_url} />
64
+ <img alt="default" width="100%" height="110px" src={contentData.image_url} />
66
65
  <div className="preview-overflow-wrap-fields" style={{ position: "absolute", bottom: "5%", left: "10%", width: "auto" }}>{contentData.title ? contentData.title : ""}</div>
67
66
  </CapRow>
68
67
  {Object.keys(mediaList).length === 1 ?
@@ -81,7 +80,7 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
81
80
  {contentData.title}
82
81
  </CapColumn>
83
82
  <CapColumn style={{ float: "right" }}>
84
- <CapImage alt="default" width="60px" height="60px" src={contentData.image_url}/>
83
+ <img alt="default" width="60px" height="60px" src={contentData.image_url}/>
85
84
  </CapColumn>
86
85
  </CapRow>
87
86
  );
@@ -92,102 +91,21 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
92
91
  goToEdit(e, path) {
93
92
  this.props.onEditClick(e, this.props.templateId, this.props.modeType, path);
94
93
  }
95
- getWechatRichMediaAndroidPreview = (content) => (
96
- <div className="preview-container">
97
- <div className="shell-lock-screen-android align-center">
98
- <div className="lock-screen-preview">
99
- <CapImage className="preview-image" src={wechatLockScreenAndroid} alt="Preview is being generated"/>
100
- <div className="wechat-android-sender-id">
101
- Muji India
102
- </div>
103
- <div className="wechat-android-title">
104
- {content[0].title}
105
- </div>
106
- <div className="wechat-android-action-buttons">
107
- <FormattedMessage {...messages.MarkAsRead} /> <FormattedMessage {...messages.reply} />
108
- </div>
109
- </div>
110
- <div className="main-screen-preview">
111
- <CapImage className="preview-image" src={wechatBody} alt="Preview is being generated"/>
112
- <div className={this.props.type === 'embedded' ? "wechatMsgContainerOutbound" : "wechatMsgContainer"}>
113
- <div className={this.props.type === 'embedded' ? "overflow-handle-preview-outbound" : "overflow-handle-preview"}>
114
- {this.preparePreviewData(content)}
115
- </div>
116
- </div>
117
- </div>
118
- </div>
119
- </div>
120
- );
121
-
122
- getWechatRIchMediaIosPreview = (content) => (
123
- <div className="preview-container">
124
- <div className="shell-lock-screen-android align-center">
125
- <div className="lock-screen-preview">
126
- <CapImage className="preview-image" src={wechatLockScreenIos} alt="Preview is being generated"/>
127
- <div className="wechat-ios-sender-id">
128
- Muji India
129
- </div>
130
- <div className="wechat-ios-title">
131
- {content[0].title}
132
- </div>
133
- <div className="wechat-ios-action-reply">
134
- <FormattedMessage {...messages.reply} />
135
- </div>
136
- <div className="wechat-ios-action-cancel">
137
- <FormattedMessage {...messages.cancel} />
138
- </div>
139
- </div>
140
- <div className="main-screen-preview">
141
- <CapImage className="preview-image" src={wechatBody} alt="Preview is being generated"/>
142
- <div className={this.props.type === 'embedded' ? "wechatMsgContainerOutbound" : "wechatMsgContainer"}>
143
- <div className={this.props.type === 'embedded' ? "overflow-handle-preview-outbound" : "overflow-handle-preview"}>
144
- {this.preparePreviewData(content)}
145
- </div>
146
- </div>
147
- </div>
148
- </div>
149
- </div>
150
- );
151
-
152
- getContentForSlidebox = (content) => {
153
- return (
154
- !this.props.showLockScreenPreview ? (
155
- <div className={`preview-container ${this.props.type === 'embedded' ? 'embedded-preview' : ''}`}>
156
- <div className="shell align-center" id="sms-preview">
157
- <CapImage className="preview-image" src={wechatBody} alt="Preview is being generated"/>
158
- <div className={this.props.type === 'embedded' ? "wechatMsgContainerOutbound" : "wechatMsgContainer"}>
159
- <div className={this.props.type === 'embedded' ? "overflow-handle-preview-outbound" : "overflow-handle-preview"}>
160
- {this.preparePreviewData(this.props.content)}
161
- </div>
162
- </div>
163
- </div>
164
- {this.props.showEdit ? <CapButton onClick={(e) => this.goToEdit(e, this.props.path)} className="preview-buttons" type="primary">{this.props.type === 'embedded' ? <FormattedMessage {...messages.select} /> : <FormattedMessage {...messages.edit} /> }</CapButton> : ""}
165
- </div>
166
- ) : (
167
- <CapTab
168
- panes={[
169
- {
170
- content: this.getWechatRichMediaAndroidPreview(this.props.content),
171
- tab: <CapIcon type="android" size='m' />,
172
- key: 'android',
173
- },
174
- {
175
- content: this.getWechatRIchMediaIosPreview(this.props.content),
176
- tab: <CapIcon type="ios" size='m' />,
177
- key: 'ios',
178
- },
179
- ]}
180
- tabBarStyle={{margin: 'auto', width: '14%'}}
181
- />
182
- )
183
- );
184
- };
185
-
186
94
  render() {
187
95
  return (
188
96
  <div>
189
97
  {this.props.contentForSlideBox ?
190
- this.getContentForSlidebox(this.props.content)
98
+ <div className={`preview-container ${this.props.type === 'embedded' ? 'embedded-preview' : ''}`}>
99
+ <div className="shell align-center" id="sms-preview">
100
+ <img className="preview-image" src={wechatBody} alt="Preview is being generated"/>
101
+ <div className={this.props.type === 'embedded' ? "wechatMsgContainerOutbound" : "wechatMsgContainer"}>
102
+ <div className={this.props.type === 'embedded' ? "overflow-handle-preview-outbound" : "overflow-handle-preview"}>
103
+ {this.preparePreviewData(this.props.content)}
104
+ </div>
105
+ </div>
106
+ </div>
107
+ {this.props.showEdit ? <CapButton onClick={(e) => this.goToEdit(e, this.props.path)} className="preview-buttons" type="primary">{this.props.type === 'embedded' ? <FormattedMessage {...messages.select} /> : <FormattedMessage {...messages.edit} /> }</CapButton> : ""}
108
+ </div>
191
109
  :
192
110
  <div className={`preview-container ${this.props.type === 'embedded' ? 'embedded-preview' : ''}`}>
193
111
  <div className="shell align-center" id="sms-preview">
@@ -18,16 +18,4 @@ export default defineMessages({
18
18
  id: 'creatives.components.WechatRichmediaTemplatePreview.edit',
19
19
  defaultMessage: 'Edit',
20
20
  },
21
- MarkAsRead: {
22
- id: 'creatives.components.WechatRichmediaTemplatePreview.MarkAsRead',
23
- defaultMessage: 'Mark as read',
24
- },
25
- reply: {
26
- id: 'creatives.components.WechatRichmediaTemplatePreview.reply',
27
- defaultMessage: 'Reply',
28
- },
29
- cancel: {
30
- id: 'creatives.components.WechatRichmediaTemplatePreview.cancel',
31
- defaultMessage: 'Cancel',
32
- },
33
21
  });
@@ -1,4 +1,4 @@
1
- .shell-v2 {
1
+ .shell {
2
2
  position: relative;
3
3
  -webkit-transform: translate(-50%);
4
4
  transform: translate(-50%);
@@ -15,8 +15,8 @@
15
15
 
16
16
  .msgContainer {
17
17
  position: absolute;
18
- top: 20%;
19
- left: 23%;
18
+ top: 18%;
19
+ left: 28.8%;
20
20
  width: 42%;
21
21
  height: 336px;
22
22
  display: -webkit-box;
@@ -37,9 +37,6 @@
37
37
  left: 14px;
38
38
  }
39
39
  }
40
- &.wechat{
41
- width: 52%;
42
- }
43
40
 
44
41
  .message-pop{
45
42
  .unicode-disabled{
@@ -57,7 +54,7 @@
57
54
  line-height: 14px;
58
55
  padding: 0 8px 8px 8px;
59
56
  font-size: 10px;
60
- width: 100%;
57
+ width: 80%;
61
58
  font-family: 'open-sans';
62
59
  .message-pop-item{
63
60
  padding: 4px;
@@ -362,9 +359,3 @@
362
359
  font-size: 12px;
363
360
  }
364
361
  }
365
-
366
- .test-and-preview-container{
367
- display: flex;
368
- margin-top: -12px;
369
- margin-bottom: 12px;
370
- }
@@ -10,114 +10,17 @@ import React from 'react';
10
10
  import _ from 'lodash';
11
11
  import { injectIntl, FormattedMessage, intlShape } from 'react-intl';
12
12
  // import styled from 'styled-components';
13
- import {CapColumn, CapRow, CapHeading, CapIcon, CapButton, CapImage} from '@capillarytech/cap-ui-library';
13
+ import {CapColumn, CapRow, CapHeading} from '@capillarytech/cap-ui-library';
14
14
  import './_templatePreview.scss';
15
15
  import {updateCharCount} from '../../utils/smsCharCountV2';
16
16
  import messages from './messages';
17
- import { WECHAT } from '../../v2Containers/CreativesContainer/constants';
18
- const wechatBodyNew = require('./assets/images/wechat_mobile_android.svg');
19
- const smsMobileAndroid = require('./assets/images/sms_mobile_android.svg');
17
+ const smsIcon = require('./assets/images/user-icon.svg');
18
+ const wechatBody = require('./assets/images/WECHAT_5x.png');
19
+ const smsBody = require('./assets/images/mobile.svg');
20
20
  const androidPushMessagePhone = require('./assets/images/androidPushMessage.svg');
21
21
  const iPhonePushMessagePhone = require('./assets/images/iPhonePushMessage.svg');
22
22
 
23
23
  class TemplatePreview extends React.Component { // eslint-disable-line react/prefer-stateless-function
24
- onPreviewContentClicked = (channel) => {
25
- const IOSContent = (this.props.templateDataRaw && this.props.templateDataRaw.versions.base.IOS) ||
26
- ((this.props.device === 'iphone' || this.props.device === 'ios') && this.props.content);
27
- const ANDROIDContent = (this.props.templateDataRaw && this.props.templateDataRaw.versions.base.ANDROID) ||
28
- (this.props.device === 'android' && this.props.content);
29
- const mobilePushPreviewContent = [];
30
- if (this.props.channel === 'MOBILEPUSH') {
31
- const previewObj = {
32
- channel: this.props.channel,
33
- accountId: this.props.templateDataRaw && this.props.templateDataRaw.definition.accountId,
34
- messageSubject: this.props.templateDataRaw && this.props.templateDataRaw.name,
35
- id: 'message_content_id_1',
36
- };
37
- if (IOSContent) {
38
- previewObj.iosContent = {
39
- title: IOSContent.title || IOSContent.header,
40
- message: IOSContent.message || IOSContent.bodyText,
41
- deviceType: "IOS",
42
- expandableDetails: IOSContent.expandableDetails ||
43
- {
44
- style: "BIG_PICTURE",
45
- image: this.props.content.bodyImage,
46
- message: this.props.content.bodyText,
47
- },
48
- };
49
- }
50
- if (ANDROIDContent) {
51
- previewObj.androidContent = {
52
- title: ANDROIDContent.title || ANDROIDContent.header,
53
- message: ANDROIDContent.message || ANDROIDContent.bodyText,
54
- deviceType: "ANDROID",
55
- expandableDetails: ANDROIDContent.expandableDetails ||
56
- {
57
- style: "BIG_PICTURE",
58
- image: this.props.content.bodyImage,
59
- message: this.props.content.bodyText,
60
- },
61
- };
62
- }
63
- mobilePushPreviewContent.push(previewObj);
64
- }
65
- const previewContent = this.props.channel === 'MOBILEPUSH' ? mobilePushPreviewContent : this.props.content;
66
- const params = {
67
- content: previewContent,
68
- channel,
69
- };
70
- this.props.onPreviewContentClicked(params);
71
- };
72
-
73
- onTestContentClicked = (channel) => {
74
- let mobilePushPreviewContent = {};
75
- const IOSContent = (this.props.templateDataRaw && this.props.templateDataRaw.versions.base.IOS) ||
76
- ((this.props.device === 'iphone' || this.props.device === 'ios') && this.props.content);
77
- const ANDROIDContent = (this.props.templateDataRaw && this.props.templateDataRaw.versions.base.ANDROID) ||
78
- (this.props.device === 'android' && this.props.content);
79
- if (this.props.channel === 'MOBILEPUSH') {
80
- mobilePushPreviewContent = {
81
- channel: this.props.channel,
82
- accountId: this.props.templateDataRaw && this.props.templateDataRaw.definition.accountId,
83
- messageSubject: this.props.templateDataRaw && this.props.templateDataRaw.name,
84
- id: 'message_content_id_1',
85
- };
86
- if (ANDROIDContent) {
87
- mobilePushPreviewContent.androidContent = {
88
- title: ANDROIDContent.title || ANDROIDContent.header,
89
- message: ANDROIDContent.message || ANDROIDContent.bodyText,
90
- deviceType: "ANDROID",
91
- expandableDetails: ANDROIDContent.expandableDetails ||
92
- {
93
- style: "BIG_PICTURE",
94
- image: this.props.content.bodyImage,
95
- message: this.props.content.bodyText,
96
- },
97
- };
98
- }
99
- if (IOSContent) {
100
- mobilePushPreviewContent.iosContent = {
101
- title: IOSContent.title || IOSContent.header,
102
- message: IOSContent.message || IOSContent.bodyText,
103
- deviceType: "IOS",
104
- expandableDetails: IOSContent.expandableDetails ||
105
- {
106
- style: "BIG_PICTURE",
107
- image: this.props.content.bodyImage,
108
- message: this.props.content.bodyText,
109
- },
110
- };
111
- }
112
- }
113
- const previewContent = this.props.channel === 'MOBILEPUSH' ? mobilePushPreviewContent : this.props.content;
114
- const params = {
115
- content: previewContent,
116
- channel,
117
- };
118
- this.props.onTestContentClicked(params);
119
- };
120
-
121
24
  render() {
122
25
  let content = channel && channel.toLowerCase() === 'sms' ? [this.props.content] : this.props.content;
123
26
  const channel = this.props.channel;
@@ -161,43 +64,16 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
161
64
  </CapHeading>}
162
65
  </CapColumn>}
163
66
  <CapColumn span={this.props.showCount ? 8 : 24}>
164
- {this.props.showTestAndPreviewIcon && this.props.channel !== WECHAT && (
165
- <div className="test-and-preview-container">
166
- <CapButton
167
- style={{
168
- color: '#2466ea',
169
- display: 'inline-block',
170
- padding: '0 6px',
171
- marginTop: '12px',
172
- }}
173
- type="flat"
174
- onClick={() => this.onPreviewContentClicked(this.props.channel)}
175
- >
176
- <CapIcon type="eye"/><FormattedMessage {...messages.preview} />
177
- </CapButton>
178
- <CapButton
179
- style={{
180
- color: '#2466ea',
181
- display: 'inline-block',
182
- padding: '0 6px',
183
- marginTop: '12px',
184
- }}
185
- type="flat"
186
- onClick={() => this.onTestContentClicked(this.props.channel)}
187
- >
188
- <CapIcon type="lab"/><FormattedMessage {...messages.testMessage} />
189
- </CapButton>
190
- </div>
191
- )}
192
67
  <div className={`preview-container ${type === 'embedded' ? 'embedded-preview' : ''}`}>
193
68
  { channel && channel.toLowerCase() === 'sms' &&
194
69
  <div>
195
- <div className="shell-v2 align-center" id="sms-preview">
196
- <CapImage className="preview-image sms" src={smsMobileAndroid} alt="Preview is being generated"/>
70
+ <div className="shell align-center" id="sms-preview">
71
+ <img className="preview-image sms" src={smsBody} alt="Preview is being generated"/>
197
72
  <div className="msgContainer sms">
73
+ <img className="sms-icon" src={smsIcon} alt="Sms icon" />
198
74
  <div className={"message-pop sms"}>
199
75
  {content && content.length && content.map((msg, index) =>
200
- <CapColumn key={`"message-pop-content-${index}`} className="message-pop-item align-left" style={{ background: '#FFFFFF', color: '#091e42'}}>
76
+ <CapColumn key={`"message-pop-content-${index}`} className="message-pop-item align-left" style={{ background: '#3F51B5', color: '#ffffff'}}>
201
77
  {msg}
202
78
  </CapColumn>)
203
79
  }
@@ -220,9 +96,10 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
220
96
  </div>
221
97
  }
222
98
  {channel && channel.toLowerCase() === 'wechat' ?
223
- ( <div className="shell-v2 align-center" id="sms-preview">
224
- <CapImage className="preview-image" src={channel.toLowerCase() === 'wechat' ? wechatBodyNew : smsMobileAndroid} alt="Preview is being generated"/>
225
- <div className="msgContainer wechat">
99
+ ( <div className="shell align-center" id="sms-preview">
100
+ <img className="preview-image" src={channel.toLowerCase() === 'wechat' ? wechatBody : smsBody} alt="Preview is being generated"/>
101
+ <div className="msgContainer">
102
+ {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)} />}
226
103
  <div className="message-pop align-left" style={{ background: `${this.props.channel.toLowerCase() === 'wechat' ? '#ffffff' : '#3F51B5'}`, color: `${this.props.channel.toLowerCase() === 'wechat' ? '#333333' : '#ffffff'}`}}>{content}
227
104
  </div>
228
105
  </div>
@@ -230,10 +107,10 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
230
107
  ) : ''
231
108
  }
232
109
  { channel && (channel.toLowerCase() === 'mobilepush') &&
233
- (<div className="shell-v2 align-center" id="mobilepush-preview">
234
- <CapImage className="preview-image" src={this.props.device === "android" ? androidPushMessagePhone : iPhonePushMessagePhone} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
110
+ (<div className="shell align-center" id="mobilepush-preview">
111
+ <img className="preview-image" src={this.props.device === "android" ? androidPushMessagePhone : iPhonePushMessagePhone} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
235
112
  {(!!content.header || !!content.bodyText || !!content.bodyImage) &&
236
- <div className={`${this.props.device === 'ios' ? 'iphone' : this.props.device}-push-message-Container`}>
113
+ <div className={`${this.props.device}-push-message-Container`}>
237
114
  {this.props.device === "android" ?
238
115
  <div className="message-pop align-left">
239
116
  <div className="app-name">
@@ -246,7 +123,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
246
123
  {content.bodyText}
247
124
  </div>
248
125
  {content.bodyImage && <div className="body-image">
249
- <CapImage src={content.bodyImage} alt="" />
126
+ <img src={content.bodyImage} alt="" />
250
127
  </div>}
251
128
  {content.actions.filter((action) => action.label).length ?
252
129
  <div className="actions">
@@ -261,7 +138,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
261
138
  <span className="app-icon"></span>{content.appName ? content.appName : "App name"} <i className="material-icons">{this.props.intl.formatMessage(messages.close)}</i>
262
139
  </div>
263
140
  {content.bodyImage && <div className="body-image">
264
- <CapImage src={content.bodyImage} alt=""/>
141
+ <img src={content.bodyImage} alt=""/>
265
142
  </div>}
266
143
  <div className="title">
267
144
  {content.header}
@@ -279,8 +156,8 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
279
156
  }
280
157
  {
281
158
  channel && channel.toLowerCase() === 'line' ? (
282
- <div className="shell-v2 align-center" id="sms-preview">
283
- <CapImage className="preview-image" src={wechatBodyNew} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
159
+ <div className="shell align-center" id="sms-preview">
160
+ <img className="preview-image sms" src={wechatBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
284
161
  <div className="msgContainer">
285
162
  <div className="sms-icon" style={{ left: 10, borderRadius: '50%', width: '20px', height: '20px', background: '#2E89DF' }}></div>
286
163
  <div className="message-pop align-left" style={{ background: '#ffffff', color: '#333333' }}>
@@ -290,7 +167,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
290
167
  return content[item];
291
168
  }
292
169
  if (item === 'bodyImage' && content[item]) {
293
- return <CapImage src={content[item]} alt="brand-name" style={{maxWidth: '100%'}}/>;
170
+ return <img src={content[item]} alt="brand-name" style={{maxWidth: '100%'}}/>;
294
171
  }
295
172
  return null;
296
173
  })
@@ -321,10 +198,6 @@ TemplatePreview.propTypes = {
321
198
  unicodeEnabled: PropTypes.bool,
322
199
  showCount: PropTypes.bool,
323
200
  intl: intlShape.isRequired,
324
- templateDataRaw: PropTypes.object,
325
- onPreviewContentClicked: PropTypes.func,
326
- onTestContentClicked: PropTypes.func,
327
- showTestAndPreviewIcon: PropTypes.bool,
328
201
  };
329
202
 
330
203
  export default (injectIntl(TemplatePreview));
@@ -50,12 +50,4 @@ export default defineMessages({
50
50
  id: 'creatives.componentsV2.TemplatePreview.smsIcon',
51
51
  defaultMessage: 'Sms Icon',
52
52
  },
53
- preview: {
54
- id: 'creatives.componentsV2.TemplatePreview.preview',
55
- defaultMessage: 'Preview',
56
- },
57
- testMessage: {
58
- id: 'creatives.componentsV2.TemplatePreview.testMessage',
59
- defaultMessage: 'Test Message',
60
- },
61
53
  });
@@ -245,6 +245,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
245
245
  const fileParams = {
246
246
  width: this.width,
247
247
  height: this.height,
248
+ isGeneratePreview: true,
248
249
  };
249
250
  that.props.actions.uploadAsset(files[file], 'image', fileParams);
250
251
  };
@@ -72,9 +72,9 @@ function SlideBoxContent(props) {
72
72
  selectedWeChatAccount,
73
73
  weChatMaptemplateStep,
74
74
  onWeChatMaptemplateStepChange,
75
- onTestContentClicked,
76
- onPreviewContentClicked,
77
75
  onFacebookSubmit,
76
+ saveMessage,
77
+ selectedAccount,
78
78
  } = props;
79
79
  const type = messageDetails.type.toLowerCase(); // type is context in get tags values : outbound | dvs | referral | loyalty | coupons
80
80
  const query = { type: !isFullMode && 'embedded', module: isFullMode ? 'default' : 'library', isEditFromCampaigns: (templateData || {}).isEditFromCampaigns};
@@ -218,8 +218,6 @@ function SlideBoxContent(props) {
218
218
  templateData={templateData}
219
219
  forwardedTags={forwardedTags}
220
220
  selectedOfferDetails={selectedOfferDetails}
221
- onPreviewContentClicked={onPreviewContentClicked}
222
- onTestContentClicked={onTestContentClicked}
223
221
  />
224
222
  )}
225
223
  {
@@ -253,8 +251,6 @@ function SlideBoxContent(props) {
253
251
  isFullMode={isFullMode}
254
252
  forwardedTags={forwardedTags}
255
253
  selectedOfferDetails={selectedOfferDetails}
256
- onPreviewContentClicked={onPreviewContentClicked}
257
- onTestContentClicked={onTestContentClicked}
258
254
  />
259
255
  )}
260
256
  {isEmailCreate && (
@@ -277,8 +273,6 @@ function SlideBoxContent(props) {
277
273
  onValidationFail={onValidationFail}
278
274
  forwardedTags={forwardedTags}
279
275
  selectedOfferDetails={selectedOfferDetails}
280
- onPreviewContentClicked={onPreviewContentClicked}
281
- onTestContentClicked={onTestContentClicked}
282
276
  />
283
277
  )}
284
278
  {(isEditEmailWithId || isEmailEditWithContent) && (
@@ -302,8 +296,6 @@ function SlideBoxContent(props) {
302
296
  onValidationFail={onValidationFail}
303
297
  forwardedTags={forwardedTags}
304
298
  selectedOfferDetails={selectedOfferDetails}
305
- onPreviewContentClicked={onPreviewContentClicked}
306
- onTestContentClicked={onTestContentClicked}
307
299
  />
308
300
  )}
309
301
  {isEditMPush &&
@@ -324,8 +316,6 @@ function SlideBoxContent(props) {
324
316
  onValidationFail={onValidationFail}
325
317
  forwardedTags={forwardedTags}
326
318
  selectedOfferDetails={selectedOfferDetails}
327
- onPreviewContentClicked={onPreviewContentClicked}
328
- onTestContentClicked={onTestContentClicked}
329
319
  />
330
320
  }
331
321
  {isCreateMPush &&
@@ -350,9 +340,7 @@ function SlideBoxContent(props) {
350
340
  query={query}
351
341
  forwardedTags={forwardedTags}
352
342
  onValidationFail={onValidationFail}
353
- selectedOfferDetails={selectedOfferDetails}
354
- onPreviewContentClicked={onPreviewContentClicked}
355
- onTestContentClicked={onTestContentClicked}/>
343
+ selectedOfferDetails={selectedOfferDetails}/>
356
344
  }
357
345
  {
358
346
  isEditFacebook && (
@@ -374,7 +362,12 @@ function SlideBoxContent(props) {
374
362
  }}
375
363
  route={{ name: (templateData.modeType || (templateData.definition && templateData.definition.mode)) === 'image' ? 'edit_image' : 'edit_text' }}
376
364
  onCreateComplete={onCreateComplete}
377
- isFullMode={props.isFullMode}
365
+ isFullMode={isFullMode}
366
+ saveMessage={saveMessage}
367
+ getFormSubscriptionData={getFormData}
368
+ isGetFormData={isGetFormData}
369
+ templateData={templateData}
370
+ selectedAccount={selectedAccount}
378
371
  />
379
372
  )
380
373
  }
@@ -383,7 +376,12 @@ function SlideBoxContent(props) {
383
376
  <CreateLineWrapper
384
377
  location={creativesLocationProps}
385
378
  onCreateComplete={onCreateComplete}
386
- isFullMode={props.isFullMode}
379
+ isFullMode={isFullMode}
380
+ isGetFormData={isGetFormData}
381
+ saveMessage={saveMessage}
382
+ selectedAccount={selectedAccount}
383
+ templateData={templateData}
384
+ getFormSubscriptionData={getFormData}
387
385
  />
388
386
  )
389
387
  }
@@ -428,5 +426,7 @@ SlideBoxContent.propTypes = {
428
426
  weChatMaptemplateStep: PropTypes.string,
429
427
  onFacebookSubmit: PropTypes.func,
430
428
  onCreateComplete: PropTypes.func,
429
+ saveMessage: PropTypes.func,
430
+ selectedAccount: PropTypes.object,
431
431
  };
432
432
  export default SlideBoxContent;
@@ -48,7 +48,7 @@ function SlideBoxHeader(props) {
48
48
  )}
49
49
  {!showTemplateNameHeader && slidBoxContent === 'editTemplate' && (
50
50
  <CapHeader
51
- title={<FormattedMessage {...messages.editMessageContent} values={{channel: getChannelLabel(channel)}}/>}
51
+ title={<FormattedMessage {...messages.editMessageContent} />}
52
52
  prefix={creativesMode !== 'edit' && !isFullMode && showPrefix &&
53
53
  <PrefixWrapper>
54
54
  <CapIcons.backIcon onClick={onShowTemplates} />