@imposium-hub/components 2.5.11-16 → 2.5.11-3
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/components/assets/AssetsTableNameCell.js +2 -1
- package/dist/cjs/components/assets/AssetsTableNameCell.js.map +1 -1
- package/dist/cjs/components/assets/AssetsTableNameFilter copy.d.ts +2 -0
- package/dist/cjs/components/assets/AssetsTableNameFilter copy.js +94 -0
- package/dist/cjs/components/assets/AssetsTableNameFilter copy.js.map +1 -0
- package/dist/cjs/components/color-field/ColorField.js +14 -9
- package/dist/cjs/components/color-field/ColorField.js.map +1 -1
- package/dist/cjs/components/data-table/DataTable.d.ts +2 -3
- package/dist/cjs/components/data-table/DataTable.js +10 -78
- package/dist/cjs/components/data-table/DataTable.js.map +1 -1
- package/dist/cjs/components/data-table/Paginator.js +14 -35
- package/dist/cjs/components/data-table/Paginator.js.map +1 -1
- package/dist/cjs/components/header/Header.d.ts +0 -2
- package/dist/cjs/components/header/Header.js +8 -39
- package/dist/cjs/components/header/Header.js.map +1 -1
- package/dist/cjs/components/story-previewer/StoryPreviewer.js +0 -9
- package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
- package/dist/cjs/constants/variables.d.ts +0 -3
- package/dist/cjs/constants/variables.js +2 -27
- package/dist/cjs/constants/variables.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -4
- package/dist/cjs/index.js +2 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/redux/actions/asset-filters copy.d.ts +4 -0
- package/dist/cjs/redux/actions/asset-filters copy.js +18 -0
- package/dist/cjs/redux/actions/asset-filters copy.js.map +1 -0
- package/dist/cjs/redux/actions/asset-list.js +42 -33
- package/dist/cjs/redux/actions/asset-list.js.map +1 -1
- package/dist/cjs/redux/actions/story-filters.d.ts +4 -0
- package/dist/cjs/redux/actions/story-filters.js +18 -0
- package/dist/cjs/redux/actions/story-filters.js.map +1 -0
- package/dist/cjs/redux/reducers/asset-filters copy.d.ts +2 -0
- package/dist/cjs/redux/reducers/asset-filters copy.js +39 -0
- package/dist/cjs/redux/reducers/asset-filters copy.js.map +1 -0
- package/dist/cjs/redux/reducers/story-filters.d.ts +2 -0
- package/dist/cjs/redux/reducers/story-filters.js +33 -0
- package/dist/cjs/redux/reducers/story-filters.js.map +1 -0
- package/dist/esm/components/assets/AssetsTableNameCell.js +2 -1
- package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
- package/dist/esm/components/assets/AssetsTableNameFilter copy.d.ts +2 -0
- package/dist/esm/components/assets/AssetsTableNameFilter copy.js +20 -0
- package/dist/esm/components/assets/AssetsTableNameFilter copy.js.map +1 -0
- package/dist/esm/components/color-field/ColorField.js +14 -9
- package/dist/esm/components/color-field/ColorField.js.map +1 -1
- package/dist/esm/components/data-table/DataTable.d.ts +2 -3
- package/dist/esm/components/data-table/DataTable.js +8 -76
- package/dist/esm/components/data-table/DataTable.js.map +1 -1
- package/dist/esm/components/data-table/Paginator.js +14 -35
- package/dist/esm/components/data-table/Paginator.js.map +1 -1
- package/dist/esm/components/header/Header.d.ts +0 -2
- package/dist/esm/components/header/Header.js +7 -30
- package/dist/esm/components/header/Header.js.map +1 -1
- package/dist/esm/components/story-previewer/StoryPreviewer.js +1 -10
- package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
- package/dist/esm/constants/variables.d.ts +0 -3
- package/dist/esm/constants/variables.js +1 -25
- package/dist/esm/constants/variables.js.map +1 -1
- package/dist/esm/index.d.ts +1 -4
- package/dist/esm/index.js +1 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/redux/actions/asset-filters copy.d.ts +4 -0
- package/dist/esm/redux/actions/asset-filters copy.js +13 -0
- package/dist/esm/redux/actions/asset-filters copy.js.map +1 -0
- package/dist/esm/redux/actions/asset-list.js +42 -33
- package/dist/esm/redux/actions/asset-list.js.map +1 -1
- package/dist/esm/redux/actions/story-filters.d.ts +4 -0
- package/{src/redux/actions/story-filter.ts → dist/esm/redux/actions/story-filters.js} +4 -6
- package/dist/esm/redux/actions/story-filters.js.map +1 -0
- package/dist/esm/redux/reducers/asset-filters copy.d.ts +2 -0
- package/dist/esm/redux/reducers/asset-filters copy.js +22 -0
- package/dist/esm/redux/reducers/asset-filters copy.js.map +1 -0
- package/dist/esm/redux/reducers/story-filters.d.ts +2 -0
- package/{src/redux/reducers/story-filter.ts → dist/esm/redux/reducers/story-filters.js} +4 -6
- package/dist/esm/redux/reducers/story-filters.js.map +1 -0
- package/dist/styles.css +3 -0
- package/dist/styles.less +5 -0
- package/less/components/header.less +5 -0
- package/package.json +1 -1
- package/src/components/assets/AssetsTableNameCell.tsx +10 -1
- package/src/components/color-field/ColorField.tsx +17 -16
- package/src/components/data-table/DataTable.tsx +12 -96
- package/src/components/data-table/Paginator.tsx +15 -37
- package/src/components/header/Header.tsx +6 -42
- package/src/components/story-previewer/StoryPreviewer.tsx +1 -26
- package/src/constants/variables.ts +1 -27
- package/src/index.ts +0 -7
- package/src/redux/actions/asset-list.ts +44 -36
- package/src/components/assets/StoryTableNameFilter.tsx +0 -40
|
@@ -29,55 +29,34 @@ const Paginator: React.FC<any> = ({
|
|
|
29
29
|
}) => {
|
|
30
30
|
const [getPageIndex, setPageIndex] = React.useState<number>(pageIndex);
|
|
31
31
|
const [getItemsPerPage, setItemsPerPage] = React.useState<number>(itemsPerPage);
|
|
32
|
-
const [getPageCount, setPageCount] = React.useState<number>(pageCount);
|
|
33
|
-
const [inputPageIndex, setInputPageIndex] = React.useState<string>('');
|
|
34
|
-
const [inputItemsPerPage, setInputItemsPerPage] = React.useState<string>('');
|
|
35
|
-
|
|
36
|
-
React.useEffect(() => {
|
|
37
|
-
if (pageCount === 0) {
|
|
38
|
-
setPageCount(1);
|
|
39
|
-
} else {
|
|
40
|
-
setPageCount(pageCount);
|
|
41
|
-
}
|
|
42
|
-
}, [pageCount]);
|
|
43
32
|
|
|
44
33
|
React.useEffect(() => {
|
|
45
34
|
if (pageIndex !== getPageIndex) {
|
|
46
35
|
setPageIndex(pageIndex);
|
|
47
|
-
setInputPageIndex('');
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (itemsPerPage !== getItemsPerPage) {
|
|
51
|
-
setItemsPerPage(itemsPerPage);
|
|
52
|
-
setInputItemsPerPage('');
|
|
53
36
|
}
|
|
54
|
-
}, [pageIndex
|
|
37
|
+
}, [pageIndex]);
|
|
55
38
|
|
|
56
39
|
const onItemsPerPageBlur = () => {
|
|
57
40
|
clearTimeout(textInputTimeout);
|
|
58
|
-
|
|
59
|
-
onItemsPerPage(inputItemsPerPage);
|
|
60
|
-
}
|
|
41
|
+
onItemsPerPage(getItemsPerPage);
|
|
61
42
|
};
|
|
62
43
|
|
|
63
44
|
const onGoToPageBlur = () => {
|
|
64
45
|
clearTimeout(textInputTimeout);
|
|
65
|
-
|
|
66
|
-
gotoPage(inputPageIndex, pageSize);
|
|
67
|
-
}
|
|
46
|
+
gotoPage(getPageIndex, pageSize);
|
|
68
47
|
};
|
|
69
48
|
|
|
70
49
|
const onItemsPerPageKeyDown = (e) => {
|
|
71
|
-
if (e.key === 'Enter'
|
|
50
|
+
if (e.key === 'Enter') {
|
|
72
51
|
clearTimeout(textInputTimeout);
|
|
73
|
-
onItemsPerPage(
|
|
52
|
+
onItemsPerPage(getItemsPerPage);
|
|
74
53
|
}
|
|
75
54
|
};
|
|
76
55
|
|
|
77
56
|
const onGoToPageKeyDown = (e) => {
|
|
78
|
-
if (e.key === 'Enter'
|
|
57
|
+
if (e.key === 'Enter') {
|
|
79
58
|
clearTimeout(textInputTimeout);
|
|
80
|
-
gotoPage(
|
|
59
|
+
gotoPage(getPageIndex, pageSize);
|
|
81
60
|
}
|
|
82
61
|
};
|
|
83
62
|
|
|
@@ -113,14 +92,14 @@ const Paginator: React.FC<any> = ({
|
|
|
113
92
|
size='small'
|
|
114
93
|
tooltip='Go to last page'
|
|
115
94
|
disabled={!canNextPage}
|
|
116
|
-
onClick={() => gotoPage(
|
|
95
|
+
onClick={() => gotoPage(pageCount, pageSize)}>
|
|
117
96
|
{ICON_ANGLE_DOUBLE_RIGHT}
|
|
118
97
|
</Button>
|
|
119
98
|
|
|
120
99
|
<span>
|
|
121
100
|
{copy.table.page}
|
|
122
101
|
<strong>
|
|
123
|
-
{getPageIndex} of {
|
|
102
|
+
{getPageIndex} of {pageCount}
|
|
124
103
|
</strong>
|
|
125
104
|
|
|
126
105
|
</span>
|
|
@@ -130,19 +109,18 @@ const Paginator: React.FC<any> = ({
|
|
|
130
109
|
className='paginator-input'
|
|
131
110
|
type='number'
|
|
132
111
|
placeholder={getPageIndex.toString()}
|
|
133
|
-
value={inputPageIndex}
|
|
134
112
|
onChange={(e) => {
|
|
135
113
|
const input = e.target.value;
|
|
136
114
|
const inputNum = Number(input);
|
|
137
115
|
let next: number;
|
|
138
116
|
|
|
139
117
|
clearTimeout(textInputTimeout);
|
|
140
|
-
|
|
141
|
-
if (!input || inputNum < 1 || inputNum >
|
|
118
|
+
|
|
119
|
+
if (!input || inputNum < 1 || inputNum > pageCount) {
|
|
142
120
|
return;
|
|
143
121
|
}
|
|
144
122
|
|
|
145
|
-
if (inputNum >= 1 && inputNum <=
|
|
123
|
+
if (inputNum >= 1 && inputNum <= pageCount) {
|
|
146
124
|
next = inputNum;
|
|
147
125
|
}
|
|
148
126
|
|
|
@@ -162,19 +140,19 @@ const Paginator: React.FC<any> = ({
|
|
|
162
140
|
className='paginator-input'
|
|
163
141
|
type='number'
|
|
164
142
|
placeholder={getItemsPerPage.toString()}
|
|
165
|
-
|
|
143
|
+
min={1}
|
|
166
144
|
onChange={(e) => {
|
|
167
145
|
const input = e.target.value;
|
|
168
146
|
const inputNum = Number(input);
|
|
169
147
|
|
|
170
148
|
clearTimeout(textInputTimeout);
|
|
171
149
|
|
|
172
|
-
setInputItemsPerPage(input);
|
|
173
|
-
|
|
174
150
|
if (!input || inputNum < 1) {
|
|
175
151
|
return;
|
|
176
152
|
}
|
|
177
153
|
|
|
154
|
+
setItemsPerPage(inputNum);
|
|
155
|
+
|
|
178
156
|
textInputTimeout = window.setTimeout(
|
|
179
157
|
() => onItemsPerPage(inputNum),
|
|
180
158
|
1000
|
|
@@ -19,8 +19,6 @@ import Select, { createFilter } from 'react-select';
|
|
|
19
19
|
import { setAccessData } from '../../redux/actions/access';
|
|
20
20
|
import { bindActionCreators } from 'redux';
|
|
21
21
|
import { StoryTableTotalRendersCell } from '../assets/StoryTableTotalRendersCell';
|
|
22
|
-
import StoryTableNameFilter from '../assets/StoryTableNameFilter';
|
|
23
|
-
import { updateStoryFilter } from '../../redux/actions/story-filter';
|
|
24
22
|
|
|
25
23
|
export interface IHeaderProps {
|
|
26
24
|
email?: string;
|
|
@@ -40,8 +38,6 @@ export interface IHeaderProps {
|
|
|
40
38
|
hideDocs?: boolean;
|
|
41
39
|
showFTLogo?: boolean;
|
|
42
40
|
access: any;
|
|
43
|
-
storyFilter: any;
|
|
44
|
-
updateStoryFilter(n): any;
|
|
45
41
|
}
|
|
46
42
|
|
|
47
43
|
export interface IHeaderState {
|
|
@@ -176,18 +172,12 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
176
172
|
});
|
|
177
173
|
};
|
|
178
174
|
|
|
179
|
-
private closeStoriesDropDown() {
|
|
180
|
-
this.setState({ showStoriesDropdown: false }, () =>
|
|
181
|
-
this.props.updateStoryFilter({ name: '' })
|
|
182
|
-
);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
175
|
private changeStory = (story: any): void => {
|
|
186
176
|
const { onStoryChange } = this.props;
|
|
187
177
|
|
|
188
178
|
if (typeof onStoryChange === 'function') {
|
|
189
179
|
onStoryChange(story);
|
|
190
|
-
this.
|
|
180
|
+
this.setState({ showStoriesDropdown: false });
|
|
191
181
|
}
|
|
192
182
|
};
|
|
193
183
|
|
|
@@ -300,7 +290,6 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
300
290
|
Header: 'Name',
|
|
301
291
|
width: 115,
|
|
302
292
|
minWidth: 115,
|
|
303
|
-
Search: () => <StoryTableNameFilter />,
|
|
304
293
|
disableSortBy: false
|
|
305
294
|
},
|
|
306
295
|
{
|
|
@@ -524,10 +513,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
524
513
|
ref={this.storyToggleRef}
|
|
525
514
|
onClick={() => {
|
|
526
515
|
this.setState({ showStoriesDropdown: !showStoriesDropdown }, () => {
|
|
527
|
-
if (showStoriesDropdown === false)
|
|
528
|
-
this.props.updateStoryFilter({ name: '' });
|
|
529
|
-
this.getAccessDataHandler();
|
|
530
|
-
}
|
|
516
|
+
if (showStoriesDropdown === false) this.getAccessDataHandler();
|
|
531
517
|
});
|
|
532
518
|
}}>
|
|
533
519
|
<div className='story-name'>
|
|
@@ -547,31 +533,12 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
547
533
|
? [{ id: order, desc: orderDirection === 'desc' }]
|
|
548
534
|
: undefined;
|
|
549
535
|
|
|
550
|
-
|
|
536
|
+
const sortedStories = _.orderBy(
|
|
551
537
|
activeOrganizationBlob.stories,
|
|
552
538
|
['date_modified'],
|
|
553
539
|
['desc']
|
|
554
540
|
);
|
|
555
541
|
|
|
556
|
-
if (this.props.storyFilter && this.props.storyFilter?.name) {
|
|
557
|
-
const storyFilter = this.props.storyFilter.name.toLowerCase();
|
|
558
|
-
|
|
559
|
-
const sortByName = sortedStories.filter((stories) =>
|
|
560
|
-
stories.name.toLowerCase().includes(storyFilter)
|
|
561
|
-
);
|
|
562
|
-
|
|
563
|
-
if (sortByName.length > 0) {
|
|
564
|
-
sortedStories = sortByName;
|
|
565
|
-
} else {
|
|
566
|
-
const sortById = sortedStories.filter((stories) =>
|
|
567
|
-
stories.id.includes(storyFilter)
|
|
568
|
-
);
|
|
569
|
-
if (sortById.length > 0) {
|
|
570
|
-
sortedStories = sortById;
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
|
|
575
542
|
storyMenuInner = (
|
|
576
543
|
<DataTable
|
|
577
544
|
columns={this.getStoriesColumns()}
|
|
@@ -581,7 +548,6 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
581
548
|
itemsPerPage={activeOrganizationBlob.stories.length}
|
|
582
549
|
hidePaginator={true}
|
|
583
550
|
onRowClick={this.changeStory}
|
|
584
|
-
keyboardNav={true}
|
|
585
551
|
/>
|
|
586
552
|
);
|
|
587
553
|
}
|
|
@@ -686,7 +652,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
686
652
|
position='bottomright'
|
|
687
653
|
show={showStoriesDropdown}
|
|
688
654
|
toggleRef={this.storyToggleRef}
|
|
689
|
-
onOutsideClick={() => this.
|
|
655
|
+
onOutsideClick={() => this.setState({ showStoriesDropdown: false })}>
|
|
690
656
|
<div className='stories-menu'>{storyMenuInner}</div>
|
|
691
657
|
</ImposiumDropdown>
|
|
692
658
|
|
|
@@ -706,8 +672,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
|
|
|
706
672
|
const mapDispatchToProps = (dispatch) => {
|
|
707
673
|
return bindActionCreators(
|
|
708
674
|
{
|
|
709
|
-
setAccessData
|
|
710
|
-
updateStoryFilter
|
|
675
|
+
setAccessData
|
|
711
676
|
},
|
|
712
677
|
dispatch
|
|
713
678
|
);
|
|
@@ -717,8 +682,7 @@ const mapStateToProps = (state): any => {
|
|
|
717
682
|
return {
|
|
718
683
|
auth: state.auth,
|
|
719
684
|
story: state.story,
|
|
720
|
-
access: state.access
|
|
721
|
-
storyFilter: state.storyFilter
|
|
685
|
+
access: state.access
|
|
722
686
|
};
|
|
723
687
|
};
|
|
724
688
|
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { IImposiumAPI } from '../../services/API';
|
|
3
|
-
import {
|
|
4
|
-
VARIABLE_TYPES,
|
|
5
|
-
BOOLEAN_DEFAULT_OPTIONS,
|
|
6
|
-
colorPresets,
|
|
7
|
-
formatColor
|
|
8
|
-
} from '../../constants/variables';
|
|
3
|
+
import { VARIABLE_TYPES, BOOLEAN_DEFAULT_OPTIONS } from '../../constants/variables';
|
|
9
4
|
import { OUTPUT_TYPES } from '../../constants/previewer';
|
|
10
5
|
import TextField from '../text-field/TextField';
|
|
11
6
|
import Button from '../button/Button';
|
|
@@ -28,7 +23,6 @@ import LogViewer from '../log-viewer/LogViewer';
|
|
|
28
23
|
import { connect } from 'react-redux';
|
|
29
24
|
import { ICON_DOWNLOAD, ICON_CLIPBOARD } from '../../constants/icons';
|
|
30
25
|
import AudioPlayer from '../players/AudioPlayer';
|
|
31
|
-
import ColorField from '../color-field/ColorField';
|
|
32
26
|
|
|
33
27
|
interface IStoryPreviewerProps {
|
|
34
28
|
api: IImposiumAPI;
|
|
@@ -235,11 +229,6 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
|
|
|
235
229
|
}
|
|
236
230
|
}
|
|
237
231
|
|
|
238
|
-
private colorInputChanged(key, value) {
|
|
239
|
-
const color = formatColor(value);
|
|
240
|
-
this.variableInputChanged(key, color);
|
|
241
|
-
}
|
|
242
|
-
|
|
243
232
|
private variableInputChanged(key, value) {
|
|
244
233
|
const inventory = { ...this.state.inventory };
|
|
245
234
|
inventory[key] = value;
|
|
@@ -407,20 +396,6 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
|
|
|
407
396
|
</FieldWrapper>
|
|
408
397
|
);
|
|
409
398
|
break;
|
|
410
|
-
case VARIABLE_TYPES.COLOR:
|
|
411
|
-
const value = inventory[inv.id] ? inventory[inv.id] : 'rgba(0,0,0,1)';
|
|
412
|
-
fields.push(
|
|
413
|
-
<ColorField
|
|
414
|
-
label={inv.name}
|
|
415
|
-
labelPosition='top'
|
|
416
|
-
enableAlpha={true}
|
|
417
|
-
presetColors={colorPresets}
|
|
418
|
-
value={value}
|
|
419
|
-
pickerPosition='bottom'
|
|
420
|
-
onChange={(v) => this.colorInputChanged(inv.id, v)}
|
|
421
|
-
/>
|
|
422
|
-
);
|
|
423
|
-
break;
|
|
424
399
|
}
|
|
425
400
|
}
|
|
426
401
|
}
|
|
@@ -5,8 +5,7 @@ export const VARIABLE_TYPES = {
|
|
|
5
5
|
ENUM: 'enum',
|
|
6
6
|
IMAGE: 'image',
|
|
7
7
|
VIDEO: 'video',
|
|
8
|
-
AUDIO: 'audio'
|
|
9
|
-
COLOR: 'color'
|
|
8
|
+
AUDIO: 'audio'
|
|
10
9
|
};
|
|
11
10
|
|
|
12
11
|
export const BOOLEAN_DEFAULT_OPTIONS = [
|
|
@@ -19,28 +18,3 @@ export const BOOLEAN_DEFAULT_OPTIONS = [
|
|
|
19
18
|
label: 'False'
|
|
20
19
|
}
|
|
21
20
|
];
|
|
22
|
-
|
|
23
|
-
export const colorPresets = [
|
|
24
|
-
'#D0021B',
|
|
25
|
-
'#F5A623',
|
|
26
|
-
'#F8E71C',
|
|
27
|
-
'#8B572A',
|
|
28
|
-
'#7ED321',
|
|
29
|
-
'#417505',
|
|
30
|
-
'#BD10E0',
|
|
31
|
-
'#9013FE',
|
|
32
|
-
'#4A90E2',
|
|
33
|
-
'#50E3C2',
|
|
34
|
-
'#B8E986',
|
|
35
|
-
'#000000',
|
|
36
|
-
'#4A4A4A',
|
|
37
|
-
'#9B9B9B',
|
|
38
|
-
'#FFFFFF',
|
|
39
|
-
'transparent'
|
|
40
|
-
];
|
|
41
|
-
|
|
42
|
-
export const formatColor = (color) => {
|
|
43
|
-
const { r, g, b, a } = color.rgb;
|
|
44
|
-
const alpha = color.source === 'hsv' ? 1 : a;
|
|
45
|
-
return `rgba(${r},${g},${b},${alpha})`;
|
|
46
|
-
};
|
package/src/index.ts
CHANGED
|
@@ -161,9 +161,6 @@ import CopyPropIdButton from './components/copy-prop-id-button/CopyPropIdButton'
|
|
|
161
161
|
import Submenu from './components/context-menu/SubMenu';
|
|
162
162
|
import { ConfirmModal, IConfirmModalProps } from './components/confirm-modal/ConfirmModal';
|
|
163
163
|
import AssetsTableAssetIdCell from './components/assets/AssetsTableAssetIdCell';
|
|
164
|
-
import { resetStoryFilter, updateStoryFilter } from './redux/actions/story-filter';
|
|
165
|
-
import storyFilter from './redux/reducers/story-filter';
|
|
166
|
-
import StoryTableNameFilter from './components/assets/StoryTableNameFilter';
|
|
167
164
|
|
|
168
165
|
export {
|
|
169
166
|
AppWrapper,
|
|
@@ -222,7 +219,6 @@ export {
|
|
|
222
219
|
AssetsTableGlobalCell,
|
|
223
220
|
AssetsTableStatusCell,
|
|
224
221
|
AssetsTableNameFilter,
|
|
225
|
-
StoryTableNameFilter,
|
|
226
222
|
AssetsTableAssetIdFilter,
|
|
227
223
|
AssetsTableAssetIdCell,
|
|
228
224
|
AssetsTableNameCell,
|
|
@@ -250,8 +246,6 @@ export {
|
|
|
250
246
|
storyDeleted,
|
|
251
247
|
updateFilters,
|
|
252
248
|
resetFilters,
|
|
253
|
-
updateStoryFilter,
|
|
254
|
-
resetStoryFilter,
|
|
255
249
|
getAssets,
|
|
256
250
|
deleteAssets,
|
|
257
251
|
downloadAssets,
|
|
@@ -266,7 +260,6 @@ export {
|
|
|
266
260
|
deselectAsset,
|
|
267
261
|
resetSelection,
|
|
268
262
|
assetFilters,
|
|
269
|
-
storyFilter,
|
|
270
263
|
assetList,
|
|
271
264
|
assetUploads,
|
|
272
265
|
selectedAssets,
|
|
@@ -78,18 +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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
+
}
|
|
93
97
|
};
|
|
94
98
|
};
|
|
95
99
|
|
|
@@ -190,18 +194,20 @@ export const deleteAssetTags = (api: IImposiumAPI, id: string): any => {
|
|
|
190
194
|
|
|
191
195
|
export const deleteAssetsTags = (api: IImposiumAPI, ids: string[], storyId: string): any => {
|
|
192
196
|
return (dispatch) => {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
.
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
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
|
+
}
|
|
205
211
|
};
|
|
206
212
|
};
|
|
207
213
|
|
|
@@ -239,18 +245,20 @@ export const updateAssetStory = (api: IImposiumAPI, id: string, storyId: string)
|
|
|
239
245
|
|
|
240
246
|
export const decoupleAssets = (api: IImposiumAPI, ids: string[], storyId: string): any => {
|
|
241
247
|
return (dispatch) => {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
.
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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
|
+
}
|
|
254
262
|
};
|
|
255
263
|
};
|
|
256
264
|
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import TextField from '../text-field/TextField';
|
|
3
|
-
import { connect } from 'react-redux';
|
|
4
|
-
import { bindActionCreators } from 'redux';
|
|
5
|
-
import { updateStoryFilter } from '../../redux/actions/story-filter';
|
|
6
|
-
|
|
7
|
-
interface IStoryTableNameFilterProps {
|
|
8
|
-
storyFilter: any;
|
|
9
|
-
updateStoryFilter: (filters: any) => any;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
class StoryTableNameFilter extends React.PureComponent<IStoryTableNameFilterProps> {
|
|
13
|
-
public render = (): JSX.Element => {
|
|
14
|
-
const { storyFilter } = this.props;
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<TextField
|
|
18
|
-
className='story-name'
|
|
19
|
-
focusOnMount
|
|
20
|
-
value={storyFilter}
|
|
21
|
-
onChange={(n) => this.props.updateStoryFilter({ name: n })}
|
|
22
|
-
/>
|
|
23
|
-
);
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const mapDispatchToProps = (dispatch): any => {
|
|
28
|
-
return bindActionCreators({ updateStoryFilter }, dispatch);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const mapStateToProps = (state): any => {
|
|
32
|
-
return { storyFilter: state.storyFilter.name };
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const StoryTableNameFilterMemoized = connect(
|
|
36
|
-
mapStateToProps,
|
|
37
|
-
mapDispatchToProps
|
|
38
|
-
)(React.memo(StoryTableNameFilter));
|
|
39
|
-
|
|
40
|
-
export default StoryTableNameFilterMemoized;
|