//
// 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;
}
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;