Merge remote-tracking branch 'origin/main' into 18207-Workbench2-is-not-clearing...
[arvados-workbench2.git] / src / views-components / dialog-forms / update-project-dialog.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { compose } from "redux";
6 import { reduxForm } from 'redux-form';
7 import { withDialog } from "store/dialog/with-dialog";
8 import { DialogProjectUpdate } from 'views-components/dialog-update/dialog-project-update';
9 import { PROJECT_UPDATE_FORM_NAME, ProjectUpdateFormDialogData } from 'store/projects/project-update-actions';
10 import { updateProject, updateGroup } from 'store/workbench/workbench-actions';
11 import { GroupClass } from "models/group";
12 import { createGroup } from "store/groups-panel/groups-panel-actions";
13
14 export const UpdateProjectDialog = compose(
15     withDialog(PROJECT_UPDATE_FORM_NAME),
16     reduxForm<ProjectUpdateFormDialogData>({
17         form: PROJECT_UPDATE_FORM_NAME,
18         onSubmit: (data, dispatch, props) => {
19             switch (props.data.sourcePanel) {
20                 case GroupClass.PROJECT:
21                     dispatch(updateProject(data));
22                     break;
23                 case GroupClass.ROLE:
24                     if (data.uuid) {
25                         dispatch(updateGroup(data));
26                     } else {
27                         dispatch(createGroup(data));
28                     }
29                     break;
30                 default:
31                     break;
32             }
33         }
34     })
35 )(DialogProjectUpdate);