diff --git a/src/components/tree/tree.js b/src/components/tree/tree.js index d9eb25c3c..f145481a9 100644 --- a/src/components/tree/tree.js +++ b/src/components/tree/tree.js @@ -41,6 +41,12 @@ class Tree extends React.Component { root: [0, 0] })); }; + /* pressing the escape key should dismiss an info modal (if one exists) */ + this.handlekeydownEvent = (event) => { + if (event.keyCode===27 && this.state.selectedNode) { // key 27 is esc + this.clearSelectedNode(this.state.selectedNode); + } + }; } setUpAndRenderTreeToo(props, newState) { /* this.setState(newState) will be run sometime after this returns */ @@ -52,6 +58,7 @@ class Tree extends React.Component { renderTree(this, false, newState.treeToo, props); } componentDidMount() { + document.addEventListener('keyup', this.handlekeydownEvent); if (this.props.tree.loaded) { const newState = {}; newState.tree = new PhyloTree(this.props.tree.nodes, "LEFT", this.props.tree.idxOfInViewRootNode); @@ -96,6 +103,10 @@ class Tree extends React.Component { if (Object.keys(newState).length) this.setState(newState); } + componentWillUnmount() { + document.removeEventListener('keyup', this.handlekeydownEvent); + } + getStyles = () => { const activeResetTreeButton = this.props.tree.idxOfInViewRootNode !== 0 || this.props.treeToo.idxOfInViewRootNode !== 0;