@webiny/app-admin 0.0.0-unstable.d65ec29d44 → 0.0.0-unstable.da99e0b846
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/assets/icons/add-18px.svg +1 -1
- package/assets/icons/arrow_drop_down-24px.svg +1 -1
- package/assets/icons/filter-24px.svg +1 -1
- package/assets/icons/highlight-24px.svg +1 -1
- package/assets/icons/info.svg +1 -1
- package/assets/icons/insert_drive_file-24px.svg +1 -1
- package/assets/icons/insert_photo-24px.svg +1 -1
- package/assets/icons/label-24px.svg +1 -1
- package/assets/icons/round-account_circle-24px.svg +1 -1
- package/assets/icons/round-arrow_drop_down-24px.svg +1 -1
- package/assets/icons/round-help-24px.svg +1 -1
- package/assets/icons/round-settings-24px.svg +1 -1
- package/assets/icons/today-24px.svg +1 -1
- package/assets/icons/touch_app.svg +1 -1
- package/base/Base.js +6 -25
- package/base/Base.js.map +1 -1
- package/base/plugins/AddGraphQLQuerySelection.js +5 -1
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/ui/FileManager.d.ts +67 -0
- package/base/ui/FileManager.js +61 -0
- package/base/ui/FileManager.js.map +1 -0
- package/components/AppInstaller/AppInstaller.js +2 -34
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.js +2 -12
- package/components/AppInstaller/Sidebar.js.map +1 -1
- package/components/AppInstaller/styled.d.ts +17 -5
- package/components/AppInstaller/useInstaller.d.ts +1 -7
- package/components/AppInstaller/useInstaller.js +16 -71
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/EmptyView.js +1 -1
- package/components/EmptyView.js.map +1 -1
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +14 -0
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -1
- package/components/FileManager/BottomInfoBar/UploadStatus.js +9 -0
- package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -1
- package/components/FileManager/BottomInfoBar.js +12 -0
- package/components/FileManager/BottomInfoBar.js.map +1 -1
- package/components/FileManager/DropFilesHere.js +12 -3
- package/components/FileManager/DropFilesHere.js.map +1 -1
- package/components/FileManager/File.js +18 -5
- package/components/FileManager/File.js.map +1 -1
- package/components/FileManager/FileDetails/Name.js +75 -45
- package/components/FileManager/FileDetails/Name.js.map +1 -1
- package/components/FileManager/FileDetails/Tags.js +138 -85
- package/components/FileManager/FileDetails/Tags.js.map +1 -1
- package/components/FileManager/FileDetails.js +161 -94
- package/components/FileManager/FileDetails.js.map +1 -1
- package/components/FileManager/FileManagerContext.js +45 -12
- package/components/FileManager/FileManagerContext.js.map +1 -1
- package/components/FileManager/FileManagerView.js +295 -185
- package/components/FileManager/FileManagerView.js.map +1 -1
- package/components/FileManager/LeftSidebar.js +29 -10
- package/components/FileManager/LeftSidebar.js.map +1 -1
- package/components/FileManager/NoPermissionView.js +13 -0
- package/components/FileManager/NoPermissionView.js.map +1 -1
- package/components/FileManager/NoResults.js +6 -0
- package/components/FileManager/NoResults.js.map +1 -1
- package/components/FileManager/getFileTypePlugin.js +15 -9
- package/components/FileManager/getFileTypePlugin.js.map +1 -1
- package/components/FileManager/getFileUploader.js +5 -0
- package/components/FileManager/getFileUploader.js.map +1 -1
- package/components/FileManager/graphql.js +14 -3
- package/components/FileManager/graphql.js.map +1 -1
- package/components/FileManager/outputFileSelectionError.js +14 -0
- package/components/FileManager/outputFileSelectionError.js.map +1 -1
- package/components/FileManager.js +43 -17
- package/components/FileManager.js.map +1 -1
- package/components/FloatingActionButton.js +2 -2
- package/components/FloatingActionButton.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.js +2 -2
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/SearchUI.js +2 -2
- package/components/SearchUI.js.map +1 -1
- package/components/SingleImageUpload.d.ts +1 -1
- package/components/SingleImageUpload.js +2 -2
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.js +1 -0
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/index.d.ts +1 -1
- package/components/index.js +1 -1
- package/components/index.js.map +1 -1
- package/index.d.ts +2 -3
- package/index.js +1 -13
- package/index.js.map +1 -1
- package/package.json +19 -29
- package/plugins/FileManagerFileTypePlugin.js +15 -0
- package/plugins/FileManagerFileTypePlugin.js.map +1 -1
- package/plugins/fileManager/fileDefault.js +6 -0
- package/plugins/fileManager/fileDefault.js.map +1 -1
- package/plugins/fileManager/fileImage/DeleteAction.js +40 -16
- package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
- package/plugins/fileManager/fileImage/EditAction.js +58 -22
- package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
- package/plugins/fileManager/fileImage/index.js +8 -0
- package/plugins/fileManager/fileImage/index.js.map +1 -1
- package/plugins/fileManager/index.js +2 -0
- package/plugins/fileManager/index.js.map +1 -1
- package/plugins/globalSearch/SearchBar.js +2 -2
- package/plugins/globalSearch/SearchBar.js.map +1 -1
- package/plugins/globalSearch/SearchBarDropdown.js +2 -2
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
- package/plugins/globalSearch/styled.d.ts +13 -4
- package/types.d.ts +23 -27
- package/types.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -5
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.d.ts +23 -16
- package/ui/views/AdminView/components/Hamburger.js +2 -2
- package/ui/views/AdminView/components/Hamburger.js.map +1 -1
- package/ui/views/OverlayView/HeaderElement.js +1 -1
- package/ui/views/OverlayView/HeaderElement.js.map +1 -1
- package/ui/views/OverlayView.js +1 -1
- package/ui/views/OverlayView.js.map +1 -1
|
@@ -1,49 +1,90 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
4
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.default = void 0;
|
|
11
|
+
|
|
9
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
+
|
|
10
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
11
16
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
17
|
+
|
|
12
18
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
19
|
+
|
|
13
20
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
21
|
+
|
|
14
22
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
23
|
+
|
|
15
24
|
var _react = _interopRequireWildcard(require("react"));
|
|
25
|
+
|
|
16
26
|
var _emotion = require("emotion");
|
|
27
|
+
|
|
17
28
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
29
|
+
|
|
18
30
|
var _reactButterfiles = _interopRequireDefault(require("react-butterfiles"));
|
|
31
|
+
|
|
19
32
|
var _Button = require("@webiny/ui/Button");
|
|
33
|
+
|
|
20
34
|
var _Icon = require("@webiny/ui/Icon");
|
|
35
|
+
|
|
21
36
|
var _File = _interopRequireDefault(require("./File"));
|
|
37
|
+
|
|
22
38
|
var _reactHooks = require("@apollo/react-hooks");
|
|
39
|
+
|
|
23
40
|
var _graphql = require("./graphql");
|
|
41
|
+
|
|
24
42
|
var _getFileTypePlugin = _interopRequireDefault(require("./getFileTypePlugin"));
|
|
43
|
+
|
|
25
44
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
45
|
+
|
|
26
46
|
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
47
|
+
|
|
27
48
|
var _getFileUploader = _interopRequireDefault(require("./getFileUploader"));
|
|
49
|
+
|
|
28
50
|
var _outputFileSelectionError = require("./outputFileSelectionError");
|
|
51
|
+
|
|
29
52
|
var _DropFilesHere = _interopRequireDefault(require("./DropFilesHere"));
|
|
53
|
+
|
|
30
54
|
var _NoResults = _interopRequireDefault(require("./NoResults"));
|
|
55
|
+
|
|
31
56
|
var _FileDetails = _interopRequireDefault(require("./FileDetails"));
|
|
57
|
+
|
|
32
58
|
var _LeftSidebar = _interopRequireDefault(require("./LeftSidebar"));
|
|
59
|
+
|
|
33
60
|
var _BottomInfoBar = _interopRequireDefault(require("./BottomInfoBar"));
|
|
61
|
+
|
|
34
62
|
var _OverlayLayout = require("../OverlayLayout");
|
|
63
|
+
|
|
35
64
|
var _useSnackbar2 = require("../../hooks/useSnackbar");
|
|
65
|
+
|
|
36
66
|
var _Scrollbar = require("@webiny/ui/Scrollbar");
|
|
67
|
+
|
|
37
68
|
var _Progress = require("@webiny/ui/Progress");
|
|
69
|
+
|
|
38
70
|
var _i18n = require("@webiny/app/i18n");
|
|
71
|
+
|
|
39
72
|
var _appSecurity = require("@webiny/app-security");
|
|
73
|
+
|
|
40
74
|
var _reactHotkeyz = require("react-hotkeyz");
|
|
75
|
+
|
|
41
76
|
var _FileManagerContext = require("./FileManagerContext");
|
|
77
|
+
|
|
42
78
|
var _roundSearch24px = require("./icons/round-search-24px.svg");
|
|
79
|
+
|
|
43
80
|
var _roundCloud_upload24px = require("./icons/round-cloud_upload-24px.svg");
|
|
81
|
+
|
|
44
82
|
var _NoPermissionView = _interopRequireDefault(require("./NoPermissionView"));
|
|
83
|
+
|
|
45
84
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
85
|
+
|
|
46
86
|
var t = _i18n.i18n.ns("app-admin/file-manager/file-manager-view");
|
|
87
|
+
|
|
47
88
|
var style = {
|
|
48
89
|
draggingFeedback: /*#__PURE__*/(0, _emotion.css)({
|
|
49
90
|
position: "fixed",
|
|
@@ -111,16 +152,20 @@ var FileList = /*#__PURE__*/(0, _styled.default)("div", {
|
|
|
111
152
|
})({
|
|
112
153
|
width: "100%",
|
|
113
154
|
display: "grid",
|
|
155
|
+
|
|
114
156
|
/* define the number of grid columns */
|
|
115
157
|
gridTemplateColumns: "repeat( auto-fill, minmax(220px, 1fr) )",
|
|
116
158
|
marginBottom: 95
|
|
117
159
|
});
|
|
160
|
+
|
|
118
161
|
var renderFile = function renderFile(props) {
|
|
119
162
|
var file = props.file;
|
|
120
163
|
var plugin = (0, _getFileTypePlugin.default)(file);
|
|
164
|
+
|
|
121
165
|
if (!plugin) {
|
|
122
166
|
return null;
|
|
123
167
|
}
|
|
168
|
+
|
|
124
169
|
return /*#__PURE__*/_react.default.createElement(_File.default, Object.assign({}, props, {
|
|
125
170
|
key: file.id
|
|
126
171
|
}), plugin.render({
|
|
@@ -131,16 +176,20 @@ var renderFile = function renderFile(props) {
|
|
|
131
176
|
file: file
|
|
132
177
|
}));
|
|
133
178
|
};
|
|
179
|
+
|
|
134
180
|
var renderEmpty = function renderEmpty(_ref) {
|
|
135
181
|
var hasPreviouslyUploadedFiles = _ref.hasPreviouslyUploadedFiles,
|
|
136
|
-
|
|
137
|
-
|
|
182
|
+
browseFiles = _ref.browseFiles,
|
|
183
|
+
fmFilePermission = _ref.fmFilePermission;
|
|
184
|
+
|
|
138
185
|
if (!fmFilePermission) {
|
|
139
186
|
return /*#__PURE__*/_react.default.createElement(_NoPermissionView.default, null);
|
|
140
187
|
}
|
|
188
|
+
|
|
141
189
|
if (hasPreviouslyUploadedFiles) {
|
|
142
190
|
return /*#__PURE__*/_react.default.createElement(_NoResults.default, null);
|
|
143
191
|
}
|
|
192
|
+
|
|
144
193
|
return /*#__PURE__*/_react.default.createElement(_DropFilesHere.default, {
|
|
145
194
|
empty: true,
|
|
146
195
|
onClick: function onClick() {
|
|
@@ -148,34 +197,36 @@ var renderEmpty = function renderEmpty(_ref) {
|
|
|
148
197
|
}
|
|
149
198
|
});
|
|
150
199
|
};
|
|
200
|
+
|
|
151
201
|
var FileManagerView = function FileManagerView(props) {
|
|
152
202
|
var onClose = props.onClose,
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
multipleMaxSize = props.multipleMaxSize,
|
|
160
|
-
onUploadCompletion = props.onUploadCompletion;
|
|
203
|
+
onChange = props.onChange,
|
|
204
|
+
accept = props.accept,
|
|
205
|
+
_props$multiple = props.multiple,
|
|
206
|
+
multiple = _props$multiple === void 0 ? false : _props$multiple,
|
|
207
|
+
onUploadCompletion = props.onUploadCompletion;
|
|
208
|
+
|
|
161
209
|
var _useFileManager = (0, _FileManagerContext.useFileManager)(),
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
210
|
+
selected = _useFileManager.selected,
|
|
211
|
+
toggleSelected = _useFileManager.toggleSelected,
|
|
212
|
+
dragging = _useFileManager.dragging,
|
|
213
|
+
setDragging = _useFileManager.setDragging,
|
|
214
|
+
uploading = _useFileManager.uploading,
|
|
215
|
+
setUploading = _useFileManager.setUploading,
|
|
216
|
+
_showFileDetails = _useFileManager.showFileDetails,
|
|
217
|
+
showingFileDetails = _useFileManager.showingFileDetails,
|
|
218
|
+
queryParams = _useFileManager.queryParams,
|
|
219
|
+
setQueryParams = _useFileManager.setQueryParams,
|
|
220
|
+
hasPreviouslyUploadedFiles = _useFileManager.hasPreviouslyUploadedFiles,
|
|
221
|
+
setHasPreviouslyUploadedFiles = _useFileManager.setHasPreviouslyUploadedFiles;
|
|
222
|
+
|
|
174
223
|
var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
|
|
175
|
-
|
|
224
|
+
showSnackbar = _useSnackbar.showSnackbar;
|
|
225
|
+
|
|
176
226
|
var _useSecurity = (0, _appSecurity.useSecurity)(),
|
|
177
|
-
|
|
178
|
-
|
|
227
|
+
identity = _useSecurity.identity,
|
|
228
|
+
getPermission = _useSecurity.getPermission;
|
|
229
|
+
|
|
179
230
|
var fmFilePermission = (0, _react.useMemo)(function () {
|
|
180
231
|
return getPermission("fm.file");
|
|
181
232
|
}, [identity]);
|
|
@@ -184,12 +235,15 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
184
235
|
if (!fmFilePermission) {
|
|
185
236
|
return false;
|
|
186
237
|
}
|
|
238
|
+
|
|
187
239
|
if (fmFilePermission.own) {
|
|
188
240
|
return true;
|
|
189
241
|
}
|
|
242
|
+
|
|
190
243
|
if (typeof fmFilePermission.rwd === "string") {
|
|
191
244
|
return fmFilePermission.rwd.includes("w");
|
|
192
245
|
}
|
|
246
|
+
|
|
193
247
|
return true;
|
|
194
248
|
}, [fmFilePermission]);
|
|
195
249
|
var canEdit = (0, _react.useCallback)(function (item) {
|
|
@@ -197,63 +251,80 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
197
251
|
if (!fmFilePermission) {
|
|
198
252
|
return false;
|
|
199
253
|
}
|
|
254
|
+
|
|
200
255
|
var creatorId = (0, _get.default)(item, "createdBy.id");
|
|
256
|
+
|
|
201
257
|
if (fmFilePermission.own && creatorId) {
|
|
202
258
|
var identityId = identity ? identity.id || identity.login : null;
|
|
203
259
|
return creatorId === identityId;
|
|
204
260
|
}
|
|
261
|
+
|
|
205
262
|
if (typeof fmFilePermission.rwd === "string") {
|
|
206
263
|
return fmFilePermission.rwd.includes("w");
|
|
207
264
|
}
|
|
265
|
+
|
|
208
266
|
return true;
|
|
209
267
|
}, [fmFilePermission]);
|
|
210
|
-
var searchOnChange = (0, _react.useCallback)(
|
|
211
|
-
// @ts-ignore
|
|
268
|
+
var searchOnChange = (0, _react.useCallback)( // @ts-ignore
|
|
212
269
|
(0, _debounce.default)(function (search) {
|
|
213
270
|
return setQueryParams({
|
|
214
271
|
search: search
|
|
215
272
|
});
|
|
216
273
|
}, 500), []);
|
|
274
|
+
|
|
217
275
|
var _toggleTag = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
218
276
|
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(_ref2) {
|
|
219
277
|
var tag, queryParams, finalTags;
|
|
220
278
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
221
|
-
while (1)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
279
|
+
while (1) {
|
|
280
|
+
switch (_context.prev = _context.next) {
|
|
281
|
+
case 0:
|
|
282
|
+
tag = _ref2.tag, queryParams = _ref2.queryParams;
|
|
283
|
+
finalTags = Array.isArray(queryParams.tags) ? (0, _toConsumableArray2.default)(queryParams.tags) : [];
|
|
284
|
+
|
|
285
|
+
if (finalTags.includes(tag)) {
|
|
286
|
+
finalTags.splice(finalTags.indexOf(tag), 1);
|
|
287
|
+
} else {
|
|
288
|
+
finalTags.push(tag);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
setQueryParams((0, _objectSpread2.default)((0, _objectSpread2.default)({}, queryParams), {}, {
|
|
292
|
+
tags: finalTags
|
|
293
|
+
}));
|
|
294
|
+
|
|
295
|
+
case 4:
|
|
296
|
+
case "end":
|
|
297
|
+
return _context.stop();
|
|
298
|
+
}
|
|
236
299
|
}
|
|
237
300
|
}, _callee);
|
|
238
301
|
}));
|
|
302
|
+
|
|
239
303
|
return function (_x) {
|
|
240
304
|
return _ref3.apply(this, arguments);
|
|
241
305
|
};
|
|
242
306
|
}(), []);
|
|
307
|
+
|
|
243
308
|
var getFileUploadErrorMessage = (0, _react.useCallback)(function (e) {
|
|
244
309
|
if (typeof e === "string") {
|
|
245
310
|
var match = e.match(/Message>(.*?)<\/Message/);
|
|
311
|
+
|
|
246
312
|
if (match) {
|
|
247
313
|
var _match = (0, _slicedToArray2.default)(match, 2),
|
|
248
|
-
|
|
314
|
+
message = _match[1];
|
|
315
|
+
|
|
249
316
|
return message;
|
|
250
317
|
}
|
|
318
|
+
|
|
251
319
|
return e;
|
|
252
320
|
}
|
|
321
|
+
|
|
253
322
|
return e.message;
|
|
254
323
|
}, []);
|
|
324
|
+
|
|
255
325
|
var updateCacheAfterCreateFile = function updateCacheAfterCreateFile(cache, newFile) {
|
|
256
326
|
var _data$fileManager;
|
|
327
|
+
|
|
257
328
|
var newFileData = (0, _get.default)(newFile, "data.fileManager.createFile.data");
|
|
258
329
|
var data = cache.readQuery({
|
|
259
330
|
query: _graphql.LIST_FILES,
|
|
@@ -271,9 +342,10 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
271
342
|
}
|
|
272
343
|
});
|
|
273
344
|
};
|
|
345
|
+
|
|
274
346
|
var getFileDetailsFile = (0, _react.useCallback)(function (_ref4) {
|
|
275
347
|
var src = _ref4.src,
|
|
276
|
-
|
|
348
|
+
list = _ref4.list;
|
|
277
349
|
return list.find(function (item) {
|
|
278
350
|
return item.src === src;
|
|
279
351
|
});
|
|
@@ -290,6 +362,7 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
290
362
|
variables: queryParams,
|
|
291
363
|
onCompleted: function onCompleted(response) {
|
|
292
364
|
var list = (0, _get.default)(response, "fileManager.listFiles.data") || [];
|
|
365
|
+
|
|
293
366
|
if (hasPreviouslyUploadedFiles === null) {
|
|
294
367
|
setHasPreviouslyUploadedFiles(list.length > 0);
|
|
295
368
|
}
|
|
@@ -297,9 +370,11 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
297
370
|
});
|
|
298
371
|
var refreshOnScroll = (0, _react.useCallback)((0, _debounce.default)(function (_ref5) {
|
|
299
372
|
var scrollFrame = _ref5.scrollFrame,
|
|
300
|
-
|
|
373
|
+
fetchMore = _ref5.fetchMore;
|
|
374
|
+
|
|
301
375
|
if (scrollFrame.top > 0.9) {
|
|
302
376
|
var cursor = (0, _get.default)(gqlQuery.data, "fileManager.listFiles.meta.cursor");
|
|
377
|
+
|
|
303
378
|
if (cursor) {
|
|
304
379
|
fetchMore({
|
|
305
380
|
variables: {
|
|
@@ -307,9 +382,11 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
307
382
|
},
|
|
308
383
|
updateQuery: function updateQuery(prev, result) {
|
|
309
384
|
var fetchMoreResult = result.fetchMoreResult;
|
|
385
|
+
|
|
310
386
|
if (!fetchMoreResult) {
|
|
311
387
|
return prev;
|
|
312
388
|
}
|
|
389
|
+
|
|
313
390
|
var next = (0, _objectSpread2.default)({}, fetchMoreResult);
|
|
314
391
|
next.fileManager.listFiles.data = [].concat((0, _toConsumableArray2.default)(prev.fileManager.listFiles.data), (0, _toConsumableArray2.default)(fetchMoreResult.fileManager.listFiles.data));
|
|
315
392
|
return next;
|
|
@@ -319,119 +396,141 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
319
396
|
}
|
|
320
397
|
}, 500), [gqlQuery]);
|
|
321
398
|
var data = gqlQuery.data,
|
|
322
|
-
|
|
323
|
-
|
|
399
|
+
fetchMore = gqlQuery.fetchMore,
|
|
400
|
+
loading = gqlQuery.loading;
|
|
324
401
|
var list = (0, _get.default)(data, "fileManager.listFiles.data") || [];
|
|
402
|
+
|
|
325
403
|
var _useMutation = (0, _reactHooks.useMutation)(_graphql.CREATE_FILE, {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
404
|
+
update: updateCacheAfterCreateFile
|
|
405
|
+
}),
|
|
406
|
+
_useMutation2 = (0, _slicedToArray2.default)(_useMutation, 1),
|
|
407
|
+
createFile = _useMutation2[0];
|
|
408
|
+
|
|
330
409
|
var uploadFile = /*#__PURE__*/function () {
|
|
331
410
|
var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3(files) {
|
|
332
411
|
var list, errors, uploadedFiles;
|
|
333
412
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
|
|
334
|
-
while (1)
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
var
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
_context2.prev =
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
413
|
+
while (1) {
|
|
414
|
+
switch (_context3.prev = _context3.next) {
|
|
415
|
+
case 0:
|
|
416
|
+
setUploading(true);
|
|
417
|
+
list = Array.isArray(files) ? files : [files];
|
|
418
|
+
errors = [];
|
|
419
|
+
uploadedFiles = [];
|
|
420
|
+
_context3.next = 6;
|
|
421
|
+
return Promise.all(list.map( /*#__PURE__*/function () {
|
|
422
|
+
var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(file) {
|
|
423
|
+
var response, createFileResponse;
|
|
424
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
|
|
425
|
+
while (1) {
|
|
426
|
+
switch (_context2.prev = _context2.next) {
|
|
427
|
+
case 0:
|
|
428
|
+
_context2.prev = 0;
|
|
429
|
+
_context2.next = 3;
|
|
430
|
+
return (0, _getFileUploader.default)()(file, {
|
|
431
|
+
apolloClient: apolloClient
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
case 3:
|
|
435
|
+
response = _context2.sent;
|
|
436
|
+
_context2.next = 6;
|
|
437
|
+
return createFile({
|
|
438
|
+
variables: {
|
|
439
|
+
data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, response), {}, {
|
|
440
|
+
tags: queryParams.scope ? [queryParams.scope] : []
|
|
441
|
+
})
|
|
442
|
+
}
|
|
443
|
+
});
|
|
444
|
+
|
|
445
|
+
case 6:
|
|
446
|
+
createFileResponse = _context2.sent;
|
|
447
|
+
// Save create file data for later
|
|
448
|
+
uploadedFiles.push((0, _get.default)(createFileResponse, "data.fileManager.createFile.data"));
|
|
449
|
+
_context2.next = 13;
|
|
450
|
+
break;
|
|
451
|
+
|
|
452
|
+
case 10:
|
|
453
|
+
_context2.prev = 10;
|
|
454
|
+
_context2.t0 = _context2["catch"](0);
|
|
455
|
+
errors.push({
|
|
456
|
+
file: file,
|
|
457
|
+
e: _context2.t0
|
|
458
|
+
});
|
|
459
|
+
|
|
460
|
+
case 13:
|
|
461
|
+
case "end":
|
|
462
|
+
return _context2.stop();
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}, _callee2, null, [[0, 10]]);
|
|
466
|
+
}));
|
|
467
|
+
|
|
468
|
+
return function (_x3) {
|
|
469
|
+
return _ref7.apply(this, arguments);
|
|
470
|
+
};
|
|
471
|
+
}()));
|
|
472
|
+
|
|
473
|
+
case 6:
|
|
474
|
+
if (!hasPreviouslyUploadedFiles) {
|
|
475
|
+
setHasPreviouslyUploadedFiles(true);
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
setUploading(false);
|
|
479
|
+
|
|
480
|
+
if (!(errors.length > 0)) {
|
|
481
|
+
_context3.next = 10;
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
return _context3.abrupt("return", setTimeout(function () {
|
|
486
|
+
showSnackbar( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["One or more files were not uploaded successfully:"]))), /*#__PURE__*/_react.default.createElement("ol", null, errors.map(function (_ref8) {
|
|
487
|
+
var file = _ref8.file,
|
|
488
|
+
e = _ref8.e;
|
|
489
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
490
|
+
key: file.name
|
|
491
|
+
}, /*#__PURE__*/_react.default.createElement("strong", null, file.name), ": ", getFileUploadErrorMessage(e));
|
|
492
|
+
})))); // TODO @ts-refactor
|
|
493
|
+
}, 750));
|
|
494
|
+
|
|
495
|
+
case 10:
|
|
496
|
+
// We wait 750ms, just for everything to settle down a bit.
|
|
497
|
+
setTimeout(function () {
|
|
498
|
+
return showSnackbar(t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["File upload complete."]))));
|
|
499
|
+
}, 750);
|
|
500
|
+
|
|
501
|
+
if (!(typeof onUploadCompletion === "function")) {
|
|
502
|
+
_context3.next = 13;
|
|
503
|
+
break;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
return _context3.abrupt("return", setTimeout(function () {
|
|
507
|
+
onUploadCompletion(uploadedFiles);
|
|
508
|
+
onClose && onClose(); // TODO @ts-refactor
|
|
509
|
+
}, 750));
|
|
510
|
+
|
|
511
|
+
case 13:
|
|
512
|
+
return _context3.abrupt("return", null);
|
|
513
|
+
|
|
514
|
+
case 14:
|
|
515
|
+
case "end":
|
|
516
|
+
return _context3.stop();
|
|
517
|
+
}
|
|
423
518
|
}
|
|
424
519
|
}, _callee3);
|
|
425
520
|
}));
|
|
521
|
+
|
|
426
522
|
return function uploadFile(_x2) {
|
|
427
523
|
return _ref6.apply(this, arguments);
|
|
428
524
|
};
|
|
429
525
|
}();
|
|
526
|
+
|
|
430
527
|
var renderUploadFileAction = (0, _react.useCallback)(function (_ref9) {
|
|
431
528
|
var browseFiles = _ref9.browseFiles;
|
|
529
|
+
|
|
432
530
|
if (!canCreate) {
|
|
433
531
|
return null;
|
|
434
532
|
}
|
|
533
|
+
|
|
435
534
|
return /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
|
|
436
535
|
onClick: browseFiles,
|
|
437
536
|
disabled: uploading
|
|
@@ -443,9 +542,8 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
443
542
|
var settings = (0, _get.default)(settingsQuery.data, "fileManager.getSettings.data") || {};
|
|
444
543
|
return /*#__PURE__*/_react.default.createElement(_reactButterfiles.default, {
|
|
445
544
|
multiple: true,
|
|
446
|
-
maxSize: settings.uploadMaxFileSize ? settings.uploadMaxFileSize + "b" :
|
|
447
|
-
multipleMaxSize:
|
|
448
|
-
multipleMaxCount: multipleMaxCount,
|
|
545
|
+
maxSize: settings.uploadMaxFileSize ? settings.uploadMaxFileSize + "b" : "1TB",
|
|
546
|
+
multipleMaxSize: "1TB",
|
|
449
547
|
accept: accept,
|
|
450
548
|
onSuccess: function onSuccess(files) {
|
|
451
549
|
uploadFile(files.map(function (file) {
|
|
@@ -453,19 +551,20 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
453
551
|
}).filter(Boolean));
|
|
454
552
|
},
|
|
455
553
|
onError: function onError(errors) {
|
|
456
|
-
console.
|
|
554
|
+
console.error("File selection error", errors);
|
|
457
555
|
/**
|
|
458
556
|
* TODO @ts-refactor
|
|
459
557
|
* Figure out if incoming errors var is wrong or the one in the outputFileSelectionError
|
|
460
558
|
*/
|
|
461
559
|
// @ts-ignore
|
|
560
|
+
|
|
462
561
|
var message = (0, _outputFileSelectionError.outputFileSelectionError)(errors);
|
|
463
562
|
showSnackbar(message);
|
|
464
563
|
}
|
|
465
564
|
}, function (_ref10) {
|
|
466
565
|
var getDropZoneProps = _ref10.getDropZoneProps,
|
|
467
|
-
|
|
468
|
-
|
|
566
|
+
browseFiles = _ref10.browseFiles,
|
|
567
|
+
validateFiles = _ref10.validateFiles;
|
|
469
568
|
return /*#__PURE__*/_react.default.createElement(_OverlayLayout.OverlayLayout, Object.assign({}, getDropZoneProps({
|
|
470
569
|
onDragEnter: function onDragEnter() {
|
|
471
570
|
return hasPreviouslyUploadedFiles && setDragging(true);
|
|
@@ -489,19 +588,24 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
489
588
|
onClick: function onClick() {
|
|
490
589
|
(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
|
|
491
590
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
|
|
492
|
-
while (1)
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
591
|
+
while (1) {
|
|
592
|
+
switch (_context4.prev = _context4.next) {
|
|
593
|
+
case 0:
|
|
594
|
+
if (!(typeof onChange === "function")) {
|
|
595
|
+
_context4.next = 4;
|
|
596
|
+
break;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
_context4.next = 3;
|
|
600
|
+
return onChange(multiple ? selected : selected[0]);
|
|
601
|
+
|
|
602
|
+
case 3:
|
|
603
|
+
onClose && onClose();
|
|
604
|
+
|
|
605
|
+
case 4:
|
|
606
|
+
case "end":
|
|
607
|
+
return _context4.stop();
|
|
608
|
+
}
|
|
505
609
|
}
|
|
506
610
|
}, _callee4);
|
|
507
611
|
}))();
|
|
@@ -509,8 +613,7 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
509
613
|
}, t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Select"]))), " ", multiple && "(".concat(selected.length, ")")) : renderUploadFileAction({
|
|
510
614
|
browseFiles: browseFiles
|
|
511
615
|
})
|
|
512
|
-
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, dragging && hasPreviouslyUploadedFiles && /*#__PURE__*/_react.default.createElement(_DropFilesHere.default
|
|
513
|
-
// @ts-ignore TODO: @adrian - className is never rendered?!
|
|
616
|
+
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, dragging && hasPreviouslyUploadedFiles && /*#__PURE__*/_react.default.createElement(_DropFilesHere.default // @ts-ignore TODO: @adrian - className is never rendered?!
|
|
514
617
|
, {
|
|
515
618
|
className: style.draggingFeedback,
|
|
516
619
|
onDragLeave: function onDragLeave() {
|
|
@@ -562,32 +665,41 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
562
665
|
onSelect: function () {
|
|
563
666
|
var _onSelect = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5() {
|
|
564
667
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
|
|
565
|
-
while (1)
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
668
|
+
while (1) {
|
|
669
|
+
switch (_context5.prev = _context5.next) {
|
|
670
|
+
case 0:
|
|
671
|
+
if (!(typeof onChange === "function")) {
|
|
672
|
+
_context5.next = 7;
|
|
673
|
+
break;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
if (!multiple) {
|
|
677
|
+
_context5.next = 4;
|
|
678
|
+
break;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
toggleSelected(file);
|
|
682
|
+
return _context5.abrupt("return");
|
|
683
|
+
|
|
684
|
+
case 4:
|
|
685
|
+
_context5.next = 6;
|
|
686
|
+
return onChange(file);
|
|
687
|
+
|
|
688
|
+
case 6:
|
|
689
|
+
onClose && onClose();
|
|
690
|
+
|
|
691
|
+
case 7:
|
|
692
|
+
case "end":
|
|
693
|
+
return _context5.stop();
|
|
694
|
+
}
|
|
585
695
|
}
|
|
586
696
|
}, _callee5);
|
|
587
697
|
}));
|
|
698
|
+
|
|
588
699
|
function onSelect() {
|
|
589
700
|
return _onSelect.apply(this, arguments);
|
|
590
701
|
}
|
|
702
|
+
|
|
591
703
|
return onSelect;
|
|
592
704
|
}()
|
|
593
705
|
});
|
|
@@ -601,11 +713,9 @@ var FileManagerView = function FileManagerView(props) {
|
|
|
601
713
|
}))));
|
|
602
714
|
});
|
|
603
715
|
};
|
|
716
|
+
|
|
604
717
|
FileManagerView.defaultProps = {
|
|
605
|
-
multiple: false
|
|
606
|
-
maxSize: "1000mb",
|
|
607
|
-
multipleMaxSize: "1000mb",
|
|
608
|
-
multipleMaxCount: 100
|
|
718
|
+
multiple: false
|
|
609
719
|
};
|
|
610
720
|
var _default = FileManagerView;
|
|
611
721
|
exports.default = _default;
|