20899: Add menu item to delete workflow record
[arvados-workbench2.git] / src / store / resources / resources.ts
index 3f71140497f7c5df566ef096fb75afc23afcbe0f..e3fb2eb3d53b154b9e7cc254b9b7f406df1ff582 100644 (file)
@@ -9,18 +9,17 @@ import { GroupResource } from "models/group";
 
 export type ResourcesState = { [key: string]: Resource };
 
-export const getResourceWithEditableStatus = <T extends EditableResource & GroupResource>(id: string, userUuid?: string) =>
+export const getResourceWithEditableStatus = <T extends GroupResource & EditableResource>(id: string, userUuid?: string) =>
     (state: ResourcesState): T | undefined => {
         if (state[id] === undefined) { return; }
 
-        const resource = JSON.parse(JSON.stringify(state[id] as T));
+        const resource = JSON.parse(JSON.stringify(state[id])) as T;
 
         if (resource) {
-            resource.isEditable = resource.canWrite;
-
-            if (!resource.isEditable && state[resource.ownerUuid]) {
-                const resourceOwner = JSON.parse(JSON.stringify(state[resource.ownerUuid] as T));
-                resource.isEditable = resourceOwner.canWrite;
+            if (resource.canWrite === undefined) {
+                resource.isEditable = (state[resource.ownerUuid] as GroupResource)?.canWrite;
+            } else {
+                resource.isEditable = resource.canWrite;
             }
         }