From d554f02ff702e0ebc5efbe27961e677e32f6813b Mon Sep 17 00:00:00 2001 From: David Kaltschmidt Date: Thu, 14 Apr 2016 18:02:03 +0200 Subject: [PATCH] Dont clear node details when closing a terminal * a route event no longer clears the loaded node details Fixes #1302 --- client/app/scripts/stores/app-store.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/client/app/scripts/stores/app-store.js b/client/app/scripts/stores/app-store.js index bbe0f33af..bfd9ab608 100644 --- a/client/app/scripts/stores/app-store.js +++ b/client/app/scripts/stores/app-store.js @@ -1,6 +1,6 @@ import _ from 'lodash'; import debug from 'debug'; -import { fromJS, List, Map, OrderedMap, Set } from 'immutable'; +import { fromJS, is as isDeepEqual, List, Map, OrderedMap, Set } from 'immutable'; import { Store } from 'flux/utils'; import AppDispatcher from '../dispatcher/app-dispatcher'; @@ -707,7 +707,12 @@ export class AppStore extends Store { controlPipes = controlPipes.clear(); } if (payload.state.nodeDetails) { - nodeDetails = makeOrderedMap(payload.state.nodeDetails.map(obj => [obj.id, obj])); + const payloadNodeDetails = makeOrderedMap( + payload.state.nodeDetails.map(obj => [obj.id, obj])); + // check if detail IDs have changed + if (!isDeepEqual(nodeDetails.keySeq(), payloadNodeDetails.keySeq())) { + nodeDetails = payloadNodeDetails; + } } else { nodeDetails = nodeDetails.clear(); }