@capillarytech/creatives-library 3.9.20 → 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.
Files changed (83) hide show
  1. package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +7 -7
  2. package/components/TemplatePreview/_templatePreview.scss +20 -287
  3. package/components/TemplatePreview/index.js +31 -203
  4. package/components/TemplatePreview/messages.js +0 -21
  5. package/containers/Assets/Gallery/index.js +59 -53
  6. package/index.js +0 -6
  7. package/package.json +1 -1
  8. package/routes.js +0 -5
  9. package/services/getSchema.js +1 -4
  10. package/translations/en.json +1 -29
  11. package/translations/zh.json +1 -29
  12. package/v2Components/FormBuilder/index.js +37 -188
  13. package/v2Components/FormBuilder/messages.js +0 -16
  14. package/v2Components/MobilePushPreviewV2/index.js +32 -40
  15. package/v2Components/MobilePushPreviewV2/messages.js +8 -0
  16. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +0 -64
  17. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +18 -100
  18. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +0 -12
  19. package/v2Components/TemplatePreview/_templatePreview.scss +4 -24
  20. package/v2Components/TemplatePreview/index.js +23 -159
  21. package/v2Components/TemplatePreview/messages.js +0 -8
  22. package/v2Containers/Assets/Gallery/index.js +29 -41
  23. package/v2Containers/CreativesContainer/SlideBoxContent.js +4 -87
  24. package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -1
  25. package/v2Containers/CreativesContainer/index.js +2 -58
  26. package/v2Containers/CreativesContainer/messages.js +2 -2
  27. package/v2Containers/Email/_email.scss +1 -7
  28. package/v2Containers/Email/index.js +14 -40
  29. package/v2Containers/Email/messages.js +0 -4
  30. package/v2Containers/EmailWrapper/index.js +5 -7
  31. package/v2Containers/Line/Create/_lineCreate.scss +19 -40
  32. package/v2Containers/Line/Create/actions.js +9 -13
  33. package/v2Containers/Line/Create/index.js +237 -498
  34. package/v2Containers/Line/Create/messages.js +2 -42
  35. package/v2Containers/Line/Create/sagas.js +4 -10
  36. package/v2Containers/Line/Create/selectors.js +9 -3
  37. package/v2Containers/MobilePush/Create/index.js +0 -5
  38. package/v2Containers/MobilePush/Edit/index.js +0 -5
  39. package/v2Containers/MobilepushWrapper/index.js +1 -4
  40. package/v2Containers/Sms/Create/index.js +1 -2
  41. package/v2Containers/Sms/Edit/index.js +0 -2
  42. package/v2Containers/Templates/_templates.scss +1 -24
  43. package/v2Containers/Templates/actions.js +0 -7
  44. package/v2Containers/Templates/constants.js +0 -2
  45. package/v2Containers/Templates/index.js +15 -118
  46. package/v2Containers/Templates/messages.js +0 -8
  47. package/v2Containers/Templates/reducer.js +0 -2
  48. package/v2Containers/TemplatesV2/index.js +4 -5
  49. package/v2Containers/TemplatesV2/messages.js +0 -4
  50. package/assets/IPad.js +0 -23
  51. package/assets/index.js +0 -1
  52. package/assets/lineImageTemplate.png +0 -0
  53. package/components/TemplatePreview/assets/images/HomeScreenAndroid.js +0 -53
  54. package/components/TemplatePreview/assets/images/SmsMobileAndroid.js +0 -52
  55. package/components/TemplatePreview/assets/images/SmsMobileIos.js +0 -71
  56. package/components/TemplatePreview/assets/images/UserIcon.js +0 -24
  57. package/components/TemplatePreview/assets/images/WechatMobileAndroid.js +0 -53
  58. package/components/TemplatePreview/assets/images/home-screen-android.svg +0 -21
  59. package/components/TemplatePreview/assets/images/home-screen-ios.svg +0 -16
  60. package/components/TemplatePreview/assets/images/sms_mobile_android.svg +0 -22
  61. package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +0 -16
  62. package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +0 -20
  63. package/v2Components/TemplatePreview/assets/images/HomeScreenAndroid.js +0 -53
  64. package/v2Components/TemplatePreview/assets/images/SmsMobileAndroid.js +0 -52
  65. package/v2Components/TemplatePreview/assets/images/UserIcon.js +0 -24
  66. package/v2Components/TemplatePreview/assets/images/WechatHomeScreenAndroid.js +0 -74
  67. package/v2Components/TemplatePreview/assets/images/WechatMobileAndroid.js +0 -53
  68. package/v2Components/TemplatePreview/assets/images/home-screen-android.svg +0 -21
  69. package/v2Components/TemplatePreview/assets/images/home-screen-ios.svg +0 -16
  70. package/v2Components/TemplatePreview/assets/images/sms_mobile_android.svg +0 -22
  71. package/v2Components/TemplatePreview/assets/images/wechat-home-screen-android.svg +0 -21
  72. package/v2Components/TemplatePreview/assets/images/wechat_mobile_android.svg +0 -20
  73. package/v2Containers/Assets/images/CalltaskIllustration.js +0 -71
  74. package/v2Containers/Assets/images/EmailIllustration.js +0 -87
  75. package/v2Containers/Assets/images/ImageGalleryIllustration.js +0 -60
  76. package/v2Containers/Assets/images/PushIllustration.js +0 -60
  77. package/v2Containers/Assets/images/SmsIllustration.js +0 -191
  78. package/v2Containers/Assets/images/WechatIllustration.js +0 -90
  79. package/v2Containers/Assets/images/index.js +0 -6
  80. package/v2Containers/Line/Create/initialSchema.js +0 -378
  81. package/v2Containers/Line/CreateWrapper/constants.js +0 -2
  82. package/v2Containers/Line/CreateWrapper/index.js +0 -117
  83. 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, FormattedMessage} from 'react-intl';
12
- import {CapColumn, CapTab, CapIcon, CapLabel, CapImage, CapTooltip} from '@capillarytech/cap-ui-library';
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
- (showLockScreenPreview ? (
186
- <CapTab
187
- panes={[
188
- {
189
- content: this.getSmsAndroidPreview(content),
190
- tab: <CapIcon type="android" size="m" />,
191
- key: 'android',
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
- <CapImage className="preview-image" src={this.props.device === "android" ? androidPushMessagePhone : iPhonePushMessagePhone} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
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
- <CapImage src={content.bodyImage} alt="" />
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
- <CapImage src={content.bodyImage} alt=""/>
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
- <CapImage className="preview-image" src={wechatBody} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
295
- <div className="msgContainer line-preview">
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) ? <CapImage src={content.bodyImage} alt="ddd" style={{maxWidth: '100%'}}/> : '' }
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', display: 'inline-flex'}} >
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
- for (const file in files) {
234
- if (files.hasOwnProperty(file)) {
235
- const img = new Image();
236
- const that = this;
237
- img.src = _URL.createObjectURL(files[file]);
238
- img.onload = function () {
239
- const fileParams = {
240
- width: this.width,
241
- height: this.height,
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
- <Helmet
379
- title={this.props.intl.formatMessage(messages.gallery)}
384
+ <Helmet
385
+ title={this.props.intl.formatMessage(messages.gallery)}
380
386
  />
381
- {/* this.props.location.query.type !== 'embedded' && <Row style={{marginBottom: '16px'}}>
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
- {!this.state.showEmbeddedPreview && <PageHeader pageHeading={pageHeading} actionComponents={actionComponents} />}
392
-
393
- {this.state.showEmbeddedPreview ?
394
- <div className="embedded-preview-wrapper">
395
- <div className="embedded-preview-header" onClick={this.hideEmbeddedPreviewMode}>
396
- <p className="embedded-preview-header-wrapper" style={{display: 'inline-flex'}}>
397
- <i className="material-icons">arrow_back</i>
398
- <span className="embedded-preview-header-text">
399
- <FormattedMessage {...messages.backToGallery} />
400
- </span>
401
- </p>
402
- </div>
403
- <div style={{height: "75vh", width: '100%'}}>
404
- <div style={{overflow: 'hidden', textAlign: 'center'}}>
405
- <div style={{ display: 'table', height: '75vh', width: '85vw', background: 'url(https://s3.amazonaws.com/test_files_cache_bkp/intouch_creative_assets/1720b7f7e78860c1f905.svg)' }}>
406
- <div style={{ height: "75vh", display: 'table-cell', verticalAlign: 'middle' }}>
407
- <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} />
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
- </div> :
420
- <Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>
421
- <Pagination onPageChange={() => { this.getAllAssets({getNextPage: true}); }} paginationSelector="pagination-container">
422
- <CardGrid
423
- listItem={this.prepareData()}
424
- filterContent={filterContent}
425
- onHoverItem={this.handleOnHoverItem}
426
- onItemClick={this.handleOnHoverItem}
427
- colNumber={this.props.location.query.type === 'embedded' ? 2 : 4}
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
- </Pagination>
431
- </Spin>
436
+ </Pagination>
437
+ </Spin>
432
438
  }
433
- {this.state.showImagePreviewModal && this.renderAssetPreviewModal()}
439
+ {this.state.showImagePreviewModal && this.renderAssetPreviewModal()}
434
440
  {/*</Spin>*/}
435
441
  </div>
436
442
  );
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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "3.9.20",
4
+ "version": "3.10.0",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",
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);
@@ -1,4 +1,4 @@
1
- import {SMS, EMAIL, MOBILE_PUSH, WECHAT, LINE} from '../v2Containers/CreativesContainer/constants';
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
  }