@imposium-hub/components 2.2.44 → 2.2.45-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Util.js +2 -0
- package/dist/cjs/Util.js.map +1 -1
- package/dist/cjs/components/app-wrapper/AppWrapper.d.ts +1 -2
- package/dist/cjs/components/app-wrapper/AppWrapper.js +70 -82
- package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
- package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js +243 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js +255 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js +243 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js +251 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
- package/dist/cjs/components/assets/AssetsTableDurationCell.js +18 -2
- package/dist/cjs/components/assets/AssetsTableDurationCell.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableGlobalCell.d.ts +6 -0
- package/dist/cjs/components/assets/AssetsTableGlobalCell.js +33 -0
- package/dist/cjs/components/assets/AssetsTableGlobalCell.js.map +1 -0
- package/dist/cjs/components/assets/AssetsTableNameCell.js +2 -2
- package/dist/cjs/components/assets/AssetsTableNameCell.js.map +1 -1
- package/dist/cjs/components/assets/AssetsUploadMenu.js +3 -2
- package/dist/cjs/components/assets/AssetsUploadMenu.js.map +1 -1
- package/dist/cjs/components/auth-gate/AuthGate.js +8 -5
- package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -1
- package/dist/cjs/components/header/Header.d.ts +5 -0
- package/dist/cjs/components/header/Header.js +40 -22
- package/dist/cjs/components/header/Header.js.map +1 -1
- package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
- package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
- package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
- package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
- package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
- package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
- package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
- package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
- package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
- package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
- package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
- package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
- package/dist/cjs/components/publish-wizard/PublishWizard.js +119 -59
- package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
- package/dist/cjs/components/story-previewer/StoryPreviewer.js +15 -10
- package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
- package/dist/cjs/constants/copy.d.ts +6 -0
- package/dist/cjs/constants/copy.js +7 -1
- package/dist/cjs/constants/copy.js.map +1 -1
- package/dist/cjs/constants/icons.d.ts +1 -0
- package/dist/cjs/constants/icons.js +3 -1
- package/dist/cjs/constants/icons.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +2 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/redux/actions/access.d.ts +1 -3
- package/dist/cjs/redux/actions/access.js +10 -43
- package/dist/cjs/redux/actions/access.js.map +1 -1
- package/dist/cjs/redux/actions/publish.js +4 -3
- package/dist/cjs/redux/actions/publish.js.map +1 -1
- package/dist/cjs/redux/reducers/access.js +7 -30
- package/dist/cjs/redux/reducers/access.js.map +1 -1
- package/dist/cjs/services/Session.d.ts +9 -8
- package/dist/cjs/services/Session.js +31 -127
- package/dist/cjs/services/Session.js.map +1 -1
- package/dist/esm/Util.js +2 -0
- package/dist/esm/Util.js.map +1 -1
- package/dist/esm/components/app-wrapper/AppWrapper.d.ts +1 -2
- package/dist/esm/components/app-wrapper/AppWrapper.js +68 -82
- package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
- package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
- package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
- package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
- package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
- package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
- package/dist/esm/components/assets/AssetsTableDurationCell.js +18 -2
- package/dist/esm/components/assets/AssetsTableDurationCell.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableGlobalCell.d.ts +6 -0
- package/dist/esm/components/assets/AssetsTableGlobalCell.js +8 -0
- package/dist/esm/components/assets/AssetsTableGlobalCell.js.map +1 -0
- package/dist/esm/components/assets/AssetsTableNameCell.js +2 -2
- package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
- package/dist/esm/components/assets/AssetsUploadMenu.js +3 -2
- package/dist/esm/components/assets/AssetsUploadMenu.js.map +1 -1
- package/dist/esm/components/auth-gate/AuthGate.js +9 -6
- package/dist/esm/components/auth-gate/AuthGate.js.map +1 -1
- package/dist/esm/components/header/Header.d.ts +5 -0
- package/dist/esm/components/header/Header.js +37 -22
- package/dist/esm/components/header/Header.js.map +1 -1
- package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
- package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
- package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
- package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
- package/dist/esm/components/header/Header_BASE_73021.js +322 -0
- package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
- package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
- package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
- package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
- package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
- package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
- package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
- package/dist/esm/components/publish-wizard/PublishWizard.js +119 -60
- package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
- package/dist/esm/components/story-previewer/StoryPreviewer.js +15 -10
- package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
- package/dist/esm/constants/copy.d.ts +6 -0
- package/dist/esm/constants/copy.js +7 -1
- package/dist/esm/constants/copy.js.map +1 -1
- package/dist/esm/constants/icons.d.ts +1 -0
- package/dist/esm/constants/icons.js +2 -0
- package/dist/esm/constants/icons.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/redux/actions/access.d.ts +1 -3
- package/dist/esm/redux/actions/access.js +8 -37
- package/dist/esm/redux/actions/access.js.map +1 -1
- package/dist/esm/redux/actions/publish.js +4 -3
- package/dist/esm/redux/actions/publish.js.map +1 -1
- package/dist/esm/redux/reducers/access.js +5 -8
- package/dist/esm/redux/reducers/access.js.map +1 -1
- package/dist/esm/services/Session.d.ts +9 -8
- package/dist/esm/services/Session.js +29 -102
- package/dist/esm/services/Session.js.map +1 -1
- package/dist/styles.css +24 -0
- package/dist/styles.less +27 -0
- package/less/components/context-menu.less +1 -0
- package/less/components/header.less +13 -0
- package/less/components/publish-wizard.less +13 -0
- package/package.json +1 -1
- package/src/Util.ts +3 -0
- package/src/components/app-wrapper/AppWrapper.tsx +77 -123
- package/src/components/assets/AssetsTableDurationCell.tsx +23 -2
- package/src/components/assets/AssetsTableNameCell.tsx +4 -1
- package/src/components/assets/AssetsUploadMenu.tsx +13 -8
- package/src/components/auth-gate/AuthGate.tsx +14 -8
- package/src/components/header/Header.tsx +88 -42
- package/src/components/publish-wizard/PublishWizard.tsx +172 -87
- package/src/components/story-previewer/StoryPreviewer.tsx +17 -10
- package/src/constants/copy.ts +8 -1
- package/src/constants/icons.tsx +3 -0
- package/src/index.ts +1 -10
- package/src/redux/actions/access.ts +5 -67
- package/src/redux/actions/publish.ts +6 -3
- package/src/redux/reducers/access.ts +5 -8
- package/src/services/Session.ts +34 -120
|
@@ -15,12 +15,17 @@ export interface IHeaderProps {
|
|
|
15
15
|
activeOrganization: string;
|
|
16
16
|
activeStory?: string;
|
|
17
17
|
hideStoryPicker?: boolean;
|
|
18
|
+
hideOrgPicker?: boolean;
|
|
18
19
|
onOrganizationChange?: (orgId: any) => any;
|
|
19
20
|
onStoryChange?: (story: any) => any;
|
|
20
21
|
logout: (...args) => any;
|
|
22
|
+
additionalButtons?: any[];
|
|
21
23
|
auth: any;
|
|
22
24
|
story: any;
|
|
23
25
|
baseUrl: any;
|
|
26
|
+
hideDocs?: boolean;
|
|
27
|
+
showFTLogo?: boolean;
|
|
28
|
+
access: any;
|
|
24
29
|
}
|
|
25
30
|
|
|
26
31
|
export interface IHeaderState {
|
|
@@ -160,7 +165,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
160
165
|
|
|
161
166
|
public componentDidUpdate(prevProps: Readonly<IHeaderProps>): void {
|
|
162
167
|
const { accessData } = this.state;
|
|
163
|
-
const { activeOrganization } = this.props;
|
|
168
|
+
const { activeOrganization, access } = this.props;
|
|
164
169
|
|
|
165
170
|
if (activeOrganization !== prevProps.activeOrganization) {
|
|
166
171
|
if (accessData !== null) {
|
|
@@ -169,6 +174,12 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
169
174
|
this.getAccessDataHandler();
|
|
170
175
|
}
|
|
171
176
|
}
|
|
177
|
+
|
|
178
|
+
if (!_.isEqual(access, accessData)) {
|
|
179
|
+
this.setState({ accessData: access }, () =>
|
|
180
|
+
this.parseAccessData(access, activeOrganization)
|
|
181
|
+
);
|
|
182
|
+
}
|
|
172
183
|
}
|
|
173
184
|
|
|
174
185
|
private parseAccessData = (accessData: any, activeOrganization: string): void => {
|
|
@@ -312,7 +323,17 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
312
323
|
};
|
|
313
324
|
|
|
314
325
|
public render() {
|
|
315
|
-
const {
|
|
326
|
+
const {
|
|
327
|
+
email,
|
|
328
|
+
activeOrganization,
|
|
329
|
+
activeStory,
|
|
330
|
+
hideStoryPicker,
|
|
331
|
+
story,
|
|
332
|
+
hideOrgPicker,
|
|
333
|
+
additionalButtons,
|
|
334
|
+
showFTLogo,
|
|
335
|
+
hideDocs
|
|
336
|
+
} = this.props;
|
|
316
337
|
const {
|
|
317
338
|
accessData,
|
|
318
339
|
showAccountDropdown,
|
|
@@ -345,6 +366,14 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
345
366
|
let serviceDropdownToggle: JSX.Element;
|
|
346
367
|
let serviceDropdownMenu: JSX.Element;
|
|
347
368
|
|
|
369
|
+
const btnLogout = (
|
|
370
|
+
<button
|
|
371
|
+
className='btn-logout'
|
|
372
|
+
onClick={() => this.doLogout()}>
|
|
373
|
+
{ImposiumHeader.LOGOUT_COPY}
|
|
374
|
+
</button>
|
|
375
|
+
);
|
|
376
|
+
|
|
348
377
|
if (accessData) {
|
|
349
378
|
activeService = servicesByOrganization.find((s: any) =>
|
|
350
379
|
window.location.href.includes(s.url)
|
|
@@ -363,6 +392,36 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
363
392
|
.filter((s: any) => !s.private && ImposiumHeader.PRIVATE_IDS.indexOf(s.id) > -1)
|
|
364
393
|
.map((s: any) => this.renderServiceAnchor(s, activeOrganization, activeStory));
|
|
365
394
|
|
|
395
|
+
const docsSection = !hideDocs ? (
|
|
396
|
+
<section className='service-menu-section'>
|
|
397
|
+
<div className='service-menu-heading'>{ImposiumHeader.DOCS_HEADER}</div>
|
|
398
|
+
|
|
399
|
+
<div className='service-menu-anchors'>
|
|
400
|
+
<div className='anchor-wrapper doc'>
|
|
401
|
+
<a
|
|
402
|
+
target='__blank'
|
|
403
|
+
href={ImposiumHeader.API_DOCS_LINK}>
|
|
404
|
+
<div className='icon-fixed'>
|
|
405
|
+
<ServiceIcon iconName='FaCogs' />
|
|
406
|
+
</div>
|
|
407
|
+
{ImposiumHeader.API_DOCS_LINK_COPY}
|
|
408
|
+
</a>
|
|
409
|
+
</div>
|
|
410
|
+
|
|
411
|
+
<div className='anchor-wrapper doc'>
|
|
412
|
+
<a
|
|
413
|
+
target='__blank'
|
|
414
|
+
href={ImposiumHeader.SDK_DOCS_LINK}>
|
|
415
|
+
<div className='icon-fixed'>
|
|
416
|
+
<ServiceIcon iconName='FaJsSquare' />
|
|
417
|
+
</div>
|
|
418
|
+
{ImposiumHeader.SDK_DOCS_LINK_COPY}
|
|
419
|
+
</a>
|
|
420
|
+
</div>
|
|
421
|
+
</div>
|
|
422
|
+
</section>
|
|
423
|
+
) : null;
|
|
424
|
+
|
|
366
425
|
serviceDropdownMenu = (
|
|
367
426
|
<div className='service-menu'>
|
|
368
427
|
<section className='service-menu-section'>
|
|
@@ -383,33 +442,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
383
442
|
</section>
|
|
384
443
|
)}
|
|
385
444
|
|
|
386
|
-
|
|
387
|
-
<div className='service-menu-heading'>{ImposiumHeader.DOCS_HEADER}</div>
|
|
388
|
-
|
|
389
|
-
<div className='service-menu-anchors'>
|
|
390
|
-
<div className='anchor-wrapper doc'>
|
|
391
|
-
<a
|
|
392
|
-
target='__blank'
|
|
393
|
-
href={ImposiumHeader.API_DOCS_LINK}>
|
|
394
|
-
<div className='icon-fixed'>
|
|
395
|
-
<ServiceIcon iconName='FaCogs' />
|
|
396
|
-
</div>
|
|
397
|
-
{ImposiumHeader.API_DOCS_LINK_COPY}
|
|
398
|
-
</a>
|
|
399
|
-
</div>
|
|
400
|
-
|
|
401
|
-
<div className='anchor-wrapper doc'>
|
|
402
|
-
<a
|
|
403
|
-
target='__blank'
|
|
404
|
-
href={ImposiumHeader.SDK_DOCS_LINK}>
|
|
405
|
-
<div className='icon-fixed'>
|
|
406
|
-
<ServiceIcon iconName='FaJsSquare' />
|
|
407
|
-
</div>
|
|
408
|
-
{ImposiumHeader.SDK_DOCS_LINK_COPY}
|
|
409
|
-
</a>
|
|
410
|
-
</div>
|
|
411
|
-
</div>
|
|
412
|
-
</section>
|
|
445
|
+
{docsSection}
|
|
413
446
|
</div>
|
|
414
447
|
);
|
|
415
448
|
|
|
@@ -431,7 +464,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
431
464
|
</button>
|
|
432
465
|
);
|
|
433
466
|
|
|
434
|
-
accountDropdownToggle = (
|
|
467
|
+
accountDropdownToggle = !hideOrgPicker ? (
|
|
435
468
|
<button
|
|
436
469
|
id='btn-toggle-orgs'
|
|
437
470
|
className='btn-toggle-orgs'
|
|
@@ -440,6 +473,8 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
440
473
|
onClick={() => this.toggleAccountDropdown(!showAccountDropdown)}>
|
|
441
474
|
{activeFirstChar}
|
|
442
475
|
</button>
|
|
476
|
+
) : (
|
|
477
|
+
btnLogout
|
|
443
478
|
);
|
|
444
479
|
}
|
|
445
480
|
|
|
@@ -474,7 +509,11 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
474
509
|
});
|
|
475
510
|
}}>
|
|
476
511
|
<div className='story-name'>
|
|
477
|
-
{currentStory
|
|
512
|
+
{currentStory
|
|
513
|
+
? currentStory.name
|
|
514
|
+
: story
|
|
515
|
+
? story.name
|
|
516
|
+
: 'Project Not Found'}
|
|
478
517
|
</div>
|
|
479
518
|
{this.renderDropdownChevron(showStoriesDropdown)}
|
|
480
519
|
</button>
|
|
@@ -528,6 +567,19 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
528
567
|
);
|
|
529
568
|
}
|
|
530
569
|
|
|
570
|
+
const logo = showFTLogo ? (
|
|
571
|
+
<>
|
|
572
|
+
<div className='ft-logo' />
|
|
573
|
+
|
|
|
574
|
+
<h1 className='heading'>{ImposiumHeader.DEFAULT_TITLE}</h1>
|
|
575
|
+
</>
|
|
576
|
+
) : (
|
|
577
|
+
<>
|
|
578
|
+
<div className='logo' />
|
|
579
|
+
<h1 className='heading'>{ImposiumHeader.DEFAULT_TITLE}</h1>
|
|
580
|
+
</>
|
|
581
|
+
);
|
|
582
|
+
|
|
531
583
|
return (
|
|
532
584
|
<nav
|
|
533
585
|
id='imposium-header'
|
|
@@ -535,16 +587,13 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
535
587
|
style={headerBorder}>
|
|
536
588
|
<div className='inner-content'>
|
|
537
589
|
<span className='inner-left'>
|
|
538
|
-
<div className='title'>
|
|
539
|
-
<div className='logo' />
|
|
540
|
-
<h1 className='heading'>{ImposiumHeader.DEFAULT_TITLE}</h1>
|
|
541
|
-
</div>
|
|
542
|
-
|
|
590
|
+
<div className='title'>{logo}</div>
|
|
543
591
|
{serviceDropdownToggle}
|
|
544
592
|
</span>
|
|
545
593
|
|
|
546
594
|
<span className='inner-right'>
|
|
547
595
|
{storyToggle}
|
|
596
|
+
<div className='additional-buttons'>{additionalButtons}</div>
|
|
548
597
|
{accountDropdownToggle}
|
|
549
598
|
<a
|
|
550
599
|
href='https://support.flashtalking.com/hc/en-us/sections/25515903148819-Imposium'
|
|
@@ -584,11 +633,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
584
633
|
|
|
585
634
|
<div className='orgs-menu-footer'>
|
|
586
635
|
<div className='email'>{email}</div>
|
|
587
|
-
|
|
588
|
-
className='btn-logout'
|
|
589
|
-
onClick={() => this.doLogout()}>
|
|
590
|
-
{ImposiumHeader.LOGOUT_COPY}
|
|
591
|
-
</button>
|
|
636
|
+
{btnLogout}
|
|
592
637
|
</div>
|
|
593
638
|
</div>
|
|
594
639
|
</ImposiumDropdown>
|
|
@@ -600,7 +645,8 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
600
645
|
const mapStateToProps = (state): any => {
|
|
601
646
|
return {
|
|
602
647
|
auth: state.auth,
|
|
603
|
-
story: state.story
|
|
648
|
+
story: state.story,
|
|
649
|
+
access: state.access
|
|
604
650
|
};
|
|
605
651
|
};
|
|
606
652
|
|
|
@@ -5,10 +5,12 @@ import HRule from '../h-rule/HRule';
|
|
|
5
5
|
import {
|
|
6
6
|
ICON_DOWNLOAD,
|
|
7
7
|
ICON_EMAIL,
|
|
8
|
+
ICON_EXCLAIMATION_TRIANGLE,
|
|
8
9
|
ICON_GLOBE,
|
|
9
10
|
ICON_HUBSPOT,
|
|
10
11
|
ICON_IMAGE,
|
|
11
|
-
ICON_PROJECT_DIAGRAM
|
|
12
|
+
ICON_PROJECT_DIAGRAM,
|
|
13
|
+
ICON_UP_RIGHT_FROM_SQUARE
|
|
12
14
|
} from '../../constants/icons';
|
|
13
15
|
import { IImposiumAPI } from '../../services/API';
|
|
14
16
|
import * as copy from '../../constants/copy';
|
|
@@ -23,6 +25,8 @@ import { publishVersion } from '../../redux/actions/publish';
|
|
|
23
25
|
import { connect } from 'react-redux';
|
|
24
26
|
|
|
25
27
|
interface IPublishWizardProps {
|
|
28
|
+
fromCrM?: boolean;
|
|
29
|
+
creativeManagerBaseUrl?: string;
|
|
26
30
|
story: any;
|
|
27
31
|
project: any;
|
|
28
32
|
updateEditorConfig(c): void;
|
|
@@ -34,7 +38,6 @@ interface IPublishWizardProps {
|
|
|
34
38
|
exportExperiences: () => void;
|
|
35
39
|
publishVersion: (api: IImposiumAPI, sId: string) => any;
|
|
36
40
|
batchesList: any;
|
|
37
|
-
publishing: boolean;
|
|
38
41
|
onClose(): any;
|
|
39
42
|
api: IImposiumAPI;
|
|
40
43
|
handleError(e): void;
|
|
@@ -91,6 +94,7 @@ interface IPublishWizardState {
|
|
|
91
94
|
error: boolean;
|
|
92
95
|
next: boolean;
|
|
93
96
|
nextStep: boolean;
|
|
97
|
+
publishError: string;
|
|
94
98
|
}
|
|
95
99
|
|
|
96
100
|
interface IBigButtonProps {
|
|
@@ -134,12 +138,27 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
|
|
|
134
138
|
done: false,
|
|
135
139
|
error: false,
|
|
136
140
|
next: false,
|
|
137
|
-
nextStep: false
|
|
141
|
+
nextStep: false,
|
|
142
|
+
publishError: null
|
|
138
143
|
};
|
|
139
144
|
this.emailWorkflow = React.createRef();
|
|
140
145
|
this.hiddenFileInputRef = React.createRef();
|
|
141
146
|
}
|
|
142
147
|
|
|
148
|
+
public componentDidUpdate(prevProps, prevState) {
|
|
149
|
+
// If we just finished publushing, and we're on the first screen still go to the second screen
|
|
150
|
+
if (
|
|
151
|
+
prevProps.publishData.publishing &&
|
|
152
|
+
!this.props.publishData.publishing &&
|
|
153
|
+
this.state.screenIndex === 0 &&
|
|
154
|
+
!this.state.publishError
|
|
155
|
+
) {
|
|
156
|
+
this.setState({
|
|
157
|
+
screenIndex: 1
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
143
162
|
public componentDidMount() {
|
|
144
163
|
const { story, api, handleError, activeComposition } = this.props;
|
|
145
164
|
// Pull in all of the access creds for the composition dropdown
|
|
@@ -275,12 +294,25 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
|
|
|
275
294
|
const {
|
|
276
295
|
story: { id },
|
|
277
296
|
api,
|
|
278
|
-
handleError
|
|
297
|
+
handleError,
|
|
298
|
+
fromCrM
|
|
279
299
|
} = this.props;
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
300
|
+
|
|
301
|
+
if (fromCrM) {
|
|
302
|
+
this.props
|
|
303
|
+
.publishVersion(api, id)
|
|
304
|
+
.then(() => {
|
|
305
|
+
this.setState({ screenIndex: 1 });
|
|
306
|
+
})
|
|
307
|
+
.catch((e) => {
|
|
308
|
+
this.setState({ publishError: e });
|
|
309
|
+
});
|
|
310
|
+
} else {
|
|
311
|
+
this.props.publishVersion(api, id).catch((e) => {
|
|
312
|
+
handleError(e);
|
|
313
|
+
});
|
|
314
|
+
this.setState({ screenIndex: 1 });
|
|
315
|
+
}
|
|
284
316
|
}
|
|
285
317
|
|
|
286
318
|
private onCloseHandler = () => {
|
|
@@ -296,7 +328,7 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
|
|
|
296
328
|
|
|
297
329
|
private renderLowerButtons() {
|
|
298
330
|
const { screenIndex, done, error, next } = this.state;
|
|
299
|
-
const { publishing } = this.props;
|
|
331
|
+
const { publishing } = this.props.publishData;
|
|
300
332
|
|
|
301
333
|
const lowerButtons = [];
|
|
302
334
|
|
|
@@ -383,11 +415,19 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
|
|
|
383
415
|
}
|
|
384
416
|
|
|
385
417
|
private renderPublish() {
|
|
418
|
+
const { publishing } = this.props.publishData;
|
|
419
|
+
const { publishError } = this.state;
|
|
420
|
+
const error = publishError ? (
|
|
421
|
+
<p className='publish-error'>
|
|
422
|
+
<span className='icon'>{ICON_EXCLAIMATION_TRIANGLE}</span> {publishError}
|
|
423
|
+
</p>
|
|
424
|
+
) : null;
|
|
386
425
|
return (
|
|
387
426
|
<div>
|
|
388
427
|
<h2>{copy.publish.publishStepTitle}</h2>
|
|
389
428
|
<HRule />
|
|
390
|
-
<p>{copy.publish.publishStepDesc}</p>
|
|
429
|
+
<p>{publishing ? copy.publish.publishInProgress : copy.publish.publishStepDesc}</p>
|
|
430
|
+
{error}
|
|
391
431
|
</div>
|
|
392
432
|
);
|
|
393
433
|
}
|
|
@@ -398,7 +438,7 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
|
|
|
398
438
|
const { compositions, afterEffects, selectedComposition, credentials, accessKey } =
|
|
399
439
|
this.state;
|
|
400
440
|
|
|
401
|
-
const { publishDataset } = this.props;
|
|
441
|
+
const { publishDataset, fromCrM, story, creativeManagerBaseUrl } = this.props;
|
|
402
442
|
|
|
403
443
|
for (const comp of compositions) {
|
|
404
444
|
compOpts.push({
|
|
@@ -421,56 +461,75 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
|
|
|
421
461
|
});
|
|
422
462
|
}
|
|
423
463
|
|
|
424
|
-
let distributionOptions =
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
464
|
+
let distributionOptions = !fromCrM
|
|
465
|
+
? [
|
|
466
|
+
{
|
|
467
|
+
label: (
|
|
468
|
+
<span>
|
|
469
|
+
{ICON_GLOBE} {copy.publish.btnWebsite}
|
|
470
|
+
</span>
|
|
471
|
+
),
|
|
472
|
+
onClick: (e) => this.onSelectOption(2)
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
label: (
|
|
476
|
+
<span>
|
|
477
|
+
{ICON_EMAIL} {copy.publish.btnEmail}
|
|
478
|
+
</span>
|
|
479
|
+
),
|
|
480
|
+
onClick: (e) => this.onSelectOption(3)
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
label: (
|
|
484
|
+
<span>
|
|
485
|
+
{ICON_HUBSPOT} {copy.publish.btnHubspot}
|
|
486
|
+
</span>
|
|
487
|
+
),
|
|
488
|
+
onClick: (e) => this.onSelectOption(5)
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
label: (
|
|
492
|
+
<span>
|
|
493
|
+
{ICON_PROJECT_DIAGRAM} {copy.publish.btnAPI}
|
|
494
|
+
</span>
|
|
495
|
+
),
|
|
496
|
+
onClick: (e) => this.onSelectOption(6)
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
label: (
|
|
500
|
+
<span>
|
|
501
|
+
{ICON_DOWNLOAD} {copy.publish.btnExport}
|
|
502
|
+
</span>
|
|
503
|
+
),
|
|
504
|
+
onClick: (e) => this.onSelectOption(7)
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
label: (
|
|
508
|
+
<span>
|
|
509
|
+
{ICON_IMAGE} {copy.publish.btnCRM}
|
|
510
|
+
</span>
|
|
511
|
+
),
|
|
512
|
+
onClick: (e) => this.onSelectOption(8)
|
|
513
|
+
}
|
|
514
|
+
]
|
|
515
|
+
: [
|
|
516
|
+
{
|
|
517
|
+
label: (
|
|
518
|
+
<span>
|
|
519
|
+
{ICON_DOWNLOAD} {copy.publish.btnRunTestBatch}
|
|
520
|
+
</span>
|
|
521
|
+
),
|
|
522
|
+
onClick: (e) => this.onSelectOption(7)
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
label: (
|
|
526
|
+
<span>
|
|
527
|
+
{ICON_UP_RIGHT_FROM_SQUARE} {copy.publish.btnCrM}
|
|
528
|
+
</span>
|
|
529
|
+
),
|
|
530
|
+
link: `${creativeManagerBaseUrl}/library/${story.creativeLibraryId}/creative/${story.creativeLibraryId}/versions/`
|
|
531
|
+
}
|
|
532
|
+
];
|
|
474
533
|
|
|
475
534
|
if (publishDataset) {
|
|
476
535
|
const indexes = [0, 2, 3];
|
|
@@ -482,41 +541,67 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
|
|
|
482
541
|
}, []);
|
|
483
542
|
}
|
|
484
543
|
|
|
544
|
+
const compDropdown = !fromCrM ? (
|
|
545
|
+
<SelectField
|
|
546
|
+
label={copy.project.compName}
|
|
547
|
+
value={selectedComposition}
|
|
548
|
+
onChange={this.onCompositionChange}
|
|
549
|
+
options={compOpts}
|
|
550
|
+
tooltip={copy.project.tooltipCompId}
|
|
551
|
+
/>
|
|
552
|
+
) : null;
|
|
553
|
+
|
|
554
|
+
const accessKeyDropdown = !fromCrM ? (
|
|
555
|
+
<SelectField
|
|
556
|
+
label={copy.publish.accessKey}
|
|
557
|
+
value={accessKey}
|
|
558
|
+
onChange={this.onCredentialsChange}
|
|
559
|
+
options={credOpts}
|
|
560
|
+
tooltip={copy.publish.tooltipAccessKey}
|
|
561
|
+
/>
|
|
562
|
+
) : null;
|
|
563
|
+
|
|
485
564
|
return (
|
|
486
565
|
<div>
|
|
487
|
-
<h2>
|
|
566
|
+
<h2>
|
|
567
|
+
{!fromCrM
|
|
568
|
+
? copy.publish.distributeStepTitle
|
|
569
|
+
: copy.publish.distributeStepTitleFromCrM}
|
|
570
|
+
</h2>
|
|
488
571
|
<HRule />
|
|
489
|
-
<p>
|
|
572
|
+
<p>
|
|
573
|
+
{!fromCrM
|
|
574
|
+
? copy.publish.distributeStepDesc
|
|
575
|
+
: copy.publish.distributeStepDescFromCrM}
|
|
576
|
+
</p>
|
|
490
577
|
<HRule />
|
|
491
|
-
{!this.state.selectedComposition && (
|
|
578
|
+
{!this.state.selectedComposition && !fromCrM && (
|
|
492
579
|
<p className={'text-danger'}>{copy.publish.noCompErrorDesc}</p>
|
|
493
580
|
)}
|
|
494
581
|
<div style={{ marginTop: '10px' }}>
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
value={selectedComposition}
|
|
498
|
-
onChange={this.onCompositionChange}
|
|
499
|
-
options={compOpts}
|
|
500
|
-
tooltip={copy.project.tooltipCompId}
|
|
501
|
-
/>
|
|
502
|
-
<SelectField
|
|
503
|
-
label={copy.publish.accessKey}
|
|
504
|
-
value={accessKey}
|
|
505
|
-
onChange={this.onCredentialsChange}
|
|
506
|
-
options={credOpts}
|
|
507
|
-
tooltip={copy.publish.tooltipAccessKey}
|
|
508
|
-
/>
|
|
582
|
+
{compDropdown}
|
|
583
|
+
{accessKeyDropdown}
|
|
509
584
|
|
|
510
585
|
<div className='link-wrapper'>
|
|
511
|
-
{distributionOptions?.map((option, index) => {
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
586
|
+
{distributionOptions?.map((option: any, index) => {
|
|
587
|
+
if (option.link) {
|
|
588
|
+
return (
|
|
589
|
+
<BigLink
|
|
590
|
+
key={index}
|
|
591
|
+
label={option.label}
|
|
592
|
+
link={option.link}
|
|
593
|
+
/>
|
|
594
|
+
);
|
|
595
|
+
} else {
|
|
596
|
+
return (
|
|
597
|
+
<BigButton
|
|
598
|
+
key={index}
|
|
599
|
+
disabled={!selectedComposition}
|
|
600
|
+
label={option.label}
|
|
601
|
+
onClick={option.onClick}
|
|
602
|
+
/>
|
|
603
|
+
);
|
|
604
|
+
}
|
|
520
605
|
})}
|
|
521
606
|
</div>
|
|
522
607
|
</div>
|