Moved the node networks computation to selectors.

This commit is contained in:
Filip Barl
2017-02-10 17:37:37 +01:00
parent 5bd8e8f690
commit b9ba83ffca
14 changed files with 122 additions and 104 deletions

View File

@@ -1,20 +1,15 @@
import { fromJS, List as makeList } from 'immutable';
import { fromJS } from 'immutable';
export function getNetworkNodes(nodes) {
const networks = {};
nodes.forEach(node => (node.get('networks') || makeList()).forEach((n) => {
const networkId = n.get('id');
networks[networkId] = (networks[networkId] || []).concat([node.get('id')]);
}));
return fromJS(networks);
}
export function getAvailableNetworks(nodes) {
return nodes
.valueSeq()
.flatMap(node => node.get('networks') || makeList())
.toSet()
.toList()
.sortBy(m => m.get('label'));
import { nodeNetworksSelector } from '../selectors/node-networks';
export function getNetworkNodes(state) {
const networksMap = {};
nodeNetworksSelector(state).forEach((networks, nodeId) => {
networks.forEach((network) => {
const networkId = network.get('id');
networksMap[networkId] = networksMap[networkId] || [];
networksMap[networkId].push(nodeId);
});
});
return fromJS(networksMap);
}