1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { PermissionLevel } from 'models/permission';
6 import { getFormValues, isDirty } from 'redux-form';
7 import { RootState } from 'store/store';
9 export const SHARING_DIALOG_NAME = 'SHARING_DIALOG_NAME';
10 export const SHARING_MANAGEMENT_FORM_NAME = 'SHARING_MANAGEMENT_FORM_NAME';
11 export const SHARING_INVITATION_FORM_NAME = 'SHARING_INVITATION_FORM_NAME';
13 export interface SharingManagementFormData {
14 permissions: SharingManagementFormDataRow[];
15 initialPermissions: SharingManagementFormDataRow[];
18 export interface SharingManagementFormDataRow {
20 permissions: PermissionLevel;
21 permissionUuid: string;
24 export interface SharingInvitationFormData {
25 permissions: PermissionLevel;
26 invitedPeople: SharingInvitationFormPersonData[];
29 export interface SharingInvitationFormPersonData {
35 export const getSharingMangementFormData = (state: any) =>
36 getFormValues(SHARING_MANAGEMENT_FORM_NAME)(state) as SharingManagementFormData;
38 export const hasChanges = (state: RootState) =>
39 isDirty(SHARING_MANAGEMENT_FORM_NAME)(state) ||
40 isDirty(SHARING_INVITATION_FORM_NAME)(state);