1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
6 import { Dispatch } from 'redux';
7 import { propertiesActions } from '~/store/properties/properties-actions';
8 import { getProperty } from '~/store/properties/properties';
9 import { Person } from '~/views-components/sharing-dialog/people-select';
10 import { dialogActions } from '~/store/dialog/dialog-actions';
11 import { reset } from 'redux-form';
13 export const GROUP_DETAILS_PANEL_ID = 'groupDetailsPanel';
14 export const ADD_GROUP_MEMBERS_DIALOG = 'addGrupMembers';
15 export const ADD_GROUP_MEMBERS_FORM = 'addGrupMembers';
16 export const ADD_GROUP_MEMBERS_USERS_FIELD_NAME = 'users';
19 export const GroupDetailsPanelActions = bindDataExplorerActions(GROUP_DETAILS_PANEL_ID);
21 export const loadGroupDetailsPanel = (groupUuid: string) =>
22 (dispatch: Dispatch) => {
23 dispatch(propertiesActions.SET_PROPERTY({ key: GROUP_DETAILS_PANEL_ID, value: groupUuid }));
24 dispatch(GroupDetailsPanelActions.REQUEST_ITEMS());
27 export const getCurrentGroupDetailsPanelUuid = getProperty<string>(GROUP_DETAILS_PANEL_ID);
29 export interface AddGroupMembersFormData {
30 [ADD_GROUP_MEMBERS_USERS_FIELD_NAME]: Person[];
33 export const openAddGroupMembersDialog = () =>
34 (dispatch: Dispatch) => {
35 dispatch(dialogActions.OPEN_DIALOG({ id: ADD_GROUP_MEMBERS_DIALOG, data: {} }));
36 dispatch(reset(ADD_GROUP_MEMBERS_FORM));