@webiny/app-file-manager 5.37.8 → 5.38.0-beta.1
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/BatchFileUploader.js +3 -1
- package/FileManagerFileTypePlugin.js +3 -1
- package/app.js +3 -1
- package/components/BottomInfoBar/BottomInfoBar.js +3 -1
- package/components/BottomInfoBar/ListStatus.js +3 -1
- package/components/BottomInfoBar/SupportedFileTypes.js +3 -1
- package/components/BottomInfoBar/index.js +3 -1
- package/components/BottomInfoBar/styled.js +3 -1
- package/components/BulkActions/ActionDelete.d.ts +4 -0
- package/components/BulkActions/ActionDelete.js +119 -0
- package/components/BulkActions/ActionDelete.js.map +1 -0
- package/components/BulkActions/ActionMove.d.ts +4 -0
- package/components/BulkActions/ActionMove.js +137 -0
- package/components/BulkActions/ActionMove.js.map +1 -0
- package/components/BulkActions/BulkActions.d.ts +3 -0
- package/components/BulkActions/BulkActions.js +51 -0
- package/components/BulkActions/BulkActions.js.map +1 -0
- package/components/BulkActions/BulkActions.styled.d.ts +15 -0
- package/components/BulkActions/BulkActions.styled.js +26 -0
- package/components/BulkActions/BulkActions.styled.js.map +1 -0
- package/components/BulkActions/index.d.ts +3 -0
- package/components/BulkActions/index.js +37 -0
- package/components/BulkActions/index.js.map +1 -0
- package/components/DropFilesHere/DropFilesHere.js +5 -7
- package/components/DropFilesHere/DropFilesHere.js.map +1 -1
- package/components/DropFilesHere/index.js +3 -1
- package/components/DropFilesHere/styled.js +9 -4
- package/components/DropFilesHere/styled.js.map +1 -1
- package/components/Empty/Empty.js +3 -1
- package/components/Empty/Empty.js.map +1 -1
- package/components/Empty/index.js +3 -1
- package/components/FileDetails/FileDetails.js +6 -4
- package/components/FileDetails/FileDetails.js.map +1 -1
- package/components/FileDetails/FileDetailsProvider.js +3 -1
- package/components/FileDetails/components/Actions.js +3 -1
- package/components/FileDetails/components/Aliases.js +3 -1
- package/components/FileDetails/components/BaseFields.js +3 -1
- package/components/FileDetails/components/Content.js +3 -1
- package/components/FileDetails/components/CreatedOn.js +3 -1
- package/components/FileDetails/components/Extensions.js +3 -1
- package/components/FileDetails/components/Flex.js +3 -1
- package/components/FileDetails/components/Footer.js +3 -1
- package/components/FileDetails/components/Header.js +3 -1
- package/components/FileDetails/components/Name.js +3 -1
- package/components/FileDetails/components/Preview.js +3 -1
- package/components/FileDetails/components/PreviewMeta.js +3 -1
- package/components/FileDetails/components/Tags.js +3 -1
- package/components/FileDetails/components/Thumbnail.js +3 -1
- package/components/FileDetails/components/TypeAndSize.js +3 -1
- package/components/FileDetails/components/actions/CopyUrl.js +3 -1
- package/components/FileDetails/components/actions/DeleteImage.js +3 -1
- package/components/FileDetails/components/actions/Download.js +3 -1
- package/components/FileDetails/components/actions/MoveTo.js +3 -1
- package/components/FileDetails/index.js +3 -1
- package/components/Grid/File.js +3 -1
- package/components/Grid/Grid.d.ts +2 -0
- package/components/Grid/Grid.js +14 -5
- package/components/Grid/Grid.js.map +1 -1
- package/components/Grid/index.js +3 -1
- package/components/Grid/styled.js +3 -1
- package/components/LayoutSwitch/LayoutSwitch.d.ts +2 -0
- package/components/LayoutSwitch/LayoutSwitch.js +34 -0
- package/components/LayoutSwitch/LayoutSwitch.js.map +1 -0
- package/components/LayoutSwitch/index.d.ts +1 -0
- package/components/LayoutSwitch/index.js +18 -0
- package/components/LayoutSwitch/index.js.map +1 -0
- package/components/NoPermission/NoPermission.js +3 -1
- package/components/NoPermission/index.js +3 -1
- package/components/NoPermission/styled.js +3 -1
- package/components/NoResults/NoResults.js +3 -1
- package/components/NoResults/index.js +3 -1
- package/components/NoResults/styled.js +3 -1
- package/components/Table/FolderActionDelete.js +3 -1
- package/components/Table/FolderActionEdit.js +3 -1
- package/components/Table/FolderActionManagePermissions.d.ts +6 -0
- package/components/Table/FolderActionManagePermissions.js +27 -0
- package/components/Table/FolderActionManagePermissions.js.map +1 -0
- package/components/Table/Name.d.ts +5 -1
- package/components/Table/Name.js +12 -3
- package/components/Table/Name.js.map +1 -1
- package/components/Table/RecordActionCopy.js +3 -1
- package/components/Table/RecordActionDelete.js +5 -3
- package/components/Table/RecordActionDelete.js.map +1 -1
- package/components/Table/RecordActionEdit.js +3 -1
- package/components/Table/RecordActionMove.js +3 -1
- package/components/Table/Table.d.ts +11 -13
- package/components/Table/Table.js +46 -15
- package/components/Table/Table.js.map +1 -1
- package/components/Table/index.js +3 -1
- package/components/Table/styled.d.ts +0 -1
- package/components/Table/styled.js +3 -3
- package/components/Table/styled.js.map +1 -1
- package/components/Title/Title.js +3 -1
- package/components/Title/index.js +3 -1
- package/components/Title/styled.js +3 -1
- package/components/UploadStatus/UploadStatus.js +3 -1
- package/components/UploadStatus/index.js +3 -1
- package/components/UploadStatus/styled.js +3 -1
- package/constants.js +3 -1
- package/contexts/FileProvider.js +3 -1
- package/getFileTypePlugin.js +3 -1
- package/hooks/useCopyFile.js +3 -1
- package/hooks/useDeleteFile.js +3 -1
- package/hooks/useFile.js +3 -1
- package/hooks/useFileDetails.js +3 -1
- package/hooks/useFileModel.js +3 -1
- package/hooks/useMoveFileToFolder.js +3 -1
- package/index.js +3 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js +5 -3
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js.map +1 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileModelContext.js +3 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js +3 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/index.js +3 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/useFileManagerApi.js +3 -1
- package/modules/FileManagerApiProvider/graphql.js +3 -1
- package/modules/FileManagerApiProvider/index.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/FileManagerView.js +41 -33
- package/modules/FileManagerRenderer/FileManagerView/FileManagerView.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.d.ts +12 -0
- package/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.js +4 -1
- package/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerView/LeftSidebar.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/NavigateFolderProvider.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/components/Filters.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/components/SearchWidget.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/components/TagsList/Empty.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/components/TagsList/Tag.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/components/TagsList/TagsList.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/components/TagsList/index.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/components/TagsList/styled.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/BulkAction.d.ts +26 -0
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/BulkAction.js +96 -0
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/BulkAction.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Filter.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/FilterByTags.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/FiltersToWhere.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/index.d.ts +13 -0
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/index.js +5 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/index.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/Field.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/FieldDecorator.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/Width.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/index.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/index.js +3 -1
- package/modules/FileManagerRenderer/FileManagerView/outputFileSelectionError.js +3 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.d.ts +2 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js +22 -21
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/index.js +3 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/setSelection.d.ts +30 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/setSelection.js +115 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/setSelection.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/state.d.ts +4 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/state.js +4 -2
- package/modules/FileManagerRenderer/FileManagerViewProvider/state.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/useFileManagerView.js +3 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/useListFiles.d.ts +1 -2
- package/modules/FileManagerRenderer/FileManagerViewProvider/useListFiles.js +5 -9
- package/modules/FileManagerRenderer/FileManagerViewProvider/useListFiles.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/useTags.js +3 -1
- package/modules/FileManagerRenderer/filters/FilterByType.js +3 -1
- package/modules/FileManagerRenderer/index.js +10 -1
- package/modules/FileManagerRenderer/index.js.map +1 -1
- package/modules/FileTypes/fileDefault.js +3 -1
- package/modules/FileTypes/fileImage/EditAction.js +3 -1
- package/modules/FileTypes/fileImage/index.js +3 -1
- package/modules/FileTypes/index.js +3 -1
- package/modules/Settings/graphql.js +4 -2
- package/modules/Settings/graphql.js.map +1 -1
- package/modules/Settings/index.js +3 -1
- package/modules/Settings/plugins/installation.js +3 -1
- package/modules/Settings/plugins/permissionRenderer/FileManagerPermissions.js +3 -1
- package/modules/Settings/plugins/permissionRenderer/index.js +3 -1
- package/modules/Settings/views/FileManagerSettings.js +3 -1
- package/package.json +17 -16
- package/tagsHelpers.js +3 -1
- package/types.js +3 -1
|
@@ -8,18 +8,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.FileManagerViewProvider = exports.FileManagerViewContext = void 0;
|
|
9
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
10
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
11
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
13
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
14
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
15
|
var _react = _interopRequireWildcard(require("react"));
|
|
16
16
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
17
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
17
18
|
var _ = require("../../..");
|
|
18
19
|
var _state = require("./state");
|
|
19
20
|
var _sorting = require("@webiny/app-aco/sorting");
|
|
20
21
|
var _appAco = require("@webiny/app-aco");
|
|
21
22
|
var _useListFiles2 = require("./useListFiles");
|
|
22
23
|
var _useTags = require("./useTags");
|
|
24
|
+
var _setSelection = require("./setSelection");
|
|
23
25
|
var _constants = require("../../../constants");
|
|
24
26
|
var _excluded = ["children"];
|
|
25
27
|
var FileManagerViewContext = /*#__PURE__*/_react.default.createContext(undefined);
|
|
@@ -40,6 +42,7 @@ var getCurrentFolderList = function getCurrentFolderList(folders, currentFolderI
|
|
|
40
42
|
var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
|
|
41
43
|
var children = _ref.children,
|
|
42
44
|
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
45
|
+
var shiftKeyPressed = (0, _appAdmin.useShiftKey)();
|
|
43
46
|
var modifiers = {
|
|
44
47
|
scope: props.scope,
|
|
45
48
|
own: props.own,
|
|
@@ -61,14 +64,7 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
|
|
|
61
64
|
var _useListFiles = (0, _useListFiles2.useListFiles)({
|
|
62
65
|
folderId: currentFolderId,
|
|
63
66
|
modifiers: modifiers,
|
|
64
|
-
state: state
|
|
65
|
-
onFirstLoad: function onFirstLoad(meta) {
|
|
66
|
-
setState(function (state) {
|
|
67
|
-
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
68
|
-
hasPreviouslyUploadedFiles: meta.totalCount > 0
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
}
|
|
67
|
+
state: state
|
|
72
68
|
}),
|
|
73
69
|
loading = _useListFiles.loading,
|
|
74
70
|
files = _useListFiles.files,
|
|
@@ -127,6 +123,7 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
|
|
|
127
123
|
var isRoot = folder ? folder.id === _constants.ROOT_FOLDER : false;
|
|
128
124
|
setState(function (state) {
|
|
129
125
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
126
|
+
selection: {},
|
|
130
127
|
filters: undefined,
|
|
131
128
|
searchQuery: "",
|
|
132
129
|
activeTags: [],
|
|
@@ -459,7 +456,7 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
|
|
|
459
456
|
};
|
|
460
457
|
var context = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _omit.default)(state, ["activeTags"])), {}, {
|
|
461
458
|
accept: props.accept,
|
|
462
|
-
|
|
459
|
+
hasOnSelectCallback: Boolean(props.onChange),
|
|
463
460
|
createFile: createFile,
|
|
464
461
|
deleteFile: deleteFile,
|
|
465
462
|
files: files,
|
|
@@ -524,7 +521,8 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
|
|
|
524
521
|
setState(function (state) {
|
|
525
522
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
526
523
|
selected: [],
|
|
527
|
-
filters: data
|
|
524
|
+
filters: data,
|
|
525
|
+
selection: {}
|
|
528
526
|
});
|
|
529
527
|
});
|
|
530
528
|
},
|
|
@@ -596,17 +594,18 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
|
|
|
596
594
|
},
|
|
597
595
|
toggleSelected: function toggleSelected(file) {
|
|
598
596
|
setState(function (state) {
|
|
599
|
-
|
|
600
|
-
|
|
597
|
+
return (0, _setSelection.setSelection)({
|
|
598
|
+
state: state,
|
|
599
|
+
files: files,
|
|
600
|
+
toggledFile: file,
|
|
601
|
+
shiftKeyPressed: shiftKeyPressed
|
|
601
602
|
});
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
selected.splice(existingIndex, 1);
|
|
607
|
-
}
|
|
603
|
+
});
|
|
604
|
+
},
|
|
605
|
+
deselectAll: function deselectAll() {
|
|
606
|
+
setState(function (state) {
|
|
608
607
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
609
|
-
selected:
|
|
608
|
+
selected: []
|
|
610
609
|
});
|
|
611
610
|
});
|
|
612
611
|
},
|
|
@@ -617,4 +616,6 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
|
|
|
617
616
|
value: context
|
|
618
617
|
}, children);
|
|
619
618
|
};
|
|
620
|
-
exports.FileManagerViewProvider = FileManagerViewProvider;
|
|
619
|
+
exports.FileManagerViewProvider = FileManagerViewProvider;
|
|
620
|
+
|
|
621
|
+
//# sourceMappingURL=FileManagerViewContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_omit","_interopRequireDefault","_","_state","_sorting","_appAco","_useListFiles2","_useTags","_constants","_excluded","FileManagerViewContext","React","createContext","undefined","exports","getCurrentFolderList","folders","currentFolderId","toLowerCase","ROOT_FOLDER","filter","folder","parentId","FileManagerViewProvider","_ref","children","props","_objectWithoutProperties2","default","modifiers","scope","own","accept","fileManager","useFileManagerApi","_useFolders","useFolders","originalFolders","foldersLoading","loading","_useNavigateFolder","useNavigateFolder","_useNavigateFolder$cu","navigateToFolder","tags","useTags","_useState","useState","initializeState","_useState2","_slicedToArray2","state","setState","_useListFiles","useListFiles","folderId","onFirstLoad","meta","_objectSpread2","hasPreviouslyUploadedFiles","totalCount","files","listFiles","setFiles","getListVariables","useEffect","loadFiles","searchQuery","filters","activeTags","listSort","tagsFilterMode","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","action","params","queryVariables","wrap","_callee$","_context","prev","next","INIT","abrupt","isSearch","Boolean","length","stop","_x","_x2","apply","arguments","loadMoreFiles","cursor","after","resetSearchParameters","find","id","isRoot","searchLabel","concat","title","_useMemo","useMemo","subFolders","sortTableItems","name","currentFolder","listTitle","getFile","_ref3","_callee2","fileInState","file","_callee2$","_context2","loadingFileDetails","sent","prevFiles","fileIndex","findIndex","_toConsumableArray2","slice","_x3","getSettings","_ref4","_callee3","settings","_callee3$","_context3","createFile","_ref5","_callee4","data","newFile","_callee4$","_context4","addScopePrefix","location","removeScopePrefix","_x4","updateFile","_ref6","_callee5","_data$tags","newTags","_callee5$","_context5","tag","some","t","addTags","index","_x5","_x6","deleteFile","_ref7","_callee6","_callee6$","_context6","_x7","uploadFile","_ref8","_callee7","options","_args7","_callee7$","_context7","onProgress","_x8","moveFileToFolder","_ref9","_callee8","fileId","_callee8$","_context8","_x9","_x10","map","replace","context","omit","areFilesSelectable","onChange","hideFileDetails","showingFileDetails","hideFilters","showingFilters","isListLoading","LIST","isListLoadingMore","LIST_MORE","multiple","value","onClose","onUploadCompletion","setDragging","dragging","setFilters","selected","setFolderId","setListSort","sort","setListTable","flag","listTable","setSearchQuery","search","setSelected","showFileDetails","useCallback","showFilters","allTags","filterMode","setFilterMode","mode","setActiveTags","toggleSelected","existingIndex","item","push","splice","createElement","Provider"],"sources":["FileManagerViewContext.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport omit from \"lodash/omit\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { FileTag } from \"~/types\";\nimport { useFileManagerApi } from \"~/index\";\nimport { initializeState, State } from \"./state\";\nimport { FolderItem, ListMeta, ListSearchRecordsSort } from \"@webiny/app-aco/types\";\nimport { UploadOptions } from \"@webiny/app/types\";\nimport { sortTableItems } from \"@webiny/app-aco/sorting\";\nimport { useFolders, useNavigateFolder } from \"@webiny/app-aco\";\nimport { ListFilesQueryVariables } from \"~/modules/FileManagerApiProvider/graphql\";\nimport { useListFiles } from \"./useListFiles\";\nimport { useTags } from \"./useTags\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\ntype PublicState = Omit<State, \"activeTags\">;\n\nexport interface FileManagerViewContext<TFileItem extends FileItem = FileItem> extends PublicState {\n accept: string[];\n createFile: (data: TFileItem) => Promise<TFileItem | undefined>;\n deleteFile: (id: string) => Promise<void>;\n files: FileItem[];\n folderId: string;\n folders: FolderItem[];\n getFile: (id: string) => Promise<TFileItem | undefined>;\n hideFileDetails: () => void;\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n areFilesSelectable: boolean;\n listTitle: string;\n loadMoreFiles: () => void;\n meta: ListMeta | undefined;\n moveFileToFolder: (fileId: string, folderId: string) => Promise<void>;\n multiple: boolean;\n onClose: () => void;\n onChange: Function;\n onUploadCompletion: (files: FileItem[]) => void;\n own: boolean;\n scope?: string;\n setDragging: (state: boolean) => void;\n setFilters: (data: Record<string, any>) => void;\n setFolderId: (folderId: string) => void;\n setListSort: (state: ListSearchRecordsSort) => void;\n setListTable: (mode: boolean) => void;\n setSearchQuery: (query: string) => void;\n setSelected: (files: TFileItem[]) => void;\n showFileDetails: (id: string) => void;\n showFilters: () => void;\n tags: {\n allTags: FileTag[];\n activeTags: string[];\n setActiveTags: (tags: string[]) => void;\n filterMode: \"AND\" | \"OR\";\n setFilterMode(mode: \"AND\" | \"OR\"): void;\n loading: boolean;\n };\n toggleSelected: (file: TFileItem) => void;\n updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;\n uploadFile: (file: File, options?: UploadFileOptions) => Promise<TFileItem | undefined>;\n}\n\nexport const FileManagerViewContext = React.createContext<FileManagerViewContext | undefined>(\n undefined\n);\n\nconst getCurrentFolderList = (\n folders?: FolderItem[] | null,\n currentFolderId?: string\n): FolderItem[] | [] => {\n if (!folders) {\n return [];\n }\n if (!currentFolderId || currentFolderId.toLowerCase() === ROOT_FOLDER) {\n return folders.filter(\n folder => !folder.parentId || folder.parentId.toLowerCase() === ROOT_FOLDER\n );\n }\n return folders.filter(folder => folder.parentId === currentFolderId);\n};\n\nexport interface FileManagerViewProviderProps {\n onChange?: Function;\n onClose?: () => void;\n multiple?: boolean;\n accept: string[];\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n children?: React.ReactNode;\n}\n\ntype UploadFileOptions = Pick<UploadOptions, \"onProgress\">;\n\nexport type Loading<T extends string> = { [P in T]?: boolean };\nexport type LoadingActions = \"INIT\" | \"LIST\" | \"LIST_MORE\";\n\nexport const FileManagerViewProvider: React.VFC<FileManagerViewProviderProps> = ({\n children,\n ...props\n}) => {\n const modifiers = { scope: props.scope, own: props.own, accept: props.accept };\n const fileManager = useFileManagerApi();\n const { folders: originalFolders, loading: foldersLoading } = useFolders();\n const { currentFolderId = ROOT_FOLDER, navigateToFolder } = useNavigateFolder();\n const tags = useTags(modifiers);\n const [state, setState] = useState(initializeState());\n\n const { loading, files, meta, listFiles, setFiles, getListVariables } = useListFiles({\n folderId: currentFolderId,\n modifiers,\n state,\n onFirstLoad(meta) {\n setState(state => ({\n ...state,\n hasPreviouslyUploadedFiles: meta.totalCount > 0\n }));\n }\n });\n\n useEffect(() => {\n loadFiles(\"INIT\");\n }, []);\n\n useEffect(() => {\n loadFiles(\"LIST\");\n }, [state.searchQuery, state.filters, state.activeTags, state.listSort, state.tagsFilterMode]);\n\n const loadFiles = async (action: LoadingActions, params?: Partial<ListFilesQueryVariables>) => {\n if (loading.INIT || loading[action]) {\n return;\n }\n const queryVariables = getListVariables();\n await listFiles({ ...queryVariables, ...params });\n setState(state => ({\n ...state,\n isSearch: Boolean(state.searchQuery || state.filters || state.activeTags.length)\n }));\n };\n\n const loadMoreFiles = () => {\n if (meta?.cursor) {\n loadFiles(\"LIST_MORE\", { after: meta.cursor });\n }\n };\n\n const resetSearchParameters = (folderId: string) => {\n const folder = (originalFolders || []).find(folder => folder.id === folderId);\n const isRoot = folder ? folder.id === ROOT_FOLDER : false;\n\n setState(state => ({\n ...state,\n filters: undefined,\n searchQuery: \"\",\n activeTags: [],\n searchLabel:\n folder && !isRoot ? `Search files in \"${folder.title}\"` : `Search all files`\n }));\n };\n\n const { folders, listTitle } = useMemo(() => {\n // Filter sub-folders and sort them accordingly\n const subFolders = getCurrentFolderList(originalFolders, currentFolderId);\n const folders = sortTableItems(subFolders, state.listSort, { name: \"title\" });\n\n // Get current folder name\n const currentFolder = originalFolders?.find(folder => folder.id === currentFolderId);\n\n return { folders, listTitle: currentFolder?.title || \"\" };\n }, [originalFolders, currentFolderId, state.listSort]);\n\n const getFile = async (id: string) => {\n const fileInState = files.find(file => file.id === id);\n\n if (fileInState) {\n return fileInState;\n }\n\n setState(state => ({\n ...state,\n loadingFileDetails: true\n }));\n\n const file = await fileManager.getFile(id);\n\n if (!file) {\n // No file found - must be deleted by previous operation\n setFiles(files => files.filter(file => file.id !== id));\n } else {\n setFiles(prevFiles => {\n const fileIndex = prevFiles.findIndex(file => file.id === id);\n\n // No record found in the list - must be added by previous operation\n if (fileIndex === -1) {\n return [...prevFiles, file];\n }\n\n // Updating record found in the list\n return [\n ...prevFiles.slice(0, fileIndex),\n {\n ...prevFiles[fileIndex],\n ...file\n },\n ...prevFiles.slice(fileIndex + 1)\n ];\n });\n }\n\n setState(state => ({\n ...state,\n loadingFileDetails: false\n }));\n\n return file;\n };\n\n const getSettings = async () => {\n const settings = await fileManager.getSettings();\n setState(state => ({\n ...state,\n settings\n }));\n };\n\n useEffect(() => {\n getSettings();\n }, []);\n\n const createFile = async (data: FileItem) => {\n if (data.tags) {\n data.tags = addScopePrefix(data.tags);\n }\n\n if (props.scope) {\n data.tags = [...(data.tags || []), props.scope];\n }\n\n const meta = {\n location: {\n folderId: currentFolderId || ROOT_FOLDER\n }\n };\n\n const newFile = await fileManager.createFile(data, meta);\n if (newFile) {\n newFile.tags = removeScopePrefix(newFile.tags || []);\n setFiles(files => [newFile, ...files]);\n }\n return newFile;\n };\n\n const updateFile = async (id: string, data: Partial<FileItem>) => {\n const file = files.find(file => file.id === id);\n if (!file) {\n return;\n }\n\n const newTags = data.tags?.filter(tag => !tags.tags.some(t => t.tag === tag));\n\n if (data.tags) {\n data.tags = addScopePrefix(data.tags);\n }\n\n if (props.scope) {\n data.tags = [...(data.tags || []), props.scope];\n }\n\n await fileManager.updateFile(id, data);\n\n if (newTags) {\n tags.addTags(newTags);\n }\n\n setFiles(files => {\n const index = files.findIndex(file => file.id === id);\n if (index === -1) {\n return files;\n }\n\n const newFile = {\n ...data,\n tags: removeScopePrefix(data.tags)\n };\n\n return [\n ...files.slice(0, index),\n { ...files[index], ...newFile },\n ...files.slice(index + 1)\n ];\n });\n };\n\n const deleteFile = async (id: string) => {\n await fileManager.deleteFile(id);\n\n setFiles(files => {\n const index = files.findIndex(file => file.id === id);\n if (index === -1) {\n return files;\n }\n\n return [...files.slice(0, index), ...files.slice(index + 1)];\n });\n };\n\n /**\n * Upload native browser File\n * @see https://developer.mozilla.org/en-US/docs/Web/API/File\n * @param file\n * @param options\n */\n const uploadFile: FileManagerViewContext[\"uploadFile\"] = async (file, options = {}) => {\n const tags = props.scope ? [props.scope] : [];\n const meta = {\n location: {\n folderId: currentFolderId || ROOT_FOLDER\n }\n };\n\n const newFile = await fileManager.uploadFile(file, meta, {\n tags,\n onProgress: options.onProgress\n });\n if (newFile) {\n newFile.tags = removeScopePrefix(newFile.tags);\n setFiles(files => [newFile, ...files]);\n }\n return newFile;\n };\n\n const moveFileToFolder: FileManagerViewContext[\"moveFileToFolder\"] = async (\n fileId,\n folderId\n ) => {\n await updateFile(fileId, { location: { folderId } });\n setFiles(files => files.filter(file => file.id !== fileId));\n };\n\n const addScopePrefix = (tags: string[] = []) => {\n if (!props.scope) {\n return tags;\n }\n\n return tags.map(tag => `${props.scope}:${tag}`);\n };\n\n const removeScopePrefix = (tags: string[] = []) => {\n if (!props.scope) {\n return tags;\n }\n\n return tags\n .filter(tag => tag !== props.scope)\n .map(tag => {\n return props.scope ? tag.replace(`${props.scope}:`, \"\") : tag;\n });\n };\n\n const context: FileManagerViewContext = {\n ...omit(state, [\"activeTags\"]),\n accept: props.accept,\n areFilesSelectable: Boolean(props.onChange),\n createFile,\n deleteFile,\n files,\n folderId: currentFolderId,\n folders: state.isSearch ? [] : folders,\n getFile,\n hideFileDetails() {\n setState(state => ({\n ...state,\n showingFileDetails: null\n }));\n },\n hideFilters() {\n setState(state => ({\n ...state,\n filters: undefined,\n showingFilters: false\n }));\n },\n isListLoading: Boolean(\n loading.INIT || foldersLoading.INIT || loading.LIST || foldersLoading.LIST\n ),\n isListLoadingMore: Boolean(loading.LIST_MORE),\n listTitle,\n loadMoreFiles,\n meta,\n moveFileToFolder,\n multiple: Boolean(props.multiple),\n onChange(value: any[]) {\n if (typeof props.onChange === \"function\") {\n props.onChange(value);\n }\n\n context.onClose();\n },\n onClose() {\n if (typeof props.onClose === \"function\") {\n props.onClose();\n }\n },\n onUploadCompletion(files) {\n setState(state => ({\n ...state,\n hasPreviouslyUploadedFiles: true\n }));\n\n if (typeof props.onUploadCompletion === \"function\") {\n props.onUploadCompletion(files);\n context.onClose();\n }\n },\n own: Boolean(props.own),\n scope: props.scope,\n setDragging(value = true) {\n setState(state => ({\n ...state,\n dragging: value\n }));\n },\n setFilters(data) {\n setState(state => ({\n ...state,\n selected: [],\n filters: data\n }));\n },\n setFolderId(folderId) {\n resetSearchParameters(folderId);\n navigateToFolder(folderId);\n },\n setListSort(sort: ListSearchRecordsSort) {\n setState(state => ({\n ...state,\n listSort: sort\n }));\n },\n setListTable(flag) {\n setState(state => ({\n ...state,\n listTable: flag\n }));\n },\n setSearchQuery(search) {\n setState(state => ({\n ...state,\n searchQuery: search\n }));\n },\n setSelected(files: FileItem[]) {\n setState(state => ({\n ...state,\n selected: files\n }));\n },\n showFileDetails: useCallback((id: string) => {\n setState(state => ({\n ...state,\n showingFileDetails: id\n }));\n }, []),\n showFilters() {\n setState(state => ({\n ...state,\n showingFilters: true\n }));\n },\n tags: {\n loading: tags.loading,\n allTags: tags.tags,\n activeTags: state.activeTags,\n filterMode: state.tagsFilterMode,\n setFilterMode(mode) {\n setState(state => ({\n ...state,\n tagsFilterMode: mode\n }));\n },\n setActiveTags(activeTags) {\n setState(state => ({\n ...state,\n activeTags\n }));\n }\n },\n toggleSelected(file: FileItem) {\n setState(state => {\n const existingIndex = state.selected.findIndex(item => item.id === file.id);\n const selected = state.selected;\n\n if (existingIndex < 0) {\n selected.push(file);\n } else {\n selected.splice(existingIndex, 1);\n }\n\n return {\n ...state,\n selected\n };\n });\n },\n updateFile,\n uploadFile\n };\n\n return (\n <FileManagerViewContext.Provider value={context}>\n {children}\n </FileManagerViewContext.Provider>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_omit","_interopRequireDefault","_appAdmin","_","_state","_sorting","_appAco","_useListFiles2","_useTags","_setSelection","_constants","_excluded","FileManagerViewContext","React","createContext","undefined","exports","getCurrentFolderList","folders","currentFolderId","toLowerCase","ROOT_FOLDER","filter","folder","parentId","FileManagerViewProvider","_ref","children","props","_objectWithoutProperties2","default","shiftKeyPressed","useShiftKey","modifiers","scope","own","accept","fileManager","useFileManagerApi","_useFolders","useFolders","originalFolders","foldersLoading","loading","_useNavigateFolder","useNavigateFolder","_useNavigateFolder$cu","navigateToFolder","tags","useTags","_useState","useState","initializeState","_useState2","_slicedToArray2","state","setState","_useListFiles","useListFiles","folderId","files","meta","listFiles","setFiles","getListVariables","useEffect","loadFiles","searchQuery","filters","activeTags","listSort","tagsFilterMode","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","action","params","queryVariables","wrap","_callee$","_context","prev","next","INIT","abrupt","_objectSpread2","isSearch","Boolean","length","stop","_x","_x2","apply","arguments","loadMoreFiles","cursor","after","resetSearchParameters","find","id","isRoot","selection","searchLabel","concat","title","_useMemo","useMemo","subFolders","sortTableItems","name","currentFolder","listTitle","getFile","_ref3","_callee2","fileInState","file","_callee2$","_context2","loadingFileDetails","sent","prevFiles","fileIndex","findIndex","_toConsumableArray2","slice","_x3","getSettings","_ref4","_callee3","settings","_callee3$","_context3","createFile","_ref5","_callee4","data","newFile","_callee4$","_context4","addScopePrefix","location","removeScopePrefix","_x4","updateFile","_ref6","_callee5","_data$tags","newTags","_callee5$","_context5","tag","some","t","addTags","index","_x5","_x6","deleteFile","_ref7","_callee6","_callee6$","_context6","_x7","uploadFile","_ref8","_callee7","options","_args7","_callee7$","_context7","onProgress","_x8","moveFileToFolder","_ref9","_callee8","fileId","_callee8$","_context8","_x9","_x10","map","replace","context","omit","hasOnSelectCallback","onChange","hideFileDetails","showingFileDetails","hideFilters","showingFilters","isListLoading","LIST","isListLoadingMore","LIST_MORE","multiple","value","onClose","onUploadCompletion","hasPreviouslyUploadedFiles","setDragging","dragging","setFilters","selected","setFolderId","setListSort","sort","setListTable","flag","listTable","setSearchQuery","search","setSelected","showFileDetails","useCallback","showFilters","allTags","filterMode","setFilterMode","mode","setActiveTags","toggleSelected","setSelection","toggledFile","deselectAll","createElement","Provider"],"sources":["FileManagerViewContext.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport omit from \"lodash/omit\";\nimport { useShiftKey } from \"@webiny/app-admin\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { FileTag } from \"~/types\";\nimport { useFileManagerApi } from \"~/index\";\nimport { initializeState, State } from \"./state\";\nimport { FolderItem, ListMeta, ListSearchRecordsSort } from \"@webiny/app-aco/types\";\nimport { UploadOptions } from \"@webiny/app/types\";\nimport { sortTableItems } from \"@webiny/app-aco/sorting\";\nimport { useFolders, useNavigateFolder } from \"@webiny/app-aco\";\nimport { ListFilesQueryVariables } from \"~/modules/FileManagerApiProvider/graphql\";\nimport { useListFiles } from \"./useListFiles\";\nimport { useTags } from \"./useTags\";\nimport { setSelection } from \"./setSelection\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\ntype PublicState = Omit<State, \"activeTags\">;\n\nexport interface FileManagerViewContext<TFileItem extends FileItem = FileItem> extends PublicState {\n accept: string[];\n createFile: (data: TFileItem) => Promise<TFileItem | undefined>;\n deleteFile: (id: string) => Promise<void>;\n files: FileItem[];\n folderId: string;\n folders: FolderItem[];\n getFile: (id: string) => Promise<TFileItem | undefined>;\n hideFileDetails: () => void;\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n hasOnSelectCallback: boolean;\n listTitle: string;\n loadMoreFiles: () => void;\n meta: ListMeta | undefined;\n moveFileToFolder: (fileId: string, folderId: string) => Promise<void>;\n multiple: boolean;\n onClose: () => void;\n onChange: Function;\n onUploadCompletion: (files: FileItem[]) => void;\n own: boolean;\n scope?: string;\n setDragging: (state: boolean) => void;\n setFilters: (data: Record<string, any>) => void;\n setFolderId: (folderId: string) => void;\n setListSort: (state: ListSearchRecordsSort) => void;\n setListTable: (mode: boolean) => void;\n setSearchQuery: (query: string) => void;\n setSelected: (files: TFileItem[]) => void;\n showFileDetails: (id: string) => void;\n showFilters: () => void;\n tags: {\n allTags: FileTag[];\n activeTags: string[];\n setActiveTags: (tags: string[]) => void;\n filterMode: \"AND\" | \"OR\";\n setFilterMode(mode: \"AND\" | \"OR\"): void;\n loading: boolean;\n };\n toggleSelected: (file: TFileItem) => void;\n deselectAll: () => void;\n updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;\n uploadFile: (file: File, options?: UploadFileOptions) => Promise<TFileItem | undefined>;\n}\n\nexport const FileManagerViewContext = React.createContext<FileManagerViewContext | undefined>(\n undefined\n);\n\nconst getCurrentFolderList = (\n folders?: FolderItem[] | null,\n currentFolderId?: string\n): FolderItem[] | [] => {\n if (!folders) {\n return [];\n }\n if (!currentFolderId || currentFolderId.toLowerCase() === ROOT_FOLDER) {\n return folders.filter(\n folder => !folder.parentId || folder.parentId.toLowerCase() === ROOT_FOLDER\n );\n }\n return folders.filter(folder => folder.parentId === currentFolderId);\n};\n\nexport interface FileManagerViewProviderProps {\n onChange?: Function;\n onClose?: () => void;\n multiple?: boolean;\n accept: string[];\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n children?: React.ReactNode;\n}\n\ntype UploadFileOptions = Pick<UploadOptions, \"onProgress\">;\n\nexport type Loading<T extends string> = { [P in T]?: boolean };\nexport type LoadingActions = \"INIT\" | \"LIST\" | \"LIST_MORE\";\n\nexport const FileManagerViewProvider: React.VFC<FileManagerViewProviderProps> = ({\n children,\n ...props\n}) => {\n const shiftKeyPressed = useShiftKey();\n const modifiers = { scope: props.scope, own: props.own, accept: props.accept };\n const fileManager = useFileManagerApi();\n const { folders: originalFolders, loading: foldersLoading } = useFolders();\n const { currentFolderId = ROOT_FOLDER, navigateToFolder } = useNavigateFolder();\n const tags = useTags(modifiers);\n const [state, setState] = useState(initializeState());\n\n const { loading, files, meta, listFiles, setFiles, getListVariables } = useListFiles({\n folderId: currentFolderId,\n modifiers,\n state\n });\n\n useEffect(() => {\n loadFiles(\"INIT\");\n }, []);\n\n useEffect(() => {\n loadFiles(\"LIST\");\n }, [state.searchQuery, state.filters, state.activeTags, state.listSort, state.tagsFilterMode]);\n\n const loadFiles = async (action: LoadingActions, params?: Partial<ListFilesQueryVariables>) => {\n if (loading.INIT || loading[action]) {\n return;\n }\n const queryVariables = getListVariables();\n await listFiles({ ...queryVariables, ...params });\n setState(state => ({\n ...state,\n isSearch: Boolean(state.searchQuery || state.filters || state.activeTags.length)\n }));\n };\n\n const loadMoreFiles = () => {\n if (meta?.cursor) {\n loadFiles(\"LIST_MORE\", { after: meta.cursor });\n }\n };\n\n const resetSearchParameters = (folderId: string) => {\n const folder = (originalFolders || []).find(folder => folder.id === folderId);\n const isRoot = folder ? folder.id === ROOT_FOLDER : false;\n\n setState(state => ({\n ...state,\n selection: {},\n filters: undefined,\n searchQuery: \"\",\n activeTags: [],\n searchLabel:\n folder && !isRoot ? `Search files in \"${folder.title}\"` : `Search all files`\n }));\n };\n\n const { folders, listTitle } = useMemo(() => {\n // Filter sub-folders and sort them accordingly\n const subFolders = getCurrentFolderList(originalFolders, currentFolderId);\n const folders = sortTableItems(subFolders, state.listSort, { name: \"title\" });\n\n // Get current folder name\n const currentFolder = originalFolders?.find(folder => folder.id === currentFolderId);\n\n return { folders, listTitle: currentFolder?.title || \"\" };\n }, [originalFolders, currentFolderId, state.listSort]);\n\n const getFile = async (id: string) => {\n const fileInState = files.find(file => file.id === id);\n\n if (fileInState) {\n return fileInState;\n }\n\n setState(state => ({\n ...state,\n loadingFileDetails: true\n }));\n\n const file = await fileManager.getFile(id);\n\n if (!file) {\n // No file found - must be deleted by previous operation\n setFiles(files => files.filter(file => file.id !== id));\n } else {\n setFiles(prevFiles => {\n const fileIndex = prevFiles.findIndex(file => file.id === id);\n\n // No record found in the list - must be added by previous operation\n if (fileIndex === -1) {\n return [...prevFiles, file];\n }\n\n // Updating record found in the list\n return [\n ...prevFiles.slice(0, fileIndex),\n {\n ...prevFiles[fileIndex],\n ...file\n },\n ...prevFiles.slice(fileIndex + 1)\n ];\n });\n }\n\n setState(state => ({\n ...state,\n loadingFileDetails: false\n }));\n\n return file;\n };\n\n const getSettings = async () => {\n const settings = await fileManager.getSettings();\n setState(state => ({\n ...state,\n settings\n }));\n };\n\n useEffect(() => {\n getSettings();\n }, []);\n\n const createFile = async (data: FileItem) => {\n if (data.tags) {\n data.tags = addScopePrefix(data.tags);\n }\n\n if (props.scope) {\n data.tags = [...(data.tags || []), props.scope];\n }\n\n const meta = {\n location: {\n folderId: currentFolderId || ROOT_FOLDER\n }\n };\n\n const newFile = await fileManager.createFile(data, meta);\n if (newFile) {\n newFile.tags = removeScopePrefix(newFile.tags || []);\n setFiles(files => [newFile, ...files]);\n }\n return newFile;\n };\n\n const updateFile = async (id: string, data: Partial<FileItem>) => {\n const file = files.find(file => file.id === id);\n if (!file) {\n return;\n }\n\n const newTags = data.tags?.filter(tag => !tags.tags.some(t => t.tag === tag));\n\n if (data.tags) {\n data.tags = addScopePrefix(data.tags);\n }\n\n if (props.scope) {\n data.tags = [...(data.tags || []), props.scope];\n }\n\n await fileManager.updateFile(id, data);\n\n if (newTags) {\n tags.addTags(newTags);\n }\n\n setFiles(files => {\n const index = files.findIndex(file => file.id === id);\n if (index === -1) {\n return files;\n }\n\n const newFile = {\n ...data,\n tags: removeScopePrefix(data.tags)\n };\n\n return [\n ...files.slice(0, index),\n { ...files[index], ...newFile },\n ...files.slice(index + 1)\n ];\n });\n };\n\n const deleteFile = async (id: string) => {\n await fileManager.deleteFile(id);\n\n setFiles(files => {\n const index = files.findIndex(file => file.id === id);\n if (index === -1) {\n return files;\n }\n\n return [...files.slice(0, index), ...files.slice(index + 1)];\n });\n };\n\n /**\n * Upload native browser File\n * @see https://developer.mozilla.org/en-US/docs/Web/API/File\n * @param file\n * @param options\n */\n const uploadFile: FileManagerViewContext[\"uploadFile\"] = async (file, options = {}) => {\n const tags = props.scope ? [props.scope] : [];\n const meta = {\n location: {\n folderId: currentFolderId || ROOT_FOLDER\n }\n };\n\n const newFile = await fileManager.uploadFile(file, meta, {\n tags,\n onProgress: options.onProgress\n });\n if (newFile) {\n newFile.tags = removeScopePrefix(newFile.tags);\n setFiles(files => [newFile, ...files]);\n }\n return newFile;\n };\n\n const moveFileToFolder: FileManagerViewContext[\"moveFileToFolder\"] = async (\n fileId,\n folderId\n ) => {\n await updateFile(fileId, { location: { folderId } });\n setFiles(files => files.filter(file => file.id !== fileId));\n };\n\n const addScopePrefix = (tags: string[] = []) => {\n if (!props.scope) {\n return tags;\n }\n\n return tags.map(tag => `${props.scope}:${tag}`);\n };\n\n const removeScopePrefix = (tags: string[] = []) => {\n if (!props.scope) {\n return tags;\n }\n\n return tags\n .filter(tag => tag !== props.scope)\n .map(tag => {\n return props.scope ? tag.replace(`${props.scope}:`, \"\") : tag;\n });\n };\n\n const context: FileManagerViewContext = {\n ...omit(state, [\"activeTags\"]),\n accept: props.accept,\n hasOnSelectCallback: Boolean(props.onChange),\n createFile,\n deleteFile,\n files,\n folderId: currentFolderId,\n folders: state.isSearch ? [] : folders,\n getFile,\n hideFileDetails() {\n setState(state => ({\n ...state,\n showingFileDetails: null\n }));\n },\n hideFilters() {\n setState(state => ({\n ...state,\n filters: undefined,\n showingFilters: false\n }));\n },\n isListLoading: Boolean(\n loading.INIT || foldersLoading.INIT || loading.LIST || foldersLoading.LIST\n ),\n isListLoadingMore: Boolean(loading.LIST_MORE),\n listTitle,\n loadMoreFiles,\n meta,\n moveFileToFolder,\n multiple: Boolean(props.multiple),\n onChange(value: any[]) {\n if (typeof props.onChange === \"function\") {\n props.onChange(value);\n }\n\n context.onClose();\n },\n onClose() {\n if (typeof props.onClose === \"function\") {\n props.onClose();\n }\n },\n onUploadCompletion(files) {\n setState(state => ({\n ...state,\n hasPreviouslyUploadedFiles: true\n }));\n\n if (typeof props.onUploadCompletion === \"function\") {\n props.onUploadCompletion(files);\n context.onClose();\n }\n },\n own: Boolean(props.own),\n scope: props.scope,\n setDragging(value = true) {\n setState(state => ({\n ...state,\n dragging: value\n }));\n },\n setFilters(data) {\n setState(state => ({\n ...state,\n selected: [],\n filters: data,\n selection: {}\n }));\n },\n setFolderId(folderId) {\n resetSearchParameters(folderId);\n navigateToFolder(folderId);\n },\n setListSort(sort: ListSearchRecordsSort) {\n setState(state => ({\n ...state,\n listSort: sort\n }));\n },\n setListTable(flag) {\n setState(state => ({\n ...state,\n listTable: flag\n }));\n },\n setSearchQuery(search) {\n setState(state => ({\n ...state,\n searchQuery: search\n }));\n },\n setSelected(files: FileItem[]) {\n setState(state => ({\n ...state,\n selected: files\n }));\n },\n showFileDetails: useCallback((id: string) => {\n setState(state => ({\n ...state,\n showingFileDetails: id\n }));\n }, []),\n showFilters() {\n setState(state => ({\n ...state,\n showingFilters: true\n }));\n },\n tags: {\n loading: tags.loading,\n allTags: tags.tags,\n activeTags: state.activeTags,\n filterMode: state.tagsFilterMode,\n setFilterMode(mode) {\n setState(state => ({\n ...state,\n tagsFilterMode: mode\n }));\n },\n setActiveTags(activeTags) {\n setState(state => ({\n ...state,\n activeTags\n }));\n }\n },\n toggleSelected(file: FileItem) {\n setState(state =>\n setSelection({\n state,\n files,\n toggledFile: file,\n shiftKeyPressed\n })\n );\n },\n deselectAll() {\n setState(state => ({ ...state, selected: [] }));\n },\n updateFile,\n uploadFile\n };\n\n return (\n <FileManagerViewContext.Provider value={context}>\n {children}\n </FileManagerViewContext.Provider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FileItem } from "@webiny/app-admin/types";
|
|
2
|
+
import { State } from "./state";
|
|
3
|
+
interface GetSelectionParams {
|
|
4
|
+
state: State;
|
|
5
|
+
files: FileItem[];
|
|
6
|
+
toggledFile: FileItem;
|
|
7
|
+
shiftKeyPressed: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const setSelection: ({ state, files, toggledFile, shiftKeyPressed }: GetSelectionParams) => {
|
|
10
|
+
selection: {
|
|
11
|
+
anchor?: number | undefined;
|
|
12
|
+
focus?: number | undefined;
|
|
13
|
+
};
|
|
14
|
+
selected: FileItem[];
|
|
15
|
+
activeTags: string[];
|
|
16
|
+
dragging: boolean;
|
|
17
|
+
filters: Record<string, any> | undefined;
|
|
18
|
+
isSearch: boolean;
|
|
19
|
+
limit: number;
|
|
20
|
+
listSort?: import("../../FileManagerApiProvider/graphql").ListFilesSort | undefined;
|
|
21
|
+
listTable: boolean;
|
|
22
|
+
loadingFileDetails: boolean;
|
|
23
|
+
searchLabel: string;
|
|
24
|
+
searchQuery: string;
|
|
25
|
+
settings: import("../../../types").Settings | undefined;
|
|
26
|
+
showingFileDetails: string | null;
|
|
27
|
+
showingFilters: boolean;
|
|
28
|
+
tagsFilterMode: "AND" | "OR";
|
|
29
|
+
};
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.setSelection = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
var getFileIndex = function getFileIndex(files, file) {
|
|
12
|
+
if (!file) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
var index = files.findIndex(function (f) {
|
|
16
|
+
return f.id === file.id;
|
|
17
|
+
});
|
|
18
|
+
return index > -1 ? index : undefined;
|
|
19
|
+
};
|
|
20
|
+
var isAnchorSet = function isAnchorSet(anchor) {
|
|
21
|
+
return anchor !== undefined;
|
|
22
|
+
};
|
|
23
|
+
var normalizeSelection = function normalizeSelection(start, end) {
|
|
24
|
+
if (end === undefined) {
|
|
25
|
+
return [start, undefined];
|
|
26
|
+
}
|
|
27
|
+
return [Math.min(start, end), Math.max(start, end)];
|
|
28
|
+
};
|
|
29
|
+
var setSelection = function setSelection(_ref) {
|
|
30
|
+
var state = _ref.state,
|
|
31
|
+
files = _ref.files,
|
|
32
|
+
toggledFile = _ref.toggledFile,
|
|
33
|
+
shiftKeyPressed = _ref.shiftKeyPressed;
|
|
34
|
+
// Check if the `toggledFile` is already in the `selected` files.
|
|
35
|
+
var existingIndex = getFileIndex(state.selected, toggledFile);
|
|
36
|
+
var toggledFileIndex = getFileIndex(files, toggledFile);
|
|
37
|
+
var selected = new Set((0, _toConsumableArray2.default)(state.selected));
|
|
38
|
+
var selection = (0, _objectSpread2.default)({}, state.selection);
|
|
39
|
+
|
|
40
|
+
// Add a single file to selection.
|
|
41
|
+
if (existingIndex === undefined && !shiftKeyPressed) {
|
|
42
|
+
selected.add(toggledFile);
|
|
43
|
+
selection.anchor = toggledFileIndex;
|
|
44
|
+
selection.focus = undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Remove a single file from selection.
|
|
48
|
+
if (existingIndex !== undefined && !shiftKeyPressed) {
|
|
49
|
+
selected.delete(toggledFile);
|
|
50
|
+
var prevSelectedFile = Array.from(selected.values()).pop();
|
|
51
|
+
selection.anchor = getFileIndex(files, prevSelectedFile);
|
|
52
|
+
selection.focus = undefined;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Handle range selection ("shift" key is pressed).
|
|
56
|
+
if (isAnchorSet(selection.anchor) && shiftKeyPressed) {
|
|
57
|
+
var prevFocus = selection.focus;
|
|
58
|
+
selection.focus = toggledFileIndex;
|
|
59
|
+
var _normalizeSelection = normalizeSelection(selection.anchor, toggledFileIndex),
|
|
60
|
+
_normalizeSelection2 = (0, _slicedToArray2.default)(_normalizeSelection, 2),
|
|
61
|
+
newAnchor = _normalizeSelection2[0],
|
|
62
|
+
newFocus = _normalizeSelection2[1];
|
|
63
|
+
var _normalizeSelection3 = normalizeSelection(selection.anchor, prevFocus),
|
|
64
|
+
_normalizeSelection4 = (0, _slicedToArray2.default)(_normalizeSelection3, 2),
|
|
65
|
+
oldAnchor = _normalizeSelection4[0],
|
|
66
|
+
oldFocus = _normalizeSelection4[1];
|
|
67
|
+
var selectedRange = files.filter(function (_, index) {
|
|
68
|
+
if (index < newAnchor) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (newFocus && index > newFocus) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
75
|
+
});
|
|
76
|
+
selected.forEach(function (file) {
|
|
77
|
+
var index = getFileIndex(files, file);
|
|
78
|
+
var selectionAnchor = selection.anchor;
|
|
79
|
+
var mustNotBeUndefined = [index, oldFocus, newFocus, selectionAnchor];
|
|
80
|
+
if (mustNotBeUndefined.includes(undefined)) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* If the new selection is smaller than the previous selection, we need to deselect items
|
|
86
|
+
* that are now outside the new, smaller, selection.
|
|
87
|
+
*/
|
|
88
|
+
// @ts-expect-error We already checked for `undefined` above.
|
|
89
|
+
if (newFocus < oldFocus && index > newFocus && index <= oldFocus) {
|
|
90
|
+
selected.delete(file);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* If the previous selection was made backwards (`oldAnchor` is essentially pointing to the shift-clicked item
|
|
95
|
+
* of the previous selection, which is the `focus` of the selection, but it's normalized, so it becomes an anchor),
|
|
96
|
+
* and the current selection is made forward (selectionAnchor > oldAnchor), we need to deselect items between the
|
|
97
|
+
* old selection anchor and the old selection focus (which is also the new selection anchor).
|
|
98
|
+
*/
|
|
99
|
+
// @ts-expect-error We already checked for `undefined` above.
|
|
100
|
+
if (selectionAnchor > oldAnchor && index >= oldAnchor && index < oldFocus) {
|
|
101
|
+
selected.delete(file);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
selectedRange.forEach(function (file) {
|
|
105
|
+
selected.add(file);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
109
|
+
selection: selection,
|
|
110
|
+
selected: Array.from(selected.values())
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
exports.setSelection = setSelection;
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=setSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getFileIndex","files","file","undefined","index","findIndex","f","id","isAnchorSet","anchor","normalizeSelection","start","end","Math","min","max","setSelection","_ref","state","toggledFile","shiftKeyPressed","existingIndex","selected","toggledFileIndex","Set","_toConsumableArray2","default","selection","_objectSpread2","add","focus","delete","prevSelectedFile","Array","from","values","pop","prevFocus","_normalizeSelection","_normalizeSelection2","_slicedToArray2","newAnchor","newFocus","_normalizeSelection3","_normalizeSelection4","oldAnchor","oldFocus","selectedRange","filter","_","forEach","selectionAnchor","mustNotBeUndefined","includes","exports"],"sources":["setSelection.ts"],"sourcesContent":["import { FileItem } from \"@webiny/app-admin/types\";\nimport { State } from \"./state\";\n\ninterface GetSelectionParams {\n state: State;\n files: FileItem[];\n toggledFile: FileItem;\n shiftKeyPressed: boolean;\n}\n\nconst getFileIndex = (files: FileItem[], file: FileItem | undefined) => {\n if (!file) {\n return undefined;\n }\n\n const index = files.findIndex(f => f.id === file.id);\n return index > -1 ? index : undefined;\n};\n\nconst isAnchorSet = (anchor: number | undefined): anchor is number => {\n return anchor !== undefined;\n};\n\nconst normalizeSelection = (\n start: number,\n end: number | undefined\n): [number, number | undefined] => {\n if (end === undefined) {\n return [start, undefined];\n }\n\n return [Math.min(start, end), Math.max(start, end)];\n};\n\nexport const setSelection = ({\n state,\n files,\n toggledFile,\n shiftKeyPressed\n}: GetSelectionParams) => {\n // Check if the `toggledFile` is already in the `selected` files.\n const existingIndex = getFileIndex(state.selected, toggledFile);\n const toggledFileIndex = getFileIndex(files, toggledFile) as number;\n const selected = new Set([...state.selected]);\n const selection = { ...state.selection };\n\n // Add a single file to selection.\n if (existingIndex === undefined && !shiftKeyPressed) {\n selected.add(toggledFile);\n selection.anchor = toggledFileIndex;\n selection.focus = undefined;\n }\n\n // Remove a single file from selection.\n if (existingIndex !== undefined && !shiftKeyPressed) {\n selected.delete(toggledFile);\n const prevSelectedFile = Array.from(selected.values()).pop();\n selection.anchor = getFileIndex(files, prevSelectedFile);\n selection.focus = undefined;\n }\n\n // Handle range selection (\"shift\" key is pressed).\n if (isAnchorSet(selection.anchor) && shiftKeyPressed) {\n const prevFocus = selection.focus;\n selection.focus = toggledFileIndex;\n\n const [newAnchor, newFocus] = normalizeSelection(selection.anchor, toggledFileIndex);\n const [oldAnchor, oldFocus] = normalizeSelection(selection.anchor, prevFocus);\n\n const selectedRange = files.filter((_, index) => {\n if (index < newAnchor) {\n return false;\n }\n\n if (newFocus && index > newFocus) {\n return false;\n }\n\n return true;\n });\n\n selected.forEach(file => {\n const index = getFileIndex(files, file);\n const selectionAnchor = selection.anchor;\n\n const mustNotBeUndefined = [index, oldFocus, newFocus, selectionAnchor];\n if (mustNotBeUndefined.includes(undefined)) {\n return;\n }\n\n /**\n * If the new selection is smaller than the previous selection, we need to deselect items\n * that are now outside the new, smaller, selection.\n */\n // @ts-expect-error We already checked for `undefined` above.\n if (newFocus < oldFocus && index > newFocus && index <= oldFocus) {\n selected.delete(file);\n }\n\n /**\n * If the previous selection was made backwards (`oldAnchor` is essentially pointing to the shift-clicked item\n * of the previous selection, which is the `focus` of the selection, but it's normalized, so it becomes an anchor),\n * and the current selection is made forward (selectionAnchor > oldAnchor), we need to deselect items between the\n * old selection anchor and the old selection focus (which is also the new selection anchor).\n */\n // @ts-expect-error We already checked for `undefined` above.\n if (selectionAnchor > oldAnchor && index >= oldAnchor && index < oldFocus) {\n selected.delete(file);\n }\n });\n\n selectedRange.forEach(file => {\n selected.add(file);\n });\n }\n\n return {\n ...state,\n selection,\n selected: Array.from(selected.values())\n };\n};\n"],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ export interface State {
|
|
|
5
5
|
activeTags: string[];
|
|
6
6
|
dragging: boolean;
|
|
7
7
|
filters: Record<string, any> | undefined;
|
|
8
|
-
hasPreviouslyUploadedFiles: boolean | null;
|
|
9
8
|
isSearch: boolean;
|
|
10
9
|
limit: number;
|
|
11
10
|
listSort?: ListFilesSort;
|
|
@@ -14,6 +13,10 @@ export interface State {
|
|
|
14
13
|
searchLabel: string;
|
|
15
14
|
searchQuery: string;
|
|
16
15
|
selected: FileItem[];
|
|
16
|
+
selection: {
|
|
17
|
+
anchor?: number | undefined;
|
|
18
|
+
focus?: number | undefined;
|
|
19
|
+
};
|
|
17
20
|
settings: Settings | undefined;
|
|
18
21
|
showingFileDetails: string | null;
|
|
19
22
|
showingFilters: boolean;
|
|
@@ -22,7 +22,6 @@ var initializeState = function initializeState() {
|
|
|
22
22
|
dragging: false,
|
|
23
23
|
isSearch: false,
|
|
24
24
|
filters: undefined,
|
|
25
|
-
hasPreviouslyUploadedFiles: null,
|
|
26
25
|
limit: 50,
|
|
27
26
|
listSort: [],
|
|
28
27
|
listTable: false,
|
|
@@ -30,10 +29,13 @@ var initializeState = function initializeState() {
|
|
|
30
29
|
searchLabel: "",
|
|
31
30
|
searchQuery: "",
|
|
32
31
|
selected: [],
|
|
32
|
+
selection: {},
|
|
33
33
|
settings: undefined,
|
|
34
34
|
showingFileDetails: null,
|
|
35
35
|
showingFilters: false,
|
|
36
36
|
tagsFilterMode: "OR"
|
|
37
37
|
};
|
|
38
38
|
};
|
|
39
|
-
exports.initializeState = initializeState;
|
|
39
|
+
exports.initializeState = initializeState;
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_SCOPE","getScopeWhereParams","scope","tags_not_startsWith","tags_startsWith","exports","initializeState","activeTags","dragging","isSearch","filters","undefined","
|
|
1
|
+
{"version":3,"names":["DEFAULT_SCOPE","getScopeWhereParams","scope","tags_not_startsWith","tags_startsWith","exports","initializeState","activeTags","dragging","isSearch","filters","undefined","limit","listSort","listTable","loadingFileDetails","searchLabel","searchQuery","selected","selection","settings","showingFileDetails","showingFilters","tagsFilterMode"],"sources":["state.ts"],"sourcesContent":["import { FileItem } from \"@webiny/app-admin/types\";\nimport { ListFilesSort } from \"~/modules/FileManagerApiProvider/graphql\";\nimport { Settings } from \"~/types\";\n\nexport interface State {\n activeTags: string[];\n dragging: boolean;\n filters: Record<string, any> | undefined;\n isSearch: boolean;\n limit: number;\n listSort?: ListFilesSort;\n listTable: boolean;\n loadingFileDetails: boolean;\n searchLabel: string;\n searchQuery: string;\n selected: FileItem[];\n selection: {\n anchor?: number | undefined;\n focus?: number | undefined;\n };\n settings: Settings | undefined;\n showingFileDetails: string | null;\n showingFilters: boolean;\n tagsFilterMode: \"AND\" | \"OR\";\n}\nconst DEFAULT_SCOPE = \"scope:\";\n\nexport const getScopeWhereParams = (scope: string | undefined) => {\n if (!scope) {\n return {\n tags_not_startsWith: DEFAULT_SCOPE\n };\n }\n return {\n tags_startsWith: scope\n };\n};\n\nexport const initializeState = (): State => {\n return {\n activeTags: [],\n dragging: false,\n isSearch: false,\n filters: undefined,\n limit: 50,\n listSort: [],\n listTable: false,\n loadingFileDetails: false,\n searchLabel: \"\",\n searchQuery: \"\",\n selected: [],\n selection: {},\n settings: undefined,\n showingFileDetails: null,\n showingFilters: false,\n tagsFilterMode: \"OR\"\n };\n};\n"],"mappings":";;;;;;AAyBA,IAAMA,aAAa,GAAG,QAAQ;AAEvB,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAyB,EAAK;EAC9D,IAAI,CAACA,KAAK,EAAE;IACR,OAAO;MACHC,mBAAmB,EAAEH;IACzB,CAAC;EACL;EACA,OAAO;IACHI,eAAe,EAAEF;EACrB,CAAC;AACL,CAAC;AAACG,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA;AAEK,IAAMK,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAgB;EACxC,OAAO;IACHC,UAAU,EAAE,EAAE;IACdC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE,KAAK;IACfC,OAAO,EAAEC,SAAS;IAClBC,KAAK,EAAE,EAAE;IACTC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,KAAK;IAChBC,kBAAkB,EAAE,KAAK;IACzBC,WAAW,EAAE,EAAE;IACfC,WAAW,EAAE,EAAE;IACfC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,CAAC,CAAC;IACbC,QAAQ,EAAET,SAAS;IACnBU,kBAAkB,EAAE,IAAI;IACxBC,cAAc,EAAE,KAAK;IACrBC,cAAc,EAAE;EACpB,CAAC;AACL,CAAC;AAAClB,OAAA,CAAAC,eAAA,GAAAA,eAAA"}
|
|
@@ -12,9 +12,8 @@ interface UseListFilesParams {
|
|
|
12
12
|
};
|
|
13
13
|
folderId: string;
|
|
14
14
|
state: State;
|
|
15
|
-
onFirstLoad: (meta: ListMeta) => void;
|
|
16
15
|
}
|
|
17
|
-
export declare function useListFiles({ modifiers, folderId, state
|
|
16
|
+
export declare function useListFiles({ modifiers, folderId, state }: UseListFilesParams): {
|
|
18
17
|
files: FileItem[];
|
|
19
18
|
loading: Loading<LoadingActions>;
|
|
20
19
|
meta: ListMeta | undefined;
|
|
@@ -29,14 +29,12 @@ function nonEmptyArray(value) {
|
|
|
29
29
|
function useListFiles(_ref) {
|
|
30
30
|
var modifiers = _ref.modifiers,
|
|
31
31
|
folderId = _ref.folderId,
|
|
32
|
-
state = _ref.state
|
|
33
|
-
onFirstLoad = _ref.onFirstLoad;
|
|
32
|
+
state = _ref.state;
|
|
34
33
|
var _useSecurity = (0, _appSecurity.useSecurity)(),
|
|
35
34
|
identity = _useSecurity.identity;
|
|
36
35
|
var fileManager = (0, _FileManagerApiContext.useFileManagerApi)();
|
|
37
36
|
var _useFolders = (0, _appAco.useFolders)(),
|
|
38
37
|
getDescendantFolders = _useFolders.getDescendantFolders;
|
|
39
|
-
var firstLoad = (0, _react.useRef)(true);
|
|
40
38
|
var _useState = (0, _react.useState)(undefined),
|
|
41
39
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
42
40
|
meta = _useState2[0],
|
|
@@ -103,11 +101,7 @@ function useListFiles(_ref) {
|
|
|
103
101
|
INIT: false
|
|
104
102
|
}, action, false));
|
|
105
103
|
});
|
|
106
|
-
|
|
107
|
-
firstLoad.current = false;
|
|
108
|
-
onFirstLoad(fmResponse.meta);
|
|
109
|
-
}
|
|
110
|
-
case 15:
|
|
104
|
+
case 14:
|
|
111
105
|
case "end":
|
|
112
106
|
return _context.stop();
|
|
113
107
|
}
|
|
@@ -171,4 +165,6 @@ function useListFiles(_ref) {
|
|
|
171
165
|
listFiles: listFiles,
|
|
172
166
|
getListVariables: getListVariables
|
|
173
167
|
};
|
|
174
|
-
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
//# sourceMappingURL=useListFiles.js.map
|