Post merge fixes
[arvados-workbench2.git] / src / store / trash / trash-actions.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { Dispatch } from "redux";
6 import { RootState } from "~/store/store";
7 import { ServiceRepository } from "~/services/services";
8 import { snackbarActions } from "~/store/snackbar/snackbar-actions";
9 import { trashPanelActions } from "~/store/trash-panel/trash-panel-action";
10
11 export const toggleProjectTrashed = (resource: { uuid: string; name: string, isTrashed?: boolean, ownerUuid?: string }) =>
12     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<any> => {
13         dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Working..." }));
14         if (resource.isTrashed) {
15             return services.groupsService.untrash(resource.uuid).then(() => {
16                 // dispatch<any>(getProjectList(resource.ownerUuid)).then(() => {
17                 //     dispatch(sidePanelActions.TOGGLE_SIDE_PANEL_ITEM_OPEN(SidePanelId.PROJECTS));
18                 //     dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN({ itemId: resource.ownerUuid!!, open: true, recursive: true }));
19                 // });
20                 dispatch(trashPanelActions.REQUEST_ITEMS());
21                 dispatch(snackbarActions.CLOSE_SNACKBAR());
22                 dispatch(snackbarActions.OPEN_SNACKBAR({
23                     message: "Restored from trash",
24                     hideDuration: 2000
25                 }));
26             });
27         } else {
28             return services.groupsService.trash(resource.uuid).then(() => {
29                 // dispatch<any>(getProjectList(resource.ownerUuid)).then(() => {
30                 //     dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN({ itemId: resource.ownerUuid!!, open: true, recursive: true }));
31                 // });
32                 dispatch(snackbarActions.CLOSE_SNACKBAR());
33                 dispatch(snackbarActions.OPEN_SNACKBAR({
34                     message: "Added to trash",
35                     hideDuration: 2000
36                 }));
37             });
38         }
39     };
40
41 export const toggleCollectionTrashed = (resource: { uuid: string; name: string, isTrashed?: boolean, ownerUuid?: string }) =>
42     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<any> => {
43         dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Working..." }));
44         if (resource.isTrashed) {
45             return services.collectionService.untrash(resource.uuid).then(() => {
46                 // dispatch<any>(getProjectList(resource.ownerUuid)).then(() => {
47                 //     dispatch(sidePanelActions.TOGGLE_SIDE_PANEL_ITEM_OPEN(SidePanelId.PROJECTS));
48                 //     dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN({ itemId: resource.ownerUuid!!, open: true, recursive: true }));
49                 // });
50                 dispatch(trashPanelActions.REQUEST_ITEMS());
51                 dispatch(snackbarActions.CLOSE_SNACKBAR());
52                 dispatch(snackbarActions.OPEN_SNACKBAR({
53                     message: "Restored from trash",
54                     hideDuration: 2000
55                 }));
56             });
57         } else {
58             return services.collectionService.trash(resource.uuid).then(() => {
59                 dispatch(snackbarActions.CLOSE_SNACKBAR());
60                 dispatch(snackbarActions.OPEN_SNACKBAR({
61                     message: "Added to trash",
62                     hideDuration: 2000
63                 }));
64             });
65         }
66     };