//
// SPDX-License-Identifier: AGPL-3.0
-import { ResourceKind } from "../../models/resource";
-import actions, { ContextMenuAction } from "./context-menu-actions";
+import { contextMenuActions, ContextMenuAction } from "./context-menu-actions";
export interface ContextMenuState {
+ open: boolean;
position: ContextMenuPosition;
resource?: ContextMenuResource;
}
export interface ContextMenuResource {
uuid: string;
- kind: ResourceKind;
+ kind: string;
+ name: string;
+ description?: 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;