From e27a0db3fe14c35fbbb79e1648b3a31a54e5ef5d Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Tue, 27 Jun 2017 20:54:33 -0700 Subject: [PATCH] Keep context menu open when clicking --- js/components/ContextMenu.js | 5 +++-- js/components/MainContextMenu.js | 17 ++++++++++++++--- .../__snapshots__/MainWindow.test.js.snap | 1 + 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/js/components/ContextMenu.js b/js/components/ContextMenu.js index 30dd3ef9..766f5d2e 100644 --- a/js/components/ContextMenu.js +++ b/js/components/ContextMenu.js @@ -47,9 +47,9 @@ export class ContextMenu extends React.Component { } render() { - const { selected, top, bottom, children } = this.props; + const { selected, top, bottom, children, openMenu } = this.props; return ( -
+
    {children}
@@ -60,6 +60,7 @@ export class ContextMenu extends React.Component { ContextMenu.propTypes = { closeMenu: React.PropTypes.func.isRequired, + openMenu: React.PropTypes.func.isRequired, children: React.PropTypes.any.isRequired, top: React.PropTypes.bool, bottom: React.PropTypes.bool diff --git a/js/components/MainContextMenu.js b/js/components/MainContextMenu.js index 9dab913e..85663ba5 100644 --- a/js/components/MainContextMenu.js +++ b/js/components/MainContextMenu.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { CLOSE_CONTEXT_MENU } from "../actionTypes"; +import { CLOSE_CONTEXT_MENU, TOGGLE_CONTEXT_MENU } from "../actionTypes"; import { close, setSkinFromFilename, openFileDialog } from "../actionCreators"; import { ContextMenu, Hr, Node, Parent, LinkNode } from "./ContextMenu"; @@ -14,7 +14,12 @@ const SKINS = [ ]; const MainContextMenu = props => - + ({ closeMenu: () => { dispatch({ type: CLOSE_CONTEXT_MENU }); }, + openMenu: () => { + dispatch({ type: TOGGLE_CONTEXT_MENU }); + }, openFileDialog: () => dispatch(openFileDialog(ownProps.fileInput)), setSkin: filename => dispatch(setSkinFromFilename(filename)) }); -export default connect(null, mapDispatchToProps)(MainContextMenu); +export default connect( + state => ({ selected: state.contextMenu.selected }), + mapDispatchToProps +)(MainContextMenu); diff --git a/js/components/__snapshots__/MainWindow.test.js.snap b/js/components/__snapshots__/MainWindow.test.js.snap index 84c6c3e0..1330d30e 100644 --- a/js/components/__snapshots__/MainWindow.test.js.snap +++ b/js/components/__snapshots__/MainWindow.test.js.snap @@ -24,6 +24,7 @@ exports[`MainWindow renders to snapshot 1`] = ` >