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

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 (66) hide show
  1. package/dist/cjs/components/assets/AssetsTableGlobalCell.js +1 -2
  2. package/dist/cjs/components/assets/AssetsTableGlobalCell.js.map +1 -1
  3. package/dist/cjs/components/card/Card.d.ts +0 -1
  4. package/dist/cjs/components/card/Card.js +4 -17
  5. package/dist/cjs/components/card/Card.js.map +1 -1
  6. package/dist/cjs/components/confirm-modal/ConfirmModal.js +1 -1
  7. package/dist/cjs/components/data-table/Paginator.js +7 -51
  8. package/dist/cjs/components/data-table/Paginator.js.map +1 -1
  9. package/dist/cjs/components/smpte-field/SMPTEField.d.ts +1 -2
  10. package/dist/cjs/components/smpte-field/SMPTEField.js +3 -9
  11. package/dist/cjs/components/smpte-field/SMPTEField.js.map +1 -1
  12. package/dist/cjs/index.d.ts +1 -3
  13. package/dist/cjs/index.js +2 -6
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/redux/actions/asset-list.js +42 -34
  16. package/dist/cjs/redux/actions/asset-list.js.map +1 -1
  17. package/dist/cjs/services/API.d.ts +0 -3
  18. package/dist/cjs/services/API.js +0 -9
  19. package/dist/cjs/services/API.js.map +1 -1
  20. package/dist/esm/components/assets/AssetsTableDateCell.d.ts +1 -6
  21. package/dist/esm/components/assets/AssetsTableGlobalCell.d.ts +1 -5
  22. package/dist/esm/components/assets/AssetsTableGlobalCell.js +1 -2
  23. package/dist/esm/components/assets/AssetsTableGlobalCell.js.map +1 -1
  24. package/dist/esm/components/assets/AssetsTablePreviewCell.d.ts +1 -16
  25. package/dist/esm/components/assets/AssetsTableStatusCell.d.ts +1 -5
  26. package/dist/esm/components/assets/AssetsTableTagsCell.d.ts +1 -6
  27. package/dist/esm/components/assets/AssetsTableTypeCell.d.ts +1 -5
  28. package/dist/esm/components/assets/AssetsTypeIcon.d.ts +1 -5
  29. package/dist/esm/components/card/Card.d.ts +0 -1
  30. package/dist/esm/components/card/Card.js +4 -16
  31. package/dist/esm/components/card/Card.js.map +1 -1
  32. package/dist/esm/components/confirm-modal/ConfirmModal.js +1 -1
  33. package/dist/esm/components/data-table/Paginator.js +44 -74
  34. package/dist/esm/components/data-table/Paginator.js.map +1 -1
  35. package/dist/esm/components/determinate-loader/DeterminateLoader.stories.d.ts +0 -1
  36. package/dist/esm/components/shortcut-menu/ShortcutMenu.stories.d.ts +0 -1
  37. package/dist/esm/components/smpte-field/SMPTEField.d.ts +1 -2
  38. package/dist/esm/components/smpte-field/SMPTEField.js +3 -9
  39. package/dist/esm/components/smpte-field/SMPTEField.js.map +1 -1
  40. package/dist/esm/components/tabs/Tabs.d.ts +1 -4
  41. package/dist/esm/components/tabs/Tabs.stories.d.ts +1 -4
  42. package/dist/esm/components/tag/Tag.d.ts +1 -9
  43. package/dist/esm/index.d.ts +1 -3
  44. package/dist/esm/index.js +1 -3
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/redux/actions/asset-list.js +42 -34
  47. package/dist/esm/redux/actions/asset-list.js.map +1 -1
  48. package/dist/esm/services/API.d.ts +0 -3
  49. package/dist/esm/services/API.js +0 -9
  50. package/dist/esm/services/API.js.map +1 -1
  51. package/dist/styles.css +2 -13
  52. package/dist/styles.less +3 -16
  53. package/less/components/data-table.less +0 -4
  54. package/less/components/form-field.less +3 -7
  55. package/less/components/tag.less +0 -5
  56. package/package.json +1 -1
  57. package/src/components/assets/AssetsTableGlobalCell.tsx +1 -11
  58. package/src/components/card/Card.tsx +13 -27
  59. package/src/components/confirm-modal/ConfirmModal.tsx +1 -1
  60. package/src/components/data-table/Paginator.tsx +93 -140
  61. package/src/components/smpte-field/SMPTEField.tsx +3 -8
  62. package/src/index.ts +0 -4
  63. package/src/redux/actions/asset-list.ts +44 -37
  64. package/src/services/API.ts +0 -15
  65. package/src/components/assets/AssetsTableAssetIdCell.tsx +0 -65
  66. package/src/components/assets/AssetsTableAssetIdFilter.tsx +0 -40
@@ -11,7 +11,6 @@ interface ICardProps {
11
11
  onOpen?: (e: any) => any;
12
12
  onClose?: (e: any) => any;
13
13
  onToggle?: (toggle: boolean) => any;
14
- buttons?: any[];
15
14
  }
16
15
 
17
16
  interface ICardState {
@@ -98,7 +97,9 @@ class Card extends React.PureComponent<ICardProps, ICardState> {
98
97
 
99
98
  return (
100
99
  <div className={`card ${openClass} ${collapsableClass} ${styleClass}`}>
101
- <div className='card-header'>
100
+ <div
101
+ className='card-header'
102
+ onClick={this.evtHandlers.toggleOpen}>
102
103
  {this.renderTitle(styleClass)}
103
104
  {this.renderButtons()}
104
105
  </div>
@@ -108,36 +109,21 @@ class Card extends React.PureComponent<ICardProps, ICardState> {
108
109
  }
109
110
 
110
111
  public renderButtons() {
111
- const { collapsable, buttons } = this.props;
112
+ const { collapsable } = this.props;
112
113
  const { open } = this.state;
113
114
  const buttonIcon = open ? ICON_CARET_UP : ICON_CARET_DOWN;
114
115
 
115
- let buttonArray: JSX.Element[];
116
-
117
- const toggleBtn = (
118
- <Button
119
- key='toggleOpen'
120
- style='subtle'
121
- onClick={(e) => this.toggleOpen(e)}>
122
- {buttonIcon}
123
- </Button>
124
- );
125
-
126
- if (buttons && buttons.length > 0) {
127
- buttonArray = buttons.map((button) => {
128
- return button;
129
- });
130
- }
131
-
132
116
  if (collapsable) {
133
- if (buttonArray && buttonArray.length > 0) {
134
- buttonArray.push(toggleBtn);
135
- } else {
136
- buttonArray = [toggleBtn];
137
- }
117
+ return (
118
+ <div className='header-buttons'>
119
+ <Button
120
+ style='subtle'
121
+ onClick={this.evtHandlers.toggleOpen}>
122
+ {buttonIcon}
123
+ </Button>
124
+ </div>
125
+ );
138
126
  }
139
-
140
- return <div className='header-buttons'>{buttonArray}</div>;
141
127
  }
142
128
  }
143
129
 
@@ -32,7 +32,7 @@ export const ConfirmModal = (props: IConfirmModalProps) => {
32
32
  }}
33
33
  style={{
34
34
  width: '400px',
35
- height: '12%',
35
+ height: '14%',
36
36
  top: 'calc(50% - 150px)',
37
37
  left: 'calc((100% - 400px) / 2)'
38
38
  }}
@@ -26,149 +26,102 @@ const Paginator: React.FC<any> = ({
26
26
  setPageSize,
27
27
  itemsPerPage,
28
28
  onItemsPerPage
29
- }) => {
30
- const [getPageIndex, setPageIndex] = React.useState<number>(pageIndex);
31
- const [getItemsPerPage, setItemsPerPage] = React.useState<number>(itemsPerPage);
32
-
33
- React.useEffect(() => {
34
- if (pageIndex !== getPageIndex) {
35
- setPageIndex(pageIndex);
36
- }
37
- }, [pageIndex]);
38
-
39
- const onItemsPerPageBlur = () => {
40
- clearTimeout(textInputTimeout);
41
- onItemsPerPage(getItemsPerPage);
42
- };
43
-
44
- const onGoToPageBlur = () => {
45
- clearTimeout(textInputTimeout);
46
- gotoPage(getPageIndex, pageSize);
47
- };
48
-
49
- const onItemsPerPageKeyDown = (e) => {
50
- if (e.key === 'Enter') {
51
- clearTimeout(textInputTimeout);
52
- onItemsPerPage(getItemsPerPage);
53
- }
54
- };
55
-
56
- const onGoToPageKeyDown = (e) => {
57
- if (e.key === 'Enter') {
58
- clearTimeout(textInputTimeout);
59
- gotoPage(getPageIndex, pageSize);
60
- }
61
- };
62
-
63
- return (
64
- <section className='ip-table-pagination'>
29
+ }) => (
30
+ <section className='ip-table-pagination'>
31
+ <span>
32
+ <Button
33
+ style='subtle'
34
+ size='small'
35
+ tooltip='Go to first page'
36
+ disabled={!canPreviousPage}
37
+ onClick={() => gotoPage(1, pageSize)}>
38
+ {ICON_ANGLE_DOUBLE_LEFT}
39
+ </Button>
40
+ <Button
41
+ style='subtle'
42
+ size='small'
43
+ tooltip='Go to previous page'
44
+ disabled={!canPreviousPage}
45
+ onClick={() => previousPage()}>
46
+ {ICON_ANGLE_LEFT}
47
+ </Button>
48
+ <Button
49
+ style='subtle'
50
+ size='small'
51
+ tooltip='Go to next page'
52
+ disabled={!canNextPage}
53
+ onClick={() => nextPage()}>
54
+ {ICON_ANGLE_RIGHT}
55
+ </Button>
56
+ <Button
57
+ style='subtle'
58
+ size='small'
59
+ tooltip='Go to last page'
60
+ disabled={!canNextPage}
61
+ onClick={() => gotoPage(pageCount, pageSize)}>
62
+ {ICON_ANGLE_DOUBLE_RIGHT}
63
+ </Button>
64
+ &nbsp;&nbsp;
65
65
  <span>
66
- <Button
67
- style='subtle'
68
- size='small'
69
- tooltip='Go to first page'
70
- disabled={!canPreviousPage}
71
- onClick={() => gotoPage(1, pageSize)}>
72
- {ICON_ANGLE_DOUBLE_LEFT}
73
- </Button>
74
- <Button
75
- style='subtle'
76
- size='small'
77
- tooltip='Go to previous page'
78
- disabled={!canPreviousPage}
79
- onClick={() => previousPage()}>
80
- {ICON_ANGLE_LEFT}
81
- </Button>
82
- <Button
83
- style='subtle'
84
- size='small'
85
- tooltip='Go to next page'
86
- disabled={!canNextPage}
87
- onClick={() => nextPage()}>
88
- {ICON_ANGLE_RIGHT}
89
- </Button>
90
- <Button
91
- style='subtle'
92
- size='small'
93
- tooltip='Go to last page'
94
- disabled={!canNextPage}
95
- onClick={() => gotoPage(pageCount, pageSize)}>
96
- {ICON_ANGLE_DOUBLE_RIGHT}
97
- </Button>
98
- &nbsp;&nbsp;
99
- <span>
100
- {copy.table.page}&nbsp;&nbsp;
101
- <strong>
102
- {getPageIndex} of {pageCount}
103
- </strong>
104
- &nbsp;&nbsp;
105
- </span>
106
- <span>
107
- {copy.table.goToPage}&nbsp;&nbsp;
108
- <input
109
- className='paginator-input'
110
- type='number'
111
- placeholder={getPageIndex.toString()}
112
- onChange={(e) => {
113
- const input = e.target.value;
114
- const inputNum = Number(input);
115
- let next: number;
116
-
117
- clearTimeout(textInputTimeout);
118
-
119
- if (!input || inputNum < 1 || inputNum > pageCount) {
120
- return;
121
- }
122
-
123
- if (inputNum >= 1 && inputNum <= pageCount) {
124
- next = inputNum;
125
- }
126
-
127
- textInputTimeout = window.setTimeout(
128
- () => gotoPage(next, pageSize),
129
- 1000
130
- );
131
- }}
132
- onBlur={() => onGoToPageBlur()}
133
- onKeyDown={(e) => onGoToPageKeyDown(e)}
134
- />
135
- </span>
66
+ {copy.table.page}&nbsp;&nbsp;
67
+ <strong>
68
+ {pageIndex} of {pageCount}
69
+ </strong>
136
70
  &nbsp;&nbsp;
137
- <span>
138
- {copy.table.itemsPerPage}&nbsp;&nbsp;
139
- <input
140
- className='paginator-input'
141
- type='number'
142
- placeholder={getItemsPerPage.toString()}
143
- min={1}
144
- onChange={(e) => {
145
- const input = e.target.value;
146
- const inputNum = Number(input);
147
-
148
- clearTimeout(textInputTimeout);
149
-
150
- if (!input || inputNum < 1) {
151
- return;
152
- }
153
-
154
- setItemsPerPage(inputNum);
155
-
156
- textInputTimeout = window.setTimeout(
157
- () => onItemsPerPage(inputNum),
158
- 1000
159
- );
160
- }}
161
- onBlur={() => onItemsPerPageBlur()}
162
- onKeyDown={(e) => onItemsPerPageKeyDown(e)}
163
- />
164
- </span>
165
71
  </span>
166
-
167
- <span className='total-assets'>
168
- {copy.table.total}&nbsp;&nbsp;<strong>{totalItems || 0}</strong>
72
+ <span>
73
+ {copy.table.goToPage}&nbsp;&nbsp;
74
+ <input
75
+ className='paginator-input'
76
+ type='number'
77
+ placeholder={pageIndex}
78
+ onChange={(e) => {
79
+ const input = e.target.value;
80
+ const inputNum = Number(input);
81
+ let next: number;
82
+
83
+ clearTimeout(textInputTimeout);
84
+
85
+ if (!input || inputNum < 1 || inputNum > pageCount) {
86
+ return;
87
+ }
88
+
89
+ if (inputNum >= 1 && inputNum <= pageCount) {
90
+ next = inputNum;
91
+ }
92
+
93
+ textInputTimeout = window.setTimeout(() => gotoPage(next, pageSize), 300);
94
+ }}
95
+ />
169
96
  </span>
170
- </section>
171
- );
172
- };
97
+ &nbsp;&nbsp;
98
+ <span>
99
+ {copy.table.itemsPerPage}&nbsp;&nbsp;
100
+ <input
101
+ className='paginator-input'
102
+ type='number'
103
+ placeholder={itemsPerPage}
104
+ min={1}
105
+ onChange={(e) => {
106
+ const input = e.target.value;
107
+ const inputNum = Number(input);
108
+
109
+ clearTimeout(textInputTimeout);
110
+
111
+ if (!input || inputNum < 1) {
112
+ return;
113
+ }
114
+
115
+ textInputTimeout = window.setTimeout(() => onItemsPerPage(inputNum), 300);
116
+ }}
117
+ />
118
+ </span>
119
+ </span>
120
+
121
+ <span className='total-assets'>
122
+ {copy.table.total}&nbsp;&nbsp;<strong>{totalItems || 0}</strong>
123
+ </span>
124
+ </section>
125
+ );
173
126
 
174
127
  export default Paginator;
@@ -12,7 +12,6 @@ interface ISMPTEFieldProps {
12
12
  width?: string | number;
13
13
  onChange?(e): void;
14
14
  onBlur?(e): void;
15
- onError?(e): void;
16
15
  info?: string;
17
16
  labelPosition?: string;
18
17
  labelWidth?: string | number;
@@ -76,7 +75,7 @@ class SMPTEField extends React.PureComponent<ISMPTEFieldProps, ISMPTEFieldState>
76
75
 
77
76
  private onBlur(e?) {
78
77
  const val = e ? e.target.value : this.inputRef.current.value;
79
- const isValid = this.SMTPEValidator(val);
78
+ const isValid = this.smptValidator(val);
80
79
 
81
80
  if (e && e.key === 'Enter') {
82
81
  this.setDuration(isValid, val);
@@ -89,12 +88,10 @@ class SMPTEField extends React.PureComponent<ISMPTEFieldProps, ISMPTEFieldState>
89
88
 
90
89
  private onChange() {
91
90
  const val = this.inputRef.current.value;
92
- const isValid = this.SMTPEValidator(val);
91
+ const isValid = this.smptValidator(val);
93
92
 
94
93
  if (isValid) {
95
94
  this.props.onChange(val);
96
- } else {
97
- this.props.onError(isValid);
98
95
  }
99
96
  }
100
97
 
@@ -104,13 +101,11 @@ class SMPTEField extends React.PureComponent<ISMPTEFieldProps, ISMPTEFieldState>
104
101
  const smpte = getSMPTE(frameRate, val);
105
102
  if (smpte && this.props.onBlur) {
106
103
  this.props.onBlur(smpte);
107
- } else {
108
- this.props.onError(isValid);
109
104
  }
110
105
  }
111
106
  }
112
107
 
113
- private SMTPEValidator(val) {
108
+ private smptValidator(val) {
114
109
  const isValidSMPTETimeCode = new RegExp(this.regex);
115
110
  const isValid = isValidSMPTETimeCode.test(val);
116
111
  const errorMsg = isValid ? null : TIMECODE.ERROR;
package/src/index.ts CHANGED
@@ -40,7 +40,6 @@ import AssetField from './components/assets/AssetField';
40
40
  import AssetsTableDropzone from './components/assets/AssetsTableDropzone';
41
41
  import AssetsTableNameCell from './components/assets/AssetsTableNameCell';
42
42
  import AssetsTableNameFilter from './components/assets/AssetsTableNameFilter';
43
- import AssetsTableAssetIdFilter from './components/assets/AssetsTableAssetIdFilter';
44
43
  import AssetsTableSelectCell from './components/assets/AssetsTableSelectCell';
45
44
  import AssetsTableSelectFilter from './components/assets/AssetsTableSelectFilter';
46
45
  import AssetsTableTagsCell from './components/assets/AssetsTableTagsCell';
@@ -160,7 +159,6 @@ import ContextMenuTrigger from './components/context-menu/ContextMenuTrigger';
160
159
  import CopyPropIdButton from './components/copy-prop-id-button/CopyPropIdButton';
161
160
  import Submenu from './components/context-menu/SubMenu';
162
161
  import { ConfirmModal } from './components/confirm-modal/ConfirmModal';
163
- import AssetsTableAssetIdCell from './components/assets/AssetsTableAssetIdCell';
164
162
 
165
163
  export {
166
164
  AppWrapper,
@@ -219,8 +217,6 @@ export {
219
217
  AssetsTableGlobalCell,
220
218
  AssetsTableStatusCell,
221
219
  AssetsTableNameFilter,
222
- AssetsTableAssetIdFilter,
223
- AssetsTableAssetIdCell,
224
220
  AssetsTableNameCell,
225
221
  AssetsTableDurationCell,
226
222
  AssetsTableRateCell,
@@ -78,19 +78,22 @@ 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
- return new Promise<boolean>((resolve, reject) => {
82
- dispatch(toggleLoading(true));
83
- api.deleteAssets(ids)
84
- .then(() => {
85
- dispatch(getAssets(api, storyId));
86
- dispatch(toggleLoading(false));
87
- resolve(true);
88
- })
89
- .catch((errors: Error[]) => {
90
- dispatch(toggleLoading(false));
91
- reject(false);
92
- });
93
- });
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
+ }
94
97
  };
95
98
  };
96
99
 
@@ -191,18 +194,20 @@ export const deleteAssetTags = (api: IImposiumAPI, id: string): any => {
191
194
 
192
195
  export const deleteAssetsTags = (api: IImposiumAPI, ids: string[], storyId: string): any => {
193
196
  return (dispatch) => {
194
- return new Promise<void>((resolve, reject) => {
195
- dispatch(toggleLoading(true));
196
- api.deleteAssetsTags(ids)
197
- .then(() => {
198
- dispatch(getAssets(api, storyId));
199
- resolve();
200
- })
201
- .catch((errors: Error[]) => {
202
- dispatch(toggleLoading(false));
203
- reject();
204
- });
205
- });
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
+ }
206
211
  };
207
212
  };
208
213
 
@@ -240,18 +245,20 @@ export const updateAssetStory = (api: IImposiumAPI, id: string, storyId: string)
240
245
 
241
246
  export const decoupleAssets = (api: IImposiumAPI, ids: string[], storyId: string): any => {
242
247
  return (dispatch) => {
243
- return new Promise<void>((resolve, reject) => {
244
- dispatch(toggleLoading(true));
245
- api.decoupleAssets(ids)
246
- .then(() => {
247
- dispatch(getAssets(api, storyId));
248
- resolve();
249
- })
250
- .catch((errors: Error[]) => {
251
- dispatch(toggleLoading(false));
252
- reject();
253
- });
254
- });
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
+ }
255
262
  };
256
263
  };
257
264
 
@@ -153,9 +153,6 @@ interface ITTSOptions {
153
153
  voice: string;
154
154
  service: string;
155
155
  model?: string;
156
- speed?: string;
157
- pause_silences?: boolean;
158
- minimum_silence_length?: number;
159
156
  }
160
157
 
161
158
  interface ICancelTokenCache {
@@ -1610,18 +1607,6 @@ export default class API {
1610
1607
  url += `&model=${options.model}`;
1611
1608
  }
1612
1609
 
1613
- if (options.speed) {
1614
- url += `&speed=${options.speed}`;
1615
- }
1616
-
1617
- if (options.pause_silences) {
1618
- url += `&pause_silences=${options.pause_silences}`;
1619
- }
1620
-
1621
- if (options.minimum_silence_length) {
1622
- url += `&minimum_silence_length=${options.minimum_silence_length}`;
1623
- }
1624
-
1625
1610
  return this.doRequest({
1626
1611
  url,
1627
1612
  method: 'GET',
@@ -1,65 +0,0 @@
1
- import * as React from 'react';
2
- import { copying } from '../../constants/copy';
3
- import { updateFilters } from '../../redux/actions/asset-filters';
4
- import { connect } from 'react-redux';
5
- import { bindActionCreators } from 'redux';
6
-
7
- interface IAssetsTableAssetIdCellProps {
8
- cell: any;
9
- onNotification?: (e) => void;
10
- onError?: (e) => void;
11
- }
12
-
13
- const AssetsTableAssetIdCell: React.FC<IAssetsTableAssetIdCellProps> = (
14
- props: IAssetsTableAssetIdCellProps
15
- ) => {
16
- const {
17
- onNotification,
18
- onError,
19
- cell: {
20
- row: {
21
- original: { id }
22
- }
23
- }
24
- } = props;
25
- console.log('AssetsTableAssetIdCell');
26
- console.log(id);
27
-
28
- const copyToClipboard = (e) => {
29
- navigator.clipboard.writeText(e.target.textContent).then(
30
- () => {
31
- if (onNotification) {
32
- onNotification(`${copying.copied}`);
33
- }
34
- },
35
- () => {
36
- if (onError) {
37
- onError(`${copying.error}`);
38
- }
39
- }
40
- );
41
- };
42
-
43
- return (
44
- <div
45
- key={id}
46
- className='imposium-asset-id'
47
- onClick={(e) => copyToClipboard(e)}>
48
- {id}
49
- </div>
50
- );
51
- };
52
-
53
- const mapDispatchToProps = (dispatch): any => {
54
- return bindActionCreators({ updateFilters }, dispatch);
55
- };
56
-
57
- const mapStateToProps = (state): any => {
58
- return { assetFilters: state.assetFilters };
59
- };
60
-
61
- const AssetsTableAssetIdCellMemoized = connect(
62
- mapStateToProps,
63
- mapDispatchToProps
64
- )(React.memo(AssetsTableAssetIdCell));
65
- export default AssetsTableAssetIdCellMemoized;
@@ -1,40 +0,0 @@
1
- import * as React from 'react';
2
- import TextField from '../text-field/TextField';
3
- import { updateFilters } from '../../redux/actions/asset-filters';
4
- import { connect } from 'react-redux';
5
- import { bindActionCreators } from 'redux';
6
-
7
- interface IAssetsTableAssetIdFilterProps {
8
- assetFilters: any;
9
- updateFilters: (filters: any) => any;
10
- }
11
-
12
- class AssetsTableAssetIdFilter extends React.PureComponent<IAssetsTableAssetIdFilterProps> {
13
- public render = (): JSX.Element => {
14
- const { assetFilters } = this.props;
15
-
16
- return (
17
- <TextField
18
- className='asset-id'
19
- submittable
20
- submittableType='search'
21
- value={assetFilters.id}
22
- doSubmit={(n) => this.props.updateFilters({ id: n })}
23
- />
24
- );
25
- };
26
- }
27
-
28
- const mapDispatchToProps = (dispatch): any => {
29
- return bindActionCreators({ updateFilters }, dispatch);
30
- };
31
-
32
- const mapStateToProps = (state): any => {
33
- return { assetFilters: state.assetFilters };
34
- };
35
-
36
- const AssetsTableAssetIdFilterMemoized = connect(
37
- mapStateToProps,
38
- mapDispatchToProps
39
- )(React.memo(AssetsTableAssetIdFilter));
40
- export default AssetsTableAssetIdFilterMemoized;