1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { ResourceKind } from "../../models/resource";
6 import actions, { ContextMenuAction } from "./context-menu-actions";
8 export interface ContextMenuState {
9 position: ContextMenuPosition;
10 resource?: ContextMenuResource;
13 export interface ContextMenuPosition {
18 export interface ContextMenuResource {
20 kind: ContextMenuKind;
23 export enum ContextMenuKind {
24 RootProject = "RootProject",
26 Collection = "Collection"
29 const initialState = {
30 position: { x: 0, y: 0 }
33 const reducer = (state: ContextMenuState = initialState, action: ContextMenuAction) =>
34 actions.match(action, {
36 OPEN_CONTEXT_MENU: ({resource, position}) => ({ resource, position }),
37 CLOSE_CONTEXT_MENU: () => ({ position: state.position })
40 export default reducer;