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].objectId]; 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;