Reuse openContextMenu action
[arvados.git] / src / store / collections / collection-create-actions.ts
index 66f5ab8cbdfcd042460a8d0cc1841c2383176629..1981af0d41ddae3e596e926c15cca15ac291eb9b 100644 (file)
@@ -3,36 +3,27 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { Dispatch } from "redux";
-import { reset, startSubmit, stopSubmit } from "redux-form";
+import { reset, startSubmit, stopSubmit, initialize } from 'redux-form';
 import { RootState } from '~/store/store';
 import { uploadCollectionFiles } from '~/store/collections/uploader/collection-uploader-actions';
-import { projectPanelActions } from "~/store/project-panel/project-panel-action";
-import { snackbarActions } from "~/store/snackbar/snackbar-actions";
 import { dialogActions } from "~/store/dialog/dialog-actions";
 import { CollectionResource } from '~/models/collection';
 import { ServiceRepository } from '~/services/services';
 import { getCommonResourceServiceError, CommonResourceServiceError } from "~/common/api/common-resource-service";
 
 export interface CollectionCreateFormDialogData {
+    ownerUuid: string;
     name: string;
     description: string;
     files: File[];
 }
 
-export const COLLECTION_CREATE_FORM_NAME = "collectionCreateDialog";
+export const COLLECTION_CREATE_FORM_NAME = "collectionCreateFormName";
 
-export const openCreateModal = () =>
+export const openCollectionCreateDialog = (ownerUuid: string) =>
     (dispatch: Dispatch) => {
-        dispatch(dialogActions.OPEN_DIALOG({ id: COLLECTION_CREATE_FORM_NAME, data: {} }));
-    };
-
-export const addCollection = (data: CollectionCreateFormDialogData) =>
-    async (dispatch: Dispatch) => {
-        await dispatch<any>(createCollection(data));
-        dispatch(snackbarActions.OPEN_SNACKBAR({
-            message: "Collection has been successfully created.",
-            hideDuration: 2000
-        }));
+        dispatch(initialize(COLLECTION_CREATE_FORM_NAME, { ownerUuid }));
+        dispatch(dialogActions.OPEN_DIALOG({ id: COLLECTION_CREATE_FORM_NAME, data: { ownerUuid } }));
     };
 
 export const createCollection = (collection: Partial<CollectionResource>) =>
@@ -41,14 +32,14 @@ export const createCollection = (collection: Partial<CollectionResource>) =>
         try {
             const newCollection = await services.collectionService.create(collection);
             await dispatch<any>(uploadCollectionFiles(newCollection.uuid));
-            dispatch(projectPanelActions.REQUEST_ITEMS());
             dispatch(dialogActions.CLOSE_DIALOG({ id: COLLECTION_CREATE_FORM_NAME }));
             dispatch(reset(COLLECTION_CREATE_FORM_NAME));
-            // return newCollection;
+            return newCollection;
         } catch (e) {
             const error = getCommonResourceServiceError(e);
             if (error === CommonResourceServiceError.UNIQUE_VIOLATION) {
                 dispatch(stopSubmit(COLLECTION_CREATE_FORM_NAME, { name: 'Collection with the same name already exists.' }));
             }
+            return ;
         }
     };
\ No newline at end of file