@imposium-hub/components 2.5.10-14 → 2.5.10-16

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 (107) hide show
  1. package/dist/cjs/components/app-wrapper/AppWrapper.js +5 -2
  2. package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
  3. package/dist/cjs/components/assets/AssetsTableAssetIdCell.js +0 -2
  4. package/dist/cjs/components/assets/AssetsTableAssetIdCell.js.map +1 -1
  5. package/dist/cjs/components/assets/AssetsTableAssetIdFilter.js.map +1 -1
  6. package/dist/cjs/components/confirm-modal/ConfirmModal.d.ts +4 -6
  7. package/dist/cjs/components/confirm-modal/ConfirmModal.js +99 -8
  8. package/dist/cjs/components/confirm-modal/ConfirmModal.js.map +1 -1
  9. package/dist/cjs/components/tabs/Tabs.d.ts +4 -1
  10. package/dist/cjs/components/tabs/Tabs.stories.d.ts +3 -1
  11. package/dist/cjs/index.d.ts +2 -2
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/redux/actions/asset-list.js +33 -42
  14. package/dist/cjs/redux/actions/asset-list.js.map +1 -1
  15. package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  16. package/dist/esm/components/anchor-field/AnchorField.d.ts +1 -1
  17. package/dist/esm/components/app-wrapper/AppWrapper.js +5 -2
  18. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  19. package/dist/esm/components/assets/AssetsTableAssetIdCell.js +0 -2
  20. package/dist/esm/components/assets/AssetsTableAssetIdCell.js.map +1 -1
  21. package/dist/esm/components/assets/AssetsTableAssetIdFilter.js.map +1 -1
  22. package/dist/esm/components/assets/AssetsTableDateCell.d.ts +6 -1
  23. package/dist/esm/components/assets/AssetsTableGlobalCell.d.ts +5 -1
  24. package/dist/esm/components/assets/AssetsTablePreviewCell.d.ts +16 -1
  25. package/dist/esm/components/assets/AssetsTableStatusCell.d.ts +5 -1
  26. package/dist/esm/components/assets/AssetsTableTagsCell.d.ts +6 -1
  27. package/dist/esm/components/assets/AssetsTableTypeCell.d.ts +5 -1
  28. package/dist/esm/components/assets/AssetsTypeIcon.d.ts +5 -1
  29. package/dist/esm/components/assets/FontAssetPreview.d.ts +1 -1
  30. package/dist/esm/components/assets/StoryTableTotalRendersCell.d.ts +2 -1
  31. package/dist/esm/components/button/Button.d.ts +1 -1
  32. package/dist/esm/components/button/Button.stories.d.ts +6 -5
  33. package/dist/esm/components/button-group-field/ButtonGroupField.stories.d.ts +2 -1
  34. package/dist/esm/components/button-menu/ButtonMenu.d.ts +2 -2
  35. package/dist/esm/components/button-menu/ButtonMenu.stories.d.ts +2 -1
  36. package/dist/esm/components/button-menu/ButtonMenuItem.d.ts +1 -1
  37. package/dist/esm/components/card/Card.d.ts +4 -4
  38. package/dist/esm/components/card/Card.stories.d.ts +2 -1
  39. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +1 -1
  40. package/dist/esm/components/checkbox-field/CheckboxField.stories.d.ts +2 -1
  41. package/dist/esm/components/color-field/ColorField.d.ts +1 -1
  42. package/dist/esm/components/color-field/ColorFiled.stories.d.ts +2 -1
  43. package/dist/esm/components/compositions/TextLayer.d.ts +1 -1
  44. package/dist/esm/components/confirm-modal/ConfirmModal.d.ts +5 -6
  45. package/dist/esm/components/confirm-modal/ConfirmModal.js +51 -8
  46. package/dist/esm/components/confirm-modal/ConfirmModal.js.map +1 -1
  47. package/dist/esm/components/context-menu/AnimateComponent.d.ts +2 -1
  48. package/dist/esm/components/context-menu/ContextMenu.d.ts +2 -1
  49. package/dist/esm/components/context-menu/ContextMenuItem.d.ts +2 -1
  50. package/dist/esm/components/context-menu/ContextMenuTrigger.d.ts +2 -1
  51. package/dist/esm/components/context-menu/SubMenu.d.ts +2 -1
  52. package/dist/esm/components/controlled-list/ControlledList.d.ts +2 -2
  53. package/dist/esm/components/controlled-list/ControlledList.stories.d.ts +2 -1
  54. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.d.ts +1 -1
  55. package/dist/esm/components/determinate-loader/DeterminateLoader.stories.d.ts +4 -3
  56. package/dist/esm/components/dropdown/Dropdown.d.ts +1 -1
  57. package/dist/esm/components/dropdown/dropdown.stories.d.ts +1 -1
  58. package/dist/esm/components/field-wrapper/FieldWrapper.d.ts +2 -2
  59. package/dist/esm/components/field-wrapper/FieldWrapper.stories.d.ts +2 -1
  60. package/dist/esm/components/font-picker/FontPicker.d.ts +1 -1
  61. package/dist/esm/components/h-rule/HRule.d.ts +2 -1
  62. package/dist/esm/components/h-rule/HRule.stories.d.ts +3 -2
  63. package/dist/esm/components/list-field/ListField.d.ts +1 -1
  64. package/dist/esm/components/list-field/ListField.stories.d.ts +2 -1
  65. package/dist/esm/components/log-viewer/LogViewer.d.ts +1 -1
  66. package/dist/esm/components/media-variable-field/MediaVariableField.d.ts +1 -1
  67. package/dist/esm/components/modal/Modal.d.ts +1 -1
  68. package/dist/esm/components/modal/Modal.stories.d.ts +2 -1
  69. package/dist/esm/components/number-field/NumberField.d.ts +1 -1
  70. package/dist/esm/components/number-field/NumberField.stories.d.ts +2 -1
  71. package/dist/esm/components/players/AudioPlayer.d.ts +1 -1
  72. package/dist/esm/components/players/AudioPreview.d.ts +1 -1
  73. package/dist/esm/components/players/ImagePlayer.d.ts +1 -1
  74. package/dist/esm/components/players/ImagePreview.d.ts +1 -1
  75. package/dist/esm/components/players/ImageSequencePlayer.d.ts +1 -1
  76. package/dist/esm/components/players/TemplatePlayer.d.ts +1 -1
  77. package/dist/esm/components/players/VideoPlayer.d.ts +1 -1
  78. package/dist/esm/components/players/VideoPreview.d.ts +1 -1
  79. package/dist/esm/components/publish-wizard/PublishWizard.d.ts +3 -3
  80. package/dist/esm/components/publish-wizard/publish/APIIntegration.d.ts +1 -1
  81. package/dist/esm/components/publish-wizard/publish/HubSpotFlow.d.ts +1 -1
  82. package/dist/esm/components/publish-wizard/publish/WebpageHosted.d.ts +2 -2
  83. package/dist/esm/components/section/Section.d.ts +2 -1
  84. package/dist/esm/components/section/Section.stories.d.ts +3 -2
  85. package/dist/esm/components/select-field/SelectField.d.ts +1 -1
  86. package/dist/esm/components/select-field/SelectField.stories.d.ts +2 -1
  87. package/dist/esm/components/shortcut-menu/ShortcutMenu.stories.d.ts +2 -1
  88. package/dist/esm/components/slider-field/SliderField.d.ts +1 -1
  89. package/dist/esm/components/slider-field/SliderField.stories.d.ts +2 -1
  90. package/dist/esm/components/smpte-field/SMPTEField.d.ts +1 -1
  91. package/dist/esm/components/tabs/Tabs.d.ts +4 -1
  92. package/dist/esm/components/tabs/Tabs.stories.d.ts +5 -2
  93. package/dist/esm/components/tag/Tag.d.ts +9 -1
  94. package/dist/esm/components/text-area-field/TextAreaField.d.ts +1 -1
  95. package/dist/esm/components/text-area-field/TextAreaField.stories.d.ts +2 -1
  96. package/dist/esm/components/text-field/TextField.d.ts +1 -1
  97. package/dist/esm/components/text-field/TextField.stories.d.ts +2 -1
  98. package/dist/esm/constants/icons.d.ts +74 -73
  99. package/dist/esm/index.d.ts +2 -2
  100. package/dist/esm/index.js.map +1 -1
  101. package/dist/esm/redux/actions/asset-list.js +33 -42
  102. package/dist/esm/redux/actions/asset-list.js.map +1 -1
  103. package/package.json +1 -1
  104. package/src/components/app-wrapper/AppWrapper.tsx +3 -4
  105. package/src/components/confirm-modal/ConfirmModal.tsx +63 -13
  106. package/src/index.ts +3 -2
  107. package/src/redux/actions/asset-list.ts +36 -44
@@ -1,31 +1,81 @@
1
- import React from 'react';
1
+ import React, { useCallback, useEffect, useState } from 'react';
2
2
  import ReactDOM from 'react-dom';
3
- import { useHotkeys } from 'react-hotkeys-hook';
4
3
  import Modal from '../modal/Modal';
5
4
  import Button from '../button/Button';
6
5
  import { confirm as copy } from '../../constants/copy';
7
6
  import Section from '../section/Section';
8
7
 
9
- interface IConfirmModalProps {
10
- onClose: (e) => void;
11
- onYes: (e) => void;
12
- onNo: (e) => void;
8
+ export interface IConfirmModalProps {
9
+ onYes: () => void;
10
+ onNo?: () => void;
13
11
  title: string;
14
12
  yesLabel?: string;
15
13
  noLabel?: string;
16
14
  showCancel?: boolean;
17
15
  }
18
16
 
19
- export const ConfirmModal = (props: IConfirmModalProps) => {
20
- useHotkeys('enter', props.onYes, { enableOnFormTags: true });
17
+ export const ConfirmModal = () => {
18
+ const [props, setProps] = useState<IConfirmModalProps>(null);
19
+ const [isOpen, setIsOpen] = useState<boolean>(false);
20
+
21
+ const onOpen = (event) => {
22
+ setProps({
23
+ ...event.detail
24
+ });
25
+ setIsOpen(true);
26
+ };
27
+
28
+ const onYesHandler = () => {
29
+ props.onYes();
30
+ setIsOpen(false);
31
+ };
32
+
33
+ const onYes = useCallback(() => onYesHandler(), [isOpen]);
34
+
35
+ const onNo = useCallback(() => {
36
+ if (props.onNo) {
37
+ props.onNo();
38
+ setIsOpen(false);
39
+ } else {
40
+ setIsOpen(false);
41
+ }
42
+ }, [isOpen]);
43
+
44
+ const onKeyDown = useCallback(
45
+ (e) => {
46
+ if (e.key === 'Enter') {
47
+ e.preventDefault();
48
+ onYesHandler();
49
+ }
50
+ },
51
+ [isOpen]
52
+ );
53
+
54
+ useEffect(() => {
55
+ window.addEventListener('openconfirmmodal', onOpen);
56
+ return () => {
57
+ window.removeEventListener('openconfirmmodal', onOpen);
58
+ };
59
+ }, []);
60
+
61
+ useEffect(() => {
62
+ if (isOpen) {
63
+ document.addEventListener('keypress', onKeyDown);
64
+ } else {
65
+ document.removeEventListener('keypress', onKeyDown);
66
+ }
67
+ return () => {
68
+ document.removeEventListener('keypress', onKeyDown);
69
+ };
70
+ }, [isOpen, onKeyDown]);
21
71
 
22
72
  const { cancel, yes, no } = copy;
23
73
  const noLabel = props?.noLabel ? props.noLabel : no;
24
74
  const yesLabel = props?.yesLabel ? props.yesLabel : yes;
25
75
 
26
- const modal = (
76
+ const modal = isOpen && (
27
77
  <Modal
28
- onRequestClose={props.onClose}
78
+ onRequestClose={onNo}
29
79
  wrapperStyle={{
30
80
  left: '0px',
31
81
  width: '100%'
@@ -43,20 +93,20 @@ export const ConfirmModal = (props: IConfirmModalProps) => {
43
93
  <div className='confirm-buttons'>
44
94
  {props.showCancel ? (
45
95
  <Button
46
- onClick={props.onClose}
96
+ onClick={onNo}
47
97
  size='large'
48
98
  color='default'>
49
99
  {cancel}
50
100
  </Button>
51
101
  ) : null}
52
102
  <Button
53
- onClick={props.onNo}
103
+ onClick={onNo}
54
104
  size='large'
55
105
  color='default'>
56
106
  {noLabel}
57
107
  </Button>
58
108
  <Button
59
- onClick={props.onYes}
109
+ onClick={onYes}
60
110
  size='large'
61
111
  style='bold'
62
112
  color='primary'>
package/src/index.ts CHANGED
@@ -158,7 +158,7 @@ import ContextMenuItem from './components/context-menu/ContextMenuItem';
158
158
  import ContextMenuTrigger from './components/context-menu/ContextMenuTrigger';
159
159
  import CopyPropIdButton from './components/copy-prop-id-button/CopyPropIdButton';
160
160
  import Submenu from './components/context-menu/SubMenu';
161
- import { ConfirmModal } from './components/confirm-modal/ConfirmModal';
161
+ import { ConfirmModal, IConfirmModalProps } from './components/confirm-modal/ConfirmModal';
162
162
 
163
163
  export {
164
164
  AppWrapper,
@@ -313,5 +313,6 @@ export {
313
313
  ContextMenuTrigger,
314
314
  Submenu,
315
315
  CopyPropIdButton,
316
- ConfirmModal
316
+ ConfirmModal,
317
+ IConfirmModalProps
317
318
  };
@@ -78,22 +78,18 @@ export const getAssets = (api: IImposiumAPI, storyId: string): any => {
78
78
 
79
79
  export const deleteAssets = (api: IImposiumAPI, ids: string[], storyId: string): any => {
80
80
  return (dispatch) => {
81
- if (window.confirm(`Are you sure you want to delete ${ids.length} assets?`)) {
82
- return new Promise<boolean>((resolve, reject) => {
83
- dispatch(toggleLoading(true));
84
- api.deleteAssets(ids)
85
- .then(() => {
86
- dispatch(getAssets(api, storyId));
87
- resolve(true);
88
- })
89
- .catch((errors: Error[]) => {
90
- dispatch(toggleLoading(false));
91
- reject(false);
92
- });
93
- });
94
- } else {
95
- return Promise.resolve(false);
96
- }
81
+ return new Promise<boolean>((resolve, reject) => {
82
+ dispatch(toggleLoading(true));
83
+ api.deleteAssets(ids)
84
+ .then(() => {
85
+ dispatch(getAssets(api, storyId));
86
+ resolve(true);
87
+ })
88
+ .catch((errors: Error[]) => {
89
+ dispatch(toggleLoading(false));
90
+ reject(false);
91
+ });
92
+ });
97
93
  };
98
94
  };
99
95
 
@@ -194,20 +190,18 @@ export const deleteAssetTags = (api: IImposiumAPI, id: string): any => {
194
190
 
195
191
  export const deleteAssetsTags = (api: IImposiumAPI, ids: string[], storyId: string): any => {
196
192
  return (dispatch) => {
197
- if (window.confirm(`Are you sure you want to remove all tags from ${ids.length} assets?`)) {
198
- return new Promise<void>((resolve, reject) => {
199
- dispatch(toggleLoading(true));
200
- api.deleteAssetsTags(ids)
201
- .then(() => {
202
- dispatch(getAssets(api, storyId));
203
- resolve();
204
- })
205
- .catch((errors: Error[]) => {
206
- dispatch(toggleLoading(false));
207
- reject();
208
- });
209
- });
210
- }
193
+ return new Promise<void>((resolve, reject) => {
194
+ dispatch(toggleLoading(true));
195
+ api.deleteAssetsTags(ids)
196
+ .then(() => {
197
+ dispatch(getAssets(api, storyId));
198
+ resolve();
199
+ })
200
+ .catch((errors: Error[]) => {
201
+ dispatch(toggleLoading(false));
202
+ reject();
203
+ });
204
+ });
211
205
  };
212
206
  };
213
207
 
@@ -245,20 +239,18 @@ export const updateAssetStory = (api: IImposiumAPI, id: string, storyId: string)
245
239
 
246
240
  export const decoupleAssets = (api: IImposiumAPI, ids: string[], storyId: string): any => {
247
241
  return (dispatch) => {
248
- if (window.confirm(`Are you sure you want to decouple ${ids.length} assets?`)) {
249
- return new Promise<void>((resolve, reject) => {
250
- dispatch(toggleLoading(true));
251
- api.decoupleAssets(ids)
252
- .then(() => {
253
- dispatch(getAssets(api, storyId));
254
- resolve();
255
- })
256
- .catch((errors: Error[]) => {
257
- dispatch(toggleLoading(false));
258
- reject();
259
- });
260
- });
261
- }
242
+ return new Promise<void>((resolve, reject) => {
243
+ dispatch(toggleLoading(true));
244
+ api.decoupleAssets(ids)
245
+ .then(() => {
246
+ dispatch(getAssets(api, storyId));
247
+ resolve();
248
+ })
249
+ .catch((errors: Error[]) => {
250
+ dispatch(toggleLoading(false));
251
+ reject();
252
+ });
253
+ });
262
254
  };
263
255
  };
264
256