import { connect } from 'react-redux' import RackFillBar from '../../../components/app/map/elements/RackFillBar' const mapStateToProps = (state, ownProps) => { let energyConsumptionTotal = 0 const rack = state.objects.rack[state.objects.tile[ownProps.tileId].rackId] const machineIds = rack.machineIds machineIds.forEach(machineId => { if (machineId !== null) { const machine = state.objects.machine[machineId] machine.cpuIds.forEach( id => (energyConsumptionTotal += state.objects.cpu[id].energyConsumptionW), ) machine.gpuIds.forEach( id => (energyConsumptionTotal += state.objects.gpu[id].energyConsumptionW), ) machine.memoryIds.forEach( id => (energyConsumptionTotal += state.objects.memory[id].energyConsumptionW), ) machine.storageIds.forEach( id => (energyConsumptionTotal += state.objects.storage[id].energyConsumptionW), ) } }) return { type: 'energy', fillFraction: Math.min(1, energyConsumptionTotal / rack.powerCapacityW), } } const RackSpaceFillContainer = connect(mapStateToProps)(RackFillBar) export default RackSpaceFillContainer