@capillarytech/creatives-library 0.1.15 → 0.1.17

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.
@@ -940,6 +940,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
940
940
 
941
941
  skipTags(tag) {
942
942
  const regexGroups = ["dynamic_expiry_date_after_\\d+_days.FORMAT_\\d", "user_id_b64", "outbox_id_b64", "unsubscribe\\(#[a-zA-Z\\d]{6}\\)","Link_to_[a-zA-z]"];
943
+
943
944
  //const regexGroups = [];
944
945
  let skipped = false;
945
946
  _.forEach(regexGroups, (group) => {
@@ -60,6 +60,12 @@
60
60
  left: 30%;
61
61
  width: 30%;
62
62
  }
63
+
64
+ img{
65
+ width: 100%;
66
+ object-fit: cover; // try contain
67
+ height: 100%;
68
+ }
63
69
  }
64
70
 
65
71
  .overlay {
@@ -105,3 +111,16 @@
105
111
  }
106
112
  }
107
113
  }
114
+
115
+ #slidebox-content{
116
+ img{
117
+ display: block;
118
+ max-width: 100%;
119
+ margin: 0 auto;
120
+ }
121
+ }
122
+
123
+ #slidebox-container{
124
+ left: 40vw !important;
125
+ width: 60vw !important;
126
+ }
@@ -69,6 +69,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
69
69
  }
70
70
 
71
71
  componentWillReceiveProps(nextProps) {
72
+ console.log("nextProps", nextProps);
72
73
  if ( !_.isEqual(nextProps.Gallery.uploadAssetSuccess, this.props.Gallery.uploadAssetSuccess) && nextProps.Gallery.uploadAssetSuccess) {
73
74
  if (this.props.location.query.type === 'embedded' && nextProps.Gallery.uploadedAssetData) {
74
75
  console.log('Post on will receive props');
@@ -106,19 +107,27 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
106
107
  const message = getMessageObject('error', this.props.intl.formatMessage(messages.assetDeleteFailed), true);
107
108
  this.props.globalActions.addMessageToQueue(message);
108
109
  }
110
+ if ( nextProps.Gallery.itemDeleted || !nextProps.Gallery.assetUploading) {
111
+ const params = {
112
+ name: this.state.searchText,
113
+ sortBy: 'Most Recent',
114
+ };
115
+ this.getAllAssets({params}, true);
116
+ }
109
117
  }
110
118
 
111
119
  componentWillUnmount() {
112
120
  window.removeEventListener("message", this.handleGallery, false);
113
121
  }
114
122
 
115
- getAllAssets = ({params, getNextPage, resetPage}) => {
123
+ getAllAssets = ({params, getNextPage, resetPage}, isReRender = false) => {
116
124
  let queryParams = params;
117
125
  let page = this.state.page;
118
- if (!this.props.Gallery.fetchingAllAssets && (resetPage || (page === 1 && this.state.totalCount === 0) || page <= (this.state.totalCount / this.state.perPageLimit))) {
126
+ if (!this.props.Gallery.fetchingAllAssets && ((resetPage || (page === 1 && this.state.totalCount === 0) || page <= (this.state.totalCount / this.state.perPageLimit)) || isReRender )) {
119
127
  if (getNextPage) {
120
128
  page += 1;
121
129
  }
130
+
122
131
  let totalCount = this.state.totalCount;
123
132
  if (resetPage) {
124
133
  page = 1;
@@ -226,17 +235,19 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
226
235
  uploadImages(e, {files}) {
227
236
  e.preventDefault();
228
237
  const _URL = window.URL || window.webkitURL;
229
- const file = files[0];
230
- const img = new Image();
231
- const that = this;
232
- img.src = _URL.createObjectURL(file);
233
- img.onload = function () {
234
- const fileParams = {
235
- width: this.width,
236
- height: this.height,
238
+ //const file = files[0];
239
+ for (let file in files){
240
+ const img = new Image();
241
+ const that = this;
242
+ img.src = _URL.createObjectURL(files[file]);
243
+ img.onload = function () {
244
+ const fileParams = {
245
+ width: this.width,
246
+ height: this.height,
247
+ };
248
+ that.props.actions.uploadAsset(files[file], 'image', fileParams);
237
249
  };
238
- that.props.actions.uploadAsset(file, 'image', fileParams);
239
- };
250
+ }
240
251
  }
241
252
 
242
253
  prepareData() {
@@ -300,7 +311,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
300
311
  <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} />
301
312
  </div>
302
313
  </div>
303
- <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>
314
+ <a href={this.state.selectedAsset.metaInfo.public_url} target="_blank" style={{ position: 'fixed', right: '55px', bottom: '18vh' }} ><i className="material-icons" style={{ color: '#2E89DF', cursor: 'pointer' }}>fullscreen</i></a>
304
315
  </div>
305
316
  <div style={{ fontSize: '14px', color: '#333333', lineHeight: '24px', fontFamily: 'OpenSans', textAlign: 'center', paddingTop: '10px'}}>
306
317
  <p style={{marginBottom: '0px'}}><span><FormattedMessage {...messages.dimensions} />: </span> <span>{`${this.state.selectedAsset.metaInfo.width}X${this.state.selectedAsset.metaInfo.height} px`}</span></p>
@@ -357,7 +368,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
357
368
  );
358
369
  const actionComponents = (
359
370
  <form encType="multipart/form-data" id="myForm">
360
- <input style={{ display: 'none'}} id="fileName" type="file" onChange={(e) => this.uploadImages(e, {files: e.target.files})} accept="image/*" />
371
+ <input style={{ display: 'none'}} id="fileName" type="file" onChange={(e) => this.uploadImages(e, {files: e.target.files})} accept="image/*" multiple/>
361
372
  <CapButton type={this.props.location.query.type !== 'embedded' ? 'primary' : 'secondary'} onClick={(e) => this.openFileDialog(e)} style={{float: 'right'}}>
362
373
  <FormattedMessage {...messages.upload} />
363
374
  </CapButton>
@@ -367,7 +378,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
367
378
 
368
379
  return (
369
380
  <div>
370
- <Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>
381
+ {/*<Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>*/}
371
382
  <Helmet
372
383
  title="Gallery"
373
384
  />
@@ -410,19 +421,21 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
410
421
  </div>
411
422
  </div>
412
423
  </div> :
413
- <Pagination onPageChange={() => { this.getAllAssets({getNextPage: true}); }} paginationSelector="pagination-container">
414
- <CardGrid
415
- listItem={this.prepareData()}
416
- filterContent={filterContent}
417
- onHoverItem={this.handleOnHoverItem}
418
- onItemClick={this.handleOnHoverItem}
419
- colNumber={this.props.location.query.type === 'embedded' ? 2 : 4}
420
- enablePagination
421
- />
422
- </Pagination>
424
+ <Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>
425
+ <Pagination onPageChange={() => { this.getAllAssets({getNextPage: true}); }} paginationSelector="pagination-container">
426
+ <CardGrid
427
+ listItem={this.prepareData()}
428
+ filterContent={filterContent}
429
+ onHoverItem={this.handleOnHoverItem}
430
+ onItemClick={this.handleOnHoverItem}
431
+ colNumber={this.props.location.query.type === 'embedded' ? 2 : 4}
432
+ enablePagination
433
+ />
434
+ </Pagination>
435
+ </Spin>
423
436
  }
424
437
  {this.state.showImagePreviewModal && this.renderAssetPreviewModal()}
425
- </Spin>
438
+ {/*</Spin>*/}
426
439
  </div>
427
440
  );
428
441
  }
@@ -50,14 +50,14 @@ function galleryReducer(state = initialState, action) {
50
50
  case types.DELETE_ASSET_REQUEST:
51
51
  return state
52
52
  .set('deletingAsset', true)
53
- .set('assetDeleteError', false);
53
+ .set('assetDeleteError', false).set("itemDeleted", false);
54
54
  case types.DELETE_ASSET_SUCCESS:
55
55
  return state
56
- .set('deletingAsset', false);
56
+ .set('deletingAsset', false).set("itemDeleted", true);
57
57
  case types.DELETE_ASSET_FAILURE:
58
58
  return state
59
59
  .set('deletingAsset', false)
60
- .set('assetDeleteError', true);
60
+ .set('assetDeleteError', true).set("itemDeleted", false);
61
61
  case types.GET_USER_LIST_REQUEST:
62
62
  return state
63
63
  .set('fetchingUserList', true)
@@ -24,7 +24,7 @@ export function* uploadAsset(file, assetType, fileParams) {
24
24
  export function* deleteAssetById(assetId, assetType) {
25
25
  try {
26
26
  const result = yield call(Api.deleteAssetById, assetId, assetType);
27
- console.log(result);
27
+ console.log({"delete Asset Id": result});
28
28
  yield put({ type: types.DELETE_ASSET_SUCCESS, data: result.response });
29
29
  } catch (error) {
30
30
  yield put({ type: types.DELETE_ASSET_FAILURE, error });
@@ -3247,6 +3247,7 @@ Email.propTypes = {
3247
3247
  isGetFormData: PropTypes.bool,
3248
3248
  getFormSubscriptionData: PropTypes.func,
3249
3249
  supportedTags: PropTypes.array,
3250
+ getDefaultTags: PropTypes.bool,
3250
3251
  };
3251
3252
 
3252
3253
  const mapStateToProps = createStructuredSelector({
@@ -239,6 +239,9 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
239
239
  }
240
240
  const result = {};
241
241
  result.base = baseData;
242
+ const msgObj = charCount.updateCharCount(baseData['sms-editor']);
243
+ result.base.msg_count = msgObj.msgCount;
244
+ console.log("Message Count", msgObj.msgCount);
242
245
  const response = {
243
246
  action: "getFormData",
244
247
  value: result,
@@ -89,7 +89,11 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
89
89
  }
90
90
  componentDidMount() {
91
91
  if (this.props.location.query && this.props.location.query.module === 'library') {
92
- this.props.actions.setTemplateDetails(this.props.templateData);
92
+ if (this.props.params.id) {
93
+ this.props.actions.getTemplateDetails(this.props.params.id);
94
+ } else {
95
+ this.props.actions.setTemplateDetails(this.props.templateData);
96
+ }
93
97
  } else {
94
98
  this.props.actions.getTemplateDetails(this.props.params.id);
95
99
  }
@@ -279,6 +283,9 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
279
283
  }
280
284
  const result = {};
281
285
  result.base = baseData;
286
+ const msgObj = charCount.updateCharCount(baseData['sms-editor']);
287
+ result.base.msg_count = msgObj.msgCount;
288
+ console.log("Message Count", msgObj.msgCount);
282
289
  const response = {
283
290
  action: "getFormData",
284
291
  value: result,
@@ -64,6 +64,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
64
64
  showHtmlPreview: false,
65
65
  device: 'desktop',
66
66
  searchedTemplates: false,
67
+ defaultAccount: true,
67
68
  };
68
69
  this.handleOnHoverItem = this.handleOnHoverItem.bind(this);
69
70
  this.handleOnItemClick = this.handleOnItemClick.bind(this);
@@ -116,7 +117,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
116
117
  }
117
118
 
118
119
  componentDidMount() {
119
- if (this.props.location.query.type === 'embedded' && this.props.location.query.module === "library") {
120
+ if (this.props.location.query.type === 'embedded' && this.isEnabledInLibraryModule("setLocale")) {
120
121
  this.setLocale();
121
122
  }
122
123
  if (this.state.channel.toLowerCase() === 'sms' || this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill' || ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && !_.isEmpty(this.props.Templates.selectedWeChatAccount))) {
@@ -159,12 +160,14 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
159
160
  if (nextProps.route.name.toLowerCase() === 'sms') {
160
161
  channel = 'Sms';
161
162
  } else if (nextProps.route.name.toLowerCase() === 'wechat') {
163
+ this.setState({defaultAccount: true});
162
164
  channel = 'wechat';
163
165
  nextProps.actions.getWeCrmAccounts();
164
166
  } else if (nextProps.route.name.toLowerCase() === 'email') {
165
167
  channel = 'Email';
166
168
  // this.props.actions.getEdmDefaultTemplates();
167
169
  } else if (nextProps.route.name.toLowerCase() === "mobilepush") {
170
+ this.setState({defaultAccount: true});
168
171
  channel = "mobilepush";
169
172
  nextProps.actions.getWeCrmAccounts(channel);
170
173
  } else if (nextProps.route.name.toLowerCase() === 'ebill') {
@@ -191,7 +194,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
191
194
  if (this.state.channel.toLowerCase() === "mobilepush" && nextProps.Templates.selectedWeChatAccount) {
192
195
  params.accountId = nextProps.Templates.selectedWeChatAccount.id;
193
196
  }
194
- if ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && _.isEmpty(nextProps.Templates.selectedWeChatAccount) && (this.props.location.query.type === 'embedded')) {
197
+ if ((this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === 'mobilepush') && _.isEmpty(nextProps.Templates.selectedWeChatAccount) && (this.props.location.query.type === 'embedded') && !this.isEnabledInLibraryModule("showAccountSelection")) {
195
198
  let selectedAccount = '';
196
199
  if (_.isEmpty(nextProps.Templates.weCrmAccounts)) {
197
200
  return;
@@ -280,7 +283,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
280
283
  const isLanguageSupport = (this.props.location.query.isLanguageSupport) ? this.props.location.query.isLanguageSupport : true;
281
284
  const isEdmSupport = (this.props.location.query.isEdmSupport !== "false") || false;
282
285
  const type = this.props.location.query.type;
283
- if (module && module === 'library') {
286
+ if (this.isEnabledInLibraryModule("callCreateFromProps")) {
284
287
  this.props.createNew();
285
288
  return;
286
289
  }
@@ -302,12 +305,31 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
302
305
  if (!_.isEmpty(nextProps.Templates.templateDetails) && !_.isEqual(nextProps.Templates.templateDetails, this.props.Templates.templateDetails)) {
303
306
  this.setState({previewTemplate: nextProps.Templates.templateDetails});
304
307
  }
308
+
309
+ if (nextProps.Templates.weCrmAccounts !== undefined && nextProps.Templates.weCrmAccounts.length === 1 && this.state.defaultAccount ) {
310
+ const paramsDefault = {
311
+ name: this.state.searchText,
312
+ sortBy: this.state.sortBy,
313
+ };
314
+ if (this.state.channel.toLowerCase() === 'wechat') {
315
+ paramsDefault.wecrmId = nextProps.Templates.weCrmAccounts[0].configs.wecrm_app_id;
316
+ paramsDefault.wecrmToken = nextProps.Templates.weCrmAccounts[0].configs.wecrm_token;
317
+ nextProps.actions.setWeChatAccount(nextProps.Templates.weCrmAccounts[0]);
318
+ this.setState({defaultAccount: false});
319
+ } else if (this.state.channel.toLowerCase() === 'mobilepush') {
320
+ nextProps.actions.setWeChatAccount(nextProps.Templates.weCrmAccounts[0]);
321
+ paramsDefault.accountId = nextProps.Templates.weCrmAccounts[0].id;
322
+ this.setState({defaultAccount: false});
323
+ }
324
+ this.getAllTemplates({params: paramsDefault}, true);
325
+ }
305
326
  }
306
327
 
307
328
  componentWillUnmount() {
308
329
  console.log('removed listener templates');
309
330
  window.removeEventListener("message", this.handleFrameTasks);
310
331
  this.props.actions.resetTemplateStoreData();
332
+ // this.setState({defaultAccount: false});
311
333
  }
312
334
 
313
335
  onAccountSelect(value, option) {
@@ -486,7 +508,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
486
508
  this.props.actions.handleHtmlUpload(text);
487
509
  document.getElementById("filename").value = "";
488
510
  const type = this.props.location.query.type;
489
- if (type === 'embedded' && module === "library") {
511
+ if (this.isEnabledInLibraryModule("callCreateFromProps")) {
490
512
  this.props.createNew();
491
513
  return;
492
514
  }
@@ -671,7 +693,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
671
693
  createTemplate(ev) {
672
694
  const type = this.props.location.query.type;
673
695
  const module = this.props.location.query.module ? this.props.location.query.module : 'default';
674
- if (this.props.location.query.module === 'library') {
696
+ if (this.isEnabledInLibraryModule("callCreateFromProps")) {
675
697
  this.props.createNew();
676
698
  } else if (ev.key && (ev.key.toLowerCase() === "text" || ev.key.toLowerCase() === "image")) {
677
699
  this.props.router.push({
@@ -805,7 +827,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
805
827
  } else {
806
828
  getQuery = (type === 'embedded') ? {type: 'embedded', module} : {module};
807
829
  }
808
- if (type === 'embedded' && module === "library") {
830
+ if (this.isEnabledInLibraryModule("callCreateFromProps")) {
809
831
  this.props.createNew();
810
832
  return;
811
833
  }
@@ -842,7 +864,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
842
864
  if (this.state.channel.toLowerCase() === 'ebill') {
843
865
  pathName = `/ebill/edit/${id}`;
844
866
  }
845
- if (module && module === 'library') {
867
+ if (this.isEnabledInLibraryModule("callSelectFromProps")) {
846
868
  this.props.onSelectTemplate(id);
847
869
  } else {
848
870
  if (this.state.channel.toLowerCase() === 'ebill') {
@@ -978,7 +1000,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
978
1000
  console.log('Data Prepare');
979
1001
  const imgSrc = template && template.versions && template.versions.base ? template.versions.base.preview_http_url : '';
980
1002
  const ifPreviewGenerated = template && template.versions && template.versions.base ? template.versions.base.isPreviewGenerated : 0;
981
- content = <img src={imgSrc || ''} alt={this.props.intl.formatMessage(messages.previewGenerateText)} />;
1003
+ content = <img src={imgSrc || ''} alt={this.props.intl.formatMessage(messages.previewGenerateText)} width="100%" height="100%"/>;
982
1004
  console.log('qwerty template preview', imgSrc, template, ifPreviewGenerated, content);
983
1005
  temp.content = (
984
1006
  <div
@@ -1109,6 +1131,25 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1109
1131
  </Modal>);
1110
1132
  return modal;
1111
1133
  };
1134
+ //Gets called only when creatives gets used as node library
1135
+ isEnabledInLibraryModule = (property) => {
1136
+ if (this.props.location.query.type === "embedded" && this.props.location.query.module === "library") {
1137
+ switch (property) {
1138
+ case "showAccountSelection":
1139
+ return (this.props.route && (this.props.route.name.toLowerCase() === "wechat" || this.props.route.name.toLowerCase() === "mobilepush"));
1140
+ case "setLocale":
1141
+ return true;
1142
+ case "callCreateFromProps":
1143
+ return true;
1144
+ case "callSelectFromProps":
1145
+ return true;
1146
+ default:
1147
+ return false;
1148
+ }
1149
+ } else {
1150
+ return false;
1151
+ }
1152
+ }
1112
1153
 
1113
1154
  render() {
1114
1155
  console.log('templates props', this.props);
@@ -1210,7 +1251,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1210
1251
  const pageHeader = (
1211
1252
  <div>
1212
1253
  {(this.props.location.query.type !== 'embedded') ? `${pageHeaderText}` : templateText}
1213
- {((this.state.channel.toUpperCase() === 'WECHAT' || this.state.channel.toUpperCase() === "MOBILEPUSH") && (this.props.location.query.type !== 'embedded') && !_.isEmpty(this.props.Templates.weCrmAccounts)) &&
1254
+ {(this.isEnabledInLibraryModule("showAccountSelection") || (((this.state.channel.toUpperCase() === 'WECHAT' || this.state.channel.toUpperCase() === "MOBILEPUSH") && (this.props.location.query.type !== 'embedded') && !_.isEmpty(this.props.Templates.weCrmAccounts)))) &&
1214
1255
  <Select className="selectAccount" onSelect={this.onAccountSelect} value={this.props.Templates.selectedWeChatAccount ? this.props.Templates.selectedWeChatAccount.name : undefined} placeholder={this.props.intl.formatMessage(messages.selectAccount)}>
1215
1256
  {accountOptions}
1216
1257
  </Select>}
@@ -433,6 +433,9 @@ export class WeChat extends React.Component { // eslint-disable-line react/prefe
433
433
  }
434
434
 
435
435
  componentWillReceiveProps(nextProps) {
436
+ if (nextProps.location.query.module === 'library' && nextProps.isGetFormData) {
437
+ this.getFormData();
438
+ }
436
439
  console.log('MetaEntity nextprops ', nextProps.metaEntities);
437
440
  if (nextProps.metaEntities && nextProps.metaEntities.layouts && nextProps.metaEntities.layouts.length > 0 && _.isEmpty(this.state.schema)) {
438
441
  this.injectEvents(nextProps.metaEntities.layouts[0].definition);
@@ -465,6 +468,11 @@ export class WeChat extends React.Component { // eslint-disable-line react/prefe
465
468
  }
466
469
  });
467
470
  }
471
+ if (nextProps.location.query.type === "embedded" && nextProps.location.query.module === "library" && nextProps.templateData) {
472
+ this.setState({editTemplateData: nextProps.templateData}, () => {
473
+ this.setEditData();
474
+ });
475
+ }
468
476
  if (nextProps.params.id && !_.isEqual(nextProps.params.id, this.props.params.id)) {
469
477
  this.setState({isEdit: true});
470
478
  }
@@ -616,7 +624,7 @@ export class WeChat extends React.Component { // eslint-disable-line react/prefe
616
624
  }
617
625
  });
618
626
  }
619
- } else if (this.state.isEdit) {
627
+ } else if (this.state.isEdit && this.state.editTemplateData.versions) {
620
628
  console.log('this.state.editTemplateData', this.state.editTemplateData);
621
629
  selectedTemplateData = _.cloneDeep(this.state.editTemplateData);
622
630
  selectedTemplate = {
@@ -716,7 +724,11 @@ export class WeChat extends React.Component { // eslint-disable-line react/prefe
716
724
  };
717
725
  console.log('response ', response);
718
726
  this.setState({checkValidation: true});
719
- e.source.postMessage(JSON.stringify(response), e.origin);
727
+ if (this.props.location.query.module === 'library') {
728
+ this.props.getLibraryFormData(response);
729
+ } else {
730
+ e.source.postMessage(JSON.stringify(response), e.origin);
731
+ }
720
732
  }
721
733
 
722
734
  getCurrentWindow(e) {
@@ -1579,6 +1591,8 @@ WeChat.propTypes = {
1579
1591
  params: PropTypes.object,
1580
1592
  metaEntities: PropTypes.object,
1581
1593
  intl: intlShape.isRequired,
1594
+ isGetFormData: PropTypes.bool,
1595
+ getLibraryFormData: PropTypes.func,
1582
1596
  };
1583
1597
 
1584
1598
  const mapStateToProps = createStructuredSelector({
package/index.js CHANGED
@@ -7,4 +7,4 @@ export Email from './containers/Email/index';
7
7
  export TagList from './containers/TagList/index';
8
8
  export TemplatePreview from './components/TemplatePreview';
9
9
  export EmailPreview from './components/EmailPreview';
10
-
10
+ export WeChat from './containers/WeChat';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "0.1.15",
4
+ "version": "0.1.17",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",