@capillarytech/creatives-library 2.0.35 → 2.0.37

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.
@@ -192,15 +192,15 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
192
192
  window.removeEventListener("message", this.handleFrameTasks);
193
193
  }
194
194
 
195
- onTemplateNameChange(name) {
195
+ onTemplateNameChange() {
196
196
 
197
197
  }
198
198
 
199
- onTemplateContentChange(content) {
199
+ onTemplateContentChange() {
200
200
 
201
201
  }
202
202
 
203
- onVersionNameChange(data, versionIndex) {
203
+ onVersionNameChange( ) {
204
204
 
205
205
  }
206
206
 
@@ -616,7 +616,7 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
616
616
  return _.cloneDeep(parentsect);
617
617
  }
618
618
 
619
- deleteVersion(data, currentTab) {
619
+ deleteVersion() {
620
620
  if (this.state.tabCount === 1) {
621
621
  return;
622
622
  }
@@ -626,16 +626,16 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
626
626
  this.setState({schema, tabCount: this.state.tabCount - 1});
627
627
  }
628
628
 
629
- renameVersion(data, currentTab) {
629
+ renameVersion() {
630
630
 
631
631
  }
632
632
 
633
- markFinalVersion(data, currentTab) {
633
+ markFinalVersion() {
634
634
  const message = getMessageObject('success', 'Template Marked as Final Successfully', true);
635
635
  this.props.globalActions.addMessageToQueue(message);
636
636
  }
637
637
 
638
- duplicateVersion(data, currentTab) {
638
+ duplicateVersion() {
639
639
  this.addVersion(this.state.tabCount);
640
640
  }
641
641
 
@@ -746,7 +746,7 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
746
746
 
747
747
  startTemplateCreation(data) {
748
748
  if (data.edit) {
749
- const ifUnicode = checkUnicode(data.content ? data.content : '');
749
+ // const ifUnicode = checkUnicode(data.content ? data.content : '');
750
750
 
751
751
  const content = data.content;
752
752
  const id = _.uniqueId();
@@ -911,7 +911,7 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
911
911
  if (!isLoading) {
912
912
  isLoading = this.state.loadingStatus < 2;
913
913
  }
914
- if (isLoading) {
914
+ if (isLoading && this.state.loadingStatus >= 2) {
915
915
  this.props.creativesContainerActions.hideCreativesContanerLoader();
916
916
  }
917
917
  return isLoading;
@@ -194,11 +194,11 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
194
194
  window.removeEventListener("message", this.handleFrameTasks);
195
195
  }
196
196
 
197
- onTemplateNameChange(name) {
197
+ onTemplateNameChange() {
198
198
 
199
199
  }
200
200
 
201
- onTemplateContentChange(content) {
201
+ onTemplateContentChange() {
202
202
 
203
203
  }
204
204
 
@@ -209,7 +209,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
209
209
  }
210
210
  }
211
211
 
212
- onVersionNameChange(data, versionIndex) {
212
+ onVersionNameChange() {
213
213
 
214
214
  }
215
215
 
@@ -659,16 +659,16 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
659
659
  this.setState({schema, tabCount: this.state.tabCount - 1});
660
660
  }
661
661
 
662
- renameVersion(data, currentTab) {
662
+ renameVersion() {
663
663
 
664
664
  }
665
665
 
666
- markFinalVersion(data, currentTab) {
666
+ markFinalVersion() {
667
667
  const message = getMessageObject('success', 'Template Marked as Final Successfully', true);
668
668
  this.props.globalActions.addMessageToQueue(message);
669
669
  }
670
670
 
671
- duplicateVersion(data, currentTab) {
671
+ duplicateVersion() {
672
672
  this.addVersion(this.state.tabCount);
673
673
  }
674
674
 
@@ -896,7 +896,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
896
896
  if (!isLoading) {
897
897
  isLoading = this.state.loadingStatus < 3;
898
898
  }
899
- if (isLoading) {
899
+ if (isLoading && this.state.loadingStatus >= 3) {
900
900
  this.props.creativesContainerActions.hideCreativesContanerLoader();
901
901
  }
902
902
  return isLoading;
@@ -13,7 +13,7 @@ import { createStructuredSelector } from 'reselect';
13
13
  import moment from "moment";
14
14
  import _ from 'lodash';
15
15
  import { bindActionCreators } from 'redux';
16
- import { Row, Select, Spin, Dropdown, Menu, Modal} from 'antd';
16
+ import { Row, Select, Dropdown, Menu, Modal} from 'antd';
17
17
  import {CapButton, CapInput, CapIcon, CapSelect, CapPopover} from '@capillarytech/cap-ui-library';
18
18
  import { makeSelectTemplates, makeSelectTemplatesResponse } from './selectors';
19
19
  import { makeSelectCreate as makeSelectCreateSms} from '../Sms/Create/selectors';
@@ -486,7 +486,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
486
486
  this.setState({loading: true, routeParams});
487
487
  }
488
488
 
489
- handleMenuAction = (item, key) => {
489
+ handleMenuAction = (item) => {
490
490
  if (item.key.toLowerCase() === 'uploadfile') {
491
491
  document.getElementById('filename').click();
492
492
  } else if (item.key.toLowerCase() === 'useeditor') {
@@ -1018,7 +1018,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1018
1018
  //
1019
1019
 
1020
1020
  const imgSrc = template && template.versions && template.versions.base ? template.versions.base.preview_http_url : '';
1021
- const ifPreviewGenerated = template && template.versions && template.versions.base ? template.versions.base.isPreviewGenerated : 0;
1021
+ // const ifPreviewGenerated = template && template.versions && template.versions.base ? template.versions.base.isPreviewGenerated : 0;
1022
1022
  content = <img src={imgSrc || ''} alt={this.props.intl.formatMessage(messages.previewGenerateText)} width="100%" height="100%"/>;
1023
1023
 
1024
1024
  temp.content = (
@@ -1188,26 +1188,6 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1188
1188
  }
1189
1189
 
1190
1190
  render() {
1191
- const filterContent = (
1192
- <div className="action-container">
1193
- <CapInput
1194
- className="search-text"
1195
- style={{width: '210px'}}
1196
- placeholder={this.props.intl.formatMessage(messages.searchText)}
1197
- prefix={<CapIcon type="search" size="s"/>}
1198
- value={this.state.searchText}
1199
- onChange={(e) => this.searchTemplate(e.target.value)}
1200
- />
1201
- <div style={{display: "flex", justifyContent: "space-between", alignItems: 'center'}}>
1202
- <CapButton
1203
- type={this.props.isFullMode ? "primary" : "secondary"}
1204
- onClick={(ev) => this.props.isFullMode ? this.createTemplate(ev) : this.handleBlankTemplateAction()} >
1205
- { this.props.intl.formatMessage(messages.createNewActionButton) }
1206
- </CapButton>
1207
- </div>
1208
-
1209
- </div>
1210
- );
1211
1191
  const accountOptions = [];
1212
1192
  if ((this.state.channel.toUpperCase() === 'WECHAT' || this.state.channel.toUpperCase() === "MOBILEPUSH") && !_.isEmpty(this.props.Templates.weCrmAccounts)) {
1213
1193
  _.forEach(this.props.Templates.weCrmAccounts, (account) => {
@@ -1358,7 +1338,27 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1358
1338
  >
1359
1339
  </CardGrid>
1360
1340
  );
1341
+ const filterContent = (
1342
+ <div className="action-container">
1343
+ <CapInput
1344
+ className="search-text"
1345
+ style={{width: '210px'}}
1346
+ placeholder={this.props.intl.formatMessage(messages.searchText)}
1347
+ prefix={<CapIcon type="search" size="s"/>}
1348
+ value={this.state.searchText}
1349
+ onChange={(e) => this.searchTemplate(e.target.value)}
1350
+ />
1351
+ <div style={{display: "flex", justifyContent: "space-between", alignItems: 'center'}}>
1352
+ <CapButton
1353
+ type={this.props.isFullMode ? "primary" : "secondary"}
1354
+ disabled={isLoading}
1355
+ onClick={(ev) => this.props.isFullMode ? this.createTemplate(ev) : this.handleBlankTemplateAction()} >
1356
+ { this.props.intl.formatMessage(messages.createNewActionButton) }
1357
+ </CapButton>
1358
+ </div>
1361
1359
 
1360
+ </div>
1361
+ );
1362
1362
  let htmlPreviewContent = "";
1363
1363
  if (this.state.channel.toLowerCase() === 'ebill') {
1364
1364
  htmlPreviewContent = this.state.previewTemplate && this.state.previewTemplate.versions && this.state.previewTemplate.versions.base && this.state.previewTemplate.versions.base['ebill-editor'];
@@ -1371,24 +1371,23 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1371
1371
  const isSearch = this.props.Templates.isSearch;
1372
1372
  const creativesMode = this.getCreativesMode();
1373
1373
  const {isFullMode, route} = this.props;
1374
+ const loadingTip = (this.props.Templates.sendingFile && (this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill')) ? this.props.intl.formatMessage(messages.uploadingFile) : this.props.intl.formatMessage(messages.gettingAllTemplates);
1374
1375
  return (
1375
1376
  <div>
1376
- <Spin
1377
- tip={(this.props.Templates.sendingFile && (this.state.channel.toLowerCase() === 'email' || this.state.channel.toLowerCase() === 'ebill')) ? this.props.intl.formatMessage(messages.uploadingFile) : this.props.intl.formatMessage(messages.gettingAllTemplates)}
1378
- spinning={isLoading}
1379
- >
1380
- <input type="file" id="filename" style={{ display: 'none'}} accept=".zip, .html, .htm" onChange={(event) => this.handleFileUpload(event, {files: event.target.files})} />
1381
-
1382
- <Row className="template-header-container">
1383
- <div className="template-header">{(this.props.location.query.type === 'embedded' ) ? pageHeaderDvs : pageHeader}</div>
1384
- </Row>
1385
- <Row>
1386
- {this.props.renderNewCardGrid && templateList && templateList.length > 0 &&
1387
- <Pagination onPageChange={this.onPaginationChange} paginationSelector="pagination-container">
1388
- {this.props.renderNewCardGrid({channel: this.state.channel, templates: this.props.TemplatesList, filterContent, handlers: {handlePreviewClick: this.handlePreviewClick, handleEditClick: this.handleEditClick}})}
1389
- </Pagination>
1377
+ <Row className="template-header-container">
1378
+ <div className="template-header">{(this.props.location.query.type === 'embedded' ) ? pageHeaderDvs : pageHeader}</div>
1379
+ </Row>
1380
+
1381
+ <input type="file" id="filename" style={{ display: 'none'}} accept=".zip, .html, .htm" onChange={(event) => this.handleFileUpload(event, {files: event.target.files})} />
1382
+
1383
+
1384
+ <Row>
1385
+ {this.props.renderNewCardGrid && templateList && templateList.length > 0 &&
1386
+ <Pagination onPageChange={this.onPaginationChange} paginationSelector="pagination-container">
1387
+ {this.props.renderNewCardGrid({isLoading, loadingTip, channel: this.state.channel, templates: this.props.TemplatesList, filterContent, handlers: {handlePreviewClick: this.handlePreviewClick, handleEditClick: this.handleEditClick}})}
1388
+ </Pagination>
1390
1389
  }
1391
- {!this.props.renderNewCardGrid && ((templateList && templateList.length > 0) || isSearch) &&
1390
+ {!this.props.renderNewCardGrid && ((templateList && templateList.length > 0) || isSearch) &&
1392
1391
  <Pagination onPageChange={this.onPaginationChange} paginationSelector="pagination-container">
1393
1392
  <CardGrid
1394
1393
  className={this.state.channel.toLowerCase() === "mobilepush" ? "mobilepush-templates" : ""}
@@ -1397,58 +1396,60 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1397
1396
  onHoverItem={this.handleOnHoverItem}
1398
1397
  onItemClick={this.handleOnItemClick}
1399
1398
  enablePagination
1399
+ isLoading={isLoading}
1400
+ loadingTip={loadingTip}
1400
1401
  >
1401
1402
  </CardGrid>
1402
1403
  </Pagination>}
1403
- {(this.state.selectedAccount === '' && _.isEmpty(this.props.Templates.selectedWeChatAccount)) && (this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === "mobilepush") && <div style={{ height: '65vh', textAlign: 'center', lineHeight: '65vh'}}>
1404
- <span style={{ fontFamily: 'open-sans', fontSize: '24px', color: '#B5B5B5'}}>{this.props.intl.formatMessage(messages.noAccountMessage)}</span>
1404
+ {(this.state.selectedAccount === '' && _.isEmpty(this.props.Templates.selectedWeChatAccount)) && (this.state.channel.toLowerCase() === 'wechat' || this.state.channel.toLowerCase() === "mobilepush") && <div style={{ height: '65vh', textAlign: 'center', lineHeight: '65vh'}}>
1405
+ <span style={{ fontFamily: 'open-sans', fontSize: '24px', color: '#B5B5B5'}}>{this.props.intl.formatMessage(messages.noAccountMessage)}</span>
1405
1406
  </div>}
1406
- {(((this.state.selectedAccount !== '' && !_.isEmpty(this.props.Templates.selectedWeChatAccount) && this.state.channel.toLowerCase() === 'wechat') || this.state.channel.toLowerCase() !== 'wechat') && _.isEmpty(this.props.TemplatesList)) && !this.props.Templates.getAllTemplatesInProgress && <div style={{ height: '65vh', textAlign: 'center', lineHeight: '65vh'}}>
1407
- <span style={{ fontFamily: 'open-sans', fontSize: '24px', color: '#B5B5B5'}}>{this.props.intl.formatMessage(messages.noTemplatesMessage)}</span>
1407
+ {(((this.state.selectedAccount !== '' && !_.isEmpty(this.props.Templates.selectedWeChatAccount) && this.state.channel.toLowerCase() === 'wechat') || this.state.channel.toLowerCase() !== 'wechat') && _.isEmpty(this.props.TemplatesList)) && !this.props.Templates.getAllTemplatesInProgress && <div style={{ height: '65vh', textAlign: 'center', lineHeight: '65vh'}}>
1408
+ <span style={{ fontFamily: 'open-sans', fontSize: '24px', color: '#B5B5B5'}}>{this.props.intl.formatMessage(messages.noTemplatesMessage)}</span>
1408
1409
  </div>}
1409
- </Row>
1410
- <Row>
1411
- {!_.isEmpty(creativesMode) && isFullMode &&
1412
- <CreativesContainer
1413
- messageDetails={{type: "default"}}
1414
- creativesMode={creativesMode}
1415
- messages={messages}
1416
- isFullMode={isFullMode}
1417
- channel={route.name.toUpperCase()}/>
1410
+ </Row>
1411
+ <Row>
1412
+ {!_.isEmpty(creativesMode) && isFullMode &&
1413
+ <CreativesContainer
1414
+ messageDetails={{type: "default"}}
1415
+ creativesMode={creativesMode}
1416
+ messages={messages}
1417
+ isFullMode={isFullMode}
1418
+ channel={route.name.toUpperCase()}/>
1418
1419
  }
1419
- <PreviewSideBar
1420
- showPreview={this.state.previewOpen}
1421
- templateData={this.state.previewTemplate}
1422
- channel={this.state.channel}
1423
- handleClose={this.togglePreview}
1424
- onEditClick={this.handleEditClick}
1425
- embedded={this.props.location.query.type === 'embedded'}
1426
- onDuplicateClick={this.duplicateTemplate}
1427
- location={this.props.location}
1420
+ <PreviewSideBar
1421
+ showPreview={this.state.previewOpen}
1422
+ templateData={this.state.previewTemplate}
1423
+ channel={this.state.channel}
1424
+ handleClose={this.togglePreview}
1425
+ onEditClick={this.handleEditClick}
1426
+ embedded={this.props.location.query.type === 'embedded'}
1427
+ onDuplicateClick={this.duplicateTemplate}
1428
+ location={this.props.location}
1428
1429
  >
1429
- </PreviewSideBar>
1430
- {(this.state.channel.toLowerCase() === 'ebill' || this.state.channel.toLowerCase() === 'email') && htmlPreviewContent && <EmailPreview
1431
- header={previewHeader}
1432
- content={htmlPreviewContent}
1433
- show={this.state.showHtmlPreview}
1434
- device={this.state.device}
1435
- handleClose={this.toggleEmailPreview}
1436
- changePreviewDevice={this.changePreviewDevice}
1437
- lastModified={this.state.previewTemplate ? this.state.previewTemplate.updatedAt : ''}
1438
- updatedByName={commonUtil.getUserNameById(parseInt(this.state.previewTemplate.updatedBy, 10), commonUtil.getMergedUserList(this.props.Templates.userList))}
1430
+ </PreviewSideBar>
1431
+ {(this.state.channel.toLowerCase() === 'ebill' || this.state.channel.toLowerCase() === 'email') && htmlPreviewContent && <EmailPreview
1432
+ header={previewHeader}
1433
+ content={htmlPreviewContent}
1434
+ show={this.state.showHtmlPreview}
1435
+ device={this.state.device}
1436
+ handleClose={this.toggleEmailPreview}
1437
+ changePreviewDevice={this.changePreviewDevice}
1438
+ lastModified={this.state.previewTemplate ? this.state.previewTemplate.updatedAt : ''}
1439
+ updatedByName={commonUtil.getUserNameById(parseInt(this.state.previewTemplate.updatedBy, 10), commonUtil.getMergedUserList(this.props.Templates.userList))}
1439
1440
  />}
1440
- <SlideBox
1441
- header={(<h3>{this.props.intl.formatMessage(messages.layoutSelection)}</h3>)}
1442
- width={60}
1443
- content={cmsTemplateSelectionContent}
1444
- show={this.state.showEdmEmailTemplates}
1445
- handleClose={this.toggleEdmEmailTemplateSelection}
1446
- loadingText={"Loading EDM Templates"}
1447
- isLoading={this.props.Templates.getCmsTemplatesInProgress}
1441
+ <SlideBox
1442
+ header={(<h3>{this.props.intl.formatMessage(messages.layoutSelection)}</h3>)}
1443
+ width={60}
1444
+ content={cmsTemplateSelectionContent}
1445
+ show={this.state.showEdmEmailTemplates}
1446
+ handleClose={this.toggleEdmEmailTemplateSelection}
1447
+ loadingText={"Loading EDM Templates"}
1448
+ isLoading={this.props.Templates.getCmsTemplatesInProgress}
1448
1449
  />
1449
- {this.renderDeleteConfirmationModal()}
1450
- </Row>
1451
- </Spin>
1450
+ {this.renderDeleteConfirmationModal()}
1451
+ </Row>
1452
+
1452
1453
  </div>
1453
1454
  );
1454
1455
  }
@@ -12,7 +12,7 @@ import { injectIntl, intlShape, FormattedMessage } from 'react-intl';
12
12
  import { createStructuredSelector } from 'reselect';
13
13
  import { bindActionCreators } from 'redux';
14
14
  import styled from 'styled-components';
15
- import { CapTab, CapCustomCard, CapIcons, CapButton, CapHeader } from '@capillarytech/cap-ui-library';
15
+ import { CapTab, CapCustomCard, CapIcons, CapButton, CapHeader, CapSpin } from '@capillarytech/cap-ui-library';
16
16
  import { find } from 'lodash';
17
17
  import Helmet from 'react-helmet';
18
18
 
@@ -28,16 +28,21 @@ const { View } = CapIcons;
28
28
  const {CapCustomCardList} = CapCustomCard;
29
29
 
30
30
  const ComponentWrapper = styled.div`
31
- max-width: 1140px;
32
- margin: 0 auto;
33
- width: 100%;
34
- padding: ${CAP_SPACE_24} 0;
35
- .ant-tabs-content{
36
- margin-top: ${CAP_SPACE_16}
37
- }
31
+ ${(props) => props.isFullMode ? `
32
+ max-width: 1140px;
33
+ margin: 0 auto;
34
+ width: 100%;
35
+ padding: ${CAP_SPACE_24} 0;
36
+ .ant-tabs-content{
37
+ margin-top: ${CAP_SPACE_16}
38
+ }
39
+ ` : ` `}
40
+
41
+
38
42
  `;
39
43
  const MarginTop = styled.div`
40
- margin-top: ${CAP_SPACE_24}
44
+ ${(props) => props.isFullMode ? `margin-top: ${CAP_SPACE_24}` : ``
45
+ }
41
46
  `;
42
47
  export class TemplatesV2 extends React.Component { // eslint-disable-line react/prefer-stateless-function
43
48
  constructor(props) {
@@ -61,7 +66,7 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
61
66
  this.setState({selectedChannel: nextProps.channel, panes });
62
67
  }
63
68
  }
64
- getTemplateDataForGrid = ({templates, handlers, filterContent, channel}) => {
69
+ getTemplateDataForGrid = ({templates, handlers, filterContent, channel, isLoading, loadingTip}) => {
65
70
  const currentChannel = channel.toUpperCase();
66
71
  const cardDataList = templates.map((template) => {
67
72
  const templateData =
@@ -80,9 +85,12 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
80
85
  });
81
86
  return (<div>
82
87
  {filterContent}
83
- <div className="pagination-container">
84
- <CapCustomCardList key={`${currentChannel}-card-list`} cardList={cardDataList} type={currentChannel} />
85
- </div>
88
+ <CapSpin spinning={isLoading} tip={loadingTip}>
89
+ <div className="pagination-container">
90
+ <CapCustomCardList key={`${currentChannel}-card-list`} cardList={cardDataList} type={currentChannel} />
91
+ </div>
92
+ </CapSpin>
93
+
86
94
  </div>);
87
95
  }
88
96
  getTemplatesComponent(channel) {
@@ -133,10 +141,10 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
133
141
  { name: 'description', content: this.props.intl.formatMessage(messages.creativesDesc) },
134
142
  ]}
135
143
  />}
136
- <ComponentWrapper>
144
+ <ComponentWrapper isFullMode={isFullMode}>
137
145
 
138
- <CapHeader title={<FormattedMessage {...messages.creatives}/>} description={<FormattedMessage {...messages.creativesDesc}/>}/>
139
- <MarginTop>
146
+ {isFullMode && <CapHeader title={<FormattedMessage {...messages.creatives}/>} description={<FormattedMessage {...messages.creativesDesc}/>}/>}
147
+ <MarginTop isFullMode={isFullMode}>
140
148
  <CapTab
141
149
  panes={this.state.panes}
142
150
  onChange={this.channelChange}
package/index.js CHANGED
@@ -41,6 +41,10 @@ import lineEditReducer from './containers/Line/Edit/reducer';
41
41
  import lineEditSaga from './containers/Line/Edit/sagas';
42
42
  import TemplatesV2 from './containers/TemplatesV2/index';
43
43
 
44
+ import CreativesContainer from './containers/CreativesContainer';
45
+ import CreativesContainerReducer from './containers/CreativesContainer/reducer';
46
+
47
+
44
48
  export {default as Ebill} from './containers/Ebill';
45
49
  export {default as EbillReducer} from './containers/Ebill/reducer';
46
50
  export {default as EbillSaga} from './containers/Ebill/sagas';
@@ -64,7 +68,8 @@ export {default as TagListReducer} from './containers/TagList/reducer';
64
68
  export {default as TemplatePreview} from './components/TemplatePreview';
65
69
  export {default as EmailPreview} from './components/EmailPreview';
66
70
  export {default as EmailPreviewV2} from './components/EmailPreviewV2';
67
- export {default as CreativesContainer} from './containers/CreativesContainer';
71
+
72
+ CreativesContainer.CreativesContainerReducer = CreativesContainerReducer;
68
73
 
69
74
  export { CapContainer,
70
75
  TemplatesContainer,
@@ -82,4 +87,5 @@ export { CapContainer,
82
87
  MobilePushCreateContainer,
83
88
  MobilePushEditContainer,
84
89
  TemplatesV2Container,
90
+ CreativesContainer,
85
91
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "2.0.35",
4
+ "version": "2.0.37",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",