Minimize number of sidebar rerenders

This commit is contained in:
John Firebaugh
2013-05-31 16:27:47 -07:00
parent 29e6880fc0
commit 5156358b07
+18 -7
View File
@@ -1,5 +1,6 @@
iD.ui.Sidebar = function(context) {
var current;
var inspector = iD.ui.Inspector(context),
current;
function sidebar(selection) {
var wrap = selection.append('div')
@@ -10,10 +11,15 @@ iD.ui.Sidebar = function(context) {
if (!current && entity) {
wrap.classed('inspector-hidden', false)
.classed('inspector-hover', true)
.call(iD.ui.Inspector(context)
.classed('inspector-hover', true);
if (inspector.entityID() !== entity.id || inspector.state() !== 'hover') {
inspector
.state('hover')
.entityID(entity.id));
.entityID(entity.id);
wrap.call(inspector);
}
} else {
wrap.classed('inspector-hidden', true);
}
@@ -22,10 +28,15 @@ iD.ui.Sidebar = function(context) {
context.on('select.sidebar', function(selection) {
if (!current && selection.length === 1) {
wrap.classed('inspector-hidden', false)
.classed('inspector-hover', false)
.call(iD.ui.Inspector(context)
.classed('inspector-hover', false);
if (inspector.entityID() !== selection[0] || inspector.state() !== 'select') {
inspector
.state('select')
.entityID(selection[0]));
.entityID(selection[0]);
wrap.call(inspector);
}
} else {
wrap.classed('inspector-hidden', true);
}