import { default as unionize, ofType, UnionOf } from "unionize";
import { Dispatch } from "redux";
-import { CollectionFilesTree, CollectionFileType } from "../../../models/collection-file";
-import { ServiceRepository } from "../../../services/services";
+import { CollectionFilesTree, CollectionFileType } from "~/models/collection-file";
+import { ServiceRepository } from "~/services/services";
import { RootState } from "../../store";
import { snackbarActions } from "../../snackbar/snackbar-actions";
import { dialogActions } from "../../dialog/dialog-actions";
-import { getNodeValue, getNodeDescendants } from "../../../models/tree";
+import { getNodeValue, getNodeDescendants } from '~/models/tree';
import { CollectionPanelDirectory, CollectionPanelFile } from "./collection-panel-files-state";
export const collectionPanelFilesAction = unionize({
(dispatch: Dispatch, getState: () => RootState) => {
const tree = getState().collectionPanelFiles;
const allFiles = getNodeDescendants('')(tree)
- .map(id => getNodeValue(id)(tree))
- .filter(file => file !== undefined) as Array<CollectionPanelDirectory | CollectionPanelFile>;
+ .map(node => node.value);
const selectedDirectories = allFiles.filter(file => file.selected && file.type === CollectionFileType.DIRECTORY);
const selectedFiles = allFiles.filter(file => file.selected && !selectedDirectories.some(dir => dir.id === file.path));
text: 'Are you sure you want to remove selected files?',
confirmButtonLabel: 'Remove'
}
- });
\ No newline at end of file
+ });