@imposium-hub/components 1.60.4 → 1.60.6

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 (35) hide show
  1. package/dist/cjs/components/asset-details/AssetDetails.js +1 -1
  2. package/dist/cjs/components/asset-details/AssetDetails.js.map +1 -1
  3. package/dist/cjs/components/color-field/ColorField.d.ts +1 -0
  4. package/dist/cjs/components/color-field/ColorField.js +3 -0
  5. package/dist/cjs/components/color-field/ColorField.js.map +1 -1
  6. package/dist/cjs/components/dropdown/Dropdown.js +1 -1
  7. package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
  8. package/dist/cjs/components/header/Header.js +1 -1
  9. package/dist/cjs/components/header/Header.js.map +1 -1
  10. package/dist/cjs/components/story-previewer/StoryPreviewer.js +27 -17
  11. package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
  12. package/dist/cjs/services/API.d.ts +2 -0
  13. package/dist/cjs/services/API.js +6 -0
  14. package/dist/cjs/services/API.js.map +1 -1
  15. package/dist/esm/components/asset-details/AssetDetails.js +1 -1
  16. package/dist/esm/components/asset-details/AssetDetails.js.map +1 -1
  17. package/dist/esm/components/color-field/ColorField.d.ts +1 -0
  18. package/dist/esm/components/color-field/ColorField.js +3 -0
  19. package/dist/esm/components/color-field/ColorField.js.map +1 -1
  20. package/dist/esm/components/dropdown/Dropdown.js +1 -1
  21. package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
  22. package/dist/esm/components/header/Header.js +1 -1
  23. package/dist/esm/components/header/Header.js.map +1 -1
  24. package/dist/esm/components/story-previewer/StoryPreviewer.js +25 -17
  25. package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
  26. package/dist/esm/services/API.d.ts +2 -0
  27. package/dist/esm/services/API.js +6 -0
  28. package/dist/esm/services/API.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/components/asset-details/AssetDetails.tsx +1 -1
  31. package/src/components/color-field/ColorField.tsx +4 -0
  32. package/src/components/dropdown/dropdown.tsx +1 -1
  33. package/src/components/header/Header.tsx +1 -1
  34. package/src/components/story-previewer/StoryPreviewer.tsx +40 -29
  35. package/src/services/API.ts +8 -0
@@ -53,6 +53,7 @@ interface IStoryPreviewerState {
53
53
  activeOutput: string;
54
54
  timeElapsed: number;
55
55
  isTimeOut: boolean;
56
+ error: boolean;
56
57
  }
57
58
 
58
59
  class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPreviewerState> {
@@ -78,7 +79,8 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
78
79
  activeOutput: '',
79
80
  rendering: false,
80
81
  isTimeOut: false,
81
- compositionOverride: null
82
+ compositionOverride: null,
83
+ error: false
82
84
  };
83
85
 
84
86
  this.timer = new Timer({
@@ -463,9 +465,9 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
463
465
  }
464
466
  })
465
467
  .catch((e) => {
466
- this.resetState();
467
468
  if (onError) {
468
469
  if (e.error) {
470
+ this.resetState(null, null, e.id);
469
471
  onError(e.error);
470
472
  } else {
471
473
  onError(
@@ -510,9 +512,9 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
510
512
  }
511
513
  })
512
514
  .catch((e) => {
513
- this.resetState();
514
515
  if (onError) {
515
516
  if (e.error) {
517
+ this.resetState(null, null, e.id);
516
518
  onError(e.error);
517
519
  } else {
518
520
  onError(
@@ -573,17 +575,18 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
573
575
  });
574
576
  }
575
577
 
576
- private resetState(isTimeOut?: boolean, callback?) {
578
+ private resetState(isTimeOut?: boolean, callback?, experienceId = null) {
577
579
  this.timer.stop();
578
580
  this.setState(
579
581
  {
580
582
  rendering: false,
581
- experienceId: null,
583
+ experienceId,
582
584
  experience: null,
583
585
  jobId: null,
584
586
  timeElapsed: !isTimeOut ? 0 : this.state.timeElapsed,
585
587
  activeOutput: null,
586
- isTimeOut: false
588
+ isTimeOut: false,
589
+ error: experienceId !== null
587
590
  },
588
591
  () => {
589
592
  if (callback) {
@@ -740,9 +743,33 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
740
743
  });
741
744
  };
742
745
 
746
+ private expIdField(expId) {
747
+ return (
748
+ <>
749
+ <TextField
750
+ readOnly={true}
751
+ width='360px'
752
+ label={copy.expIdField}
753
+ showCopy={true}
754
+ value={expId}
755
+ />
756
+ <Button
757
+ key='btn-expLog'
758
+ tooltip={copy.expJobLogToolTips}
759
+ customStyles={{
760
+ position: 'relative',
761
+ bottom: '2px'
762
+ }}
763
+ onClick={() => this.downloadExpLog(expId)}>
764
+ {copy.expJobLog} {ICON_DOWNLOAD}
765
+ </Button>
766
+ </>
767
+ );
768
+ }
769
+
743
770
  public render() {
744
771
  const { allowCompOverride } = this.props;
745
- const { rendering, experience, activeOutput } = this.state;
772
+ const { rendering, experience, activeOutput, experienceId, error } = this.state;
746
773
  const { storyId } = this.props;
747
774
  const renderCopy = experience ? copy.btnReRender : copy.btnRender;
748
775
  const compId = this.getCompId();
@@ -760,6 +787,10 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
760
787
  let viewerButtons;
761
788
  let expIdField;
762
789
 
790
+ if (experienceId && error) {
791
+ expIdField = this.expIdField(experienceId);
792
+ }
793
+
763
794
  if (experience) {
764
795
  const viewerOpts = this.getViewerOptions();
765
796
  const outputArr = activeOutput.split('.');
@@ -770,7 +801,7 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
770
801
  const fileName = `${storyId}_${type}`;
771
802
 
772
803
  if (type === OUTPUT_TYPES.IMAGE) {
773
- url = experience.output.images[key];
804
+ url = experience.output.images[key].url;
774
805
  } else if (type === OUTPUT_TYPES.AUDIO) {
775
806
  url = experience.output.audio[key].url;
776
807
  } else if (type === OUTPUT_TYPES.VIDEO) {
@@ -811,27 +842,7 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
811
842
  />
812
843
  );
813
844
 
814
- expIdField = (
815
- <>
816
- <TextField
817
- readOnly={true}
818
- width='360px'
819
- label={copy.expIdField}
820
- showCopy={true}
821
- value={experience.id}
822
- />
823
- <Button
824
- key='btn-expLog'
825
- tooltip={copy.expJobLogToolTips}
826
- customStyles={{
827
- position: 'relative',
828
- bottom: '2px'
829
- }}
830
- onClick={() => this.downloadExpLog(experience.id)}>
831
- {copy.expJobLog} {ICON_DOWNLOAD}
832
- </Button>
833
- </>
834
- );
845
+ expIdField = this.expIdField(experienceId);
835
846
  }
836
847
 
837
848
  const compSelect =
@@ -36,6 +36,7 @@ export interface IImposiumAPI {
36
36
  getStory(storyId: string);
37
37
  saveStory(storyId, story: any);
38
38
  newStory(story: any);
39
+ copyStory(storyId: string);
39
40
  deleteStory(storyId: string);
40
41
  getStoryStatus(storyId: string);
41
42
  revertVersion(storyId: string, versionId: string);
@@ -242,6 +243,13 @@ export default class API {
242
243
  });
243
244
  };
244
245
 
246
+ public copyStory = (storyId: string): Promise<any | Error> => {
247
+ return this.doRequest({
248
+ method: 'POST',
249
+ url: `/story/from-project/${storyId}`
250
+ });
251
+ };
252
+
245
253
  public deleteStory = (storyId: string): Promise<any | Error> => {
246
254
  return this.doRequest({
247
255
  method: 'DELETE',