+export const removeCollectionsSelectedFiles = () =>
+ (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>;
+
+ 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));
+ const paths = [...selectedDirectories, ...selectedFiles].map(file => file.id);
+ dispatch<any>(removeCollectionFiles(paths));
+ };
+