e.stopPropagation() : this.handleMouseDown}
+ >
{!this.props.rootNode && this.renderCollapse()}
{ history.push(node.url) }}
- onMouseDown={this.props.rootNode ? function(e){e.stopPropagation()} : undefined}
>
{ node.title }
diff --git a/src/components/Tree/UiTree.js b/src/components/Tree/UiTree.js
index 262a209f6..b309e9c49 100644
--- a/src/components/Tree/UiTree.js
+++ b/src/components/Tree/UiTree.js
@@ -230,7 +230,8 @@ module.exports = React.createClass({
tree: tree
});
- this.change(tree);
+ // Don't push updates as collapsing is separated from store state
+ // this.change(tree);
},
// buildTreeNumbering(tree) {
diff --git a/src/scenes/DocumentScene/DocumentScene.js b/src/scenes/DocumentScene/DocumentScene.js
index e8883207a..909dc86b3 100644
--- a/src/scenes/DocumentScene/DocumentScene.js
+++ b/src/scenes/DocumentScene/DocumentScene.js
@@ -1,4 +1,6 @@
import React from 'react';
+import { toJS } from 'mobx';
+import _isEqual from 'lodash/isEqual';
import { Link } from 'react-router';
import { observer } from 'mobx-react';
@@ -65,8 +67,10 @@ class DocumentScene extends React.Component {
}
handleChange = (tree) => {
- console.log(tree);
- store.updateNavigationTree(tree);
+ // Only update when tree changes, otherwise link clicks toggle tree handleChanges changes
+ if (!_isEqual(toJS(tree), toJS(store.document.atlas.navigationTree))) {
+ store.updateNavigationTree(tree);
+ }
}
render() {
@@ -115,7 +119,7 @@ class DocumentScene extends React.Component {