Merge branch '17426-plug-ins' refs #17426
[arvados-workbench2.git] / src / store / context-menu / context-menu-reducer.ts
index 147f094336526106182c294426597c6a385d2230..03d9cc7843a8df8e5f068a74274d0d6cb7a682e0 100644 (file)
@@ -2,10 +2,10 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ResourceKind } from "../../models/resource";
-import actions, { ContextMenuAction } from "./context-menu-actions";
+import { contextMenuActions, ContextMenuAction, ContextMenuResource } from "./context-menu-actions";
 
 export interface ContextMenuState {
+    open: boolean;
     position: ContextMenuPosition;
     resource?: ContextMenuResource;
 }
@@ -15,20 +15,15 @@ export interface ContextMenuPosition {
     y: number;
 }
 
-export interface ContextMenuResource {
-    uuid: string;
-    kind: string;
-}
-
 const initialState = {
+    open: false,
     position: { x: 0, y: 0 }
 };
 
-const reducer = (state: ContextMenuState = initialState, action: ContextMenuAction) =>
-    actions.match(action, {
+export const contextMenuReducer = (state: ContextMenuState = initialState, action: ContextMenuAction) =>
+    contextMenuActions.match(action, {
         default: () => state,
-        OPEN_CONTEXT_MENU: ({resource, position}) => ({ resource, position }),
-        CLOSE_CONTEXT_MENU: () => ({ position: state.position })
+        OPEN_CONTEXT_MENU: ({ resource, position }) => ({ open: true, resource, position }),
+        CLOSE_CONTEXT_MENU: () => ({ ...state, open: false })
     });
 
-export default reducer;