summaryrefslogtreecommitdiff
path: root/src/containers/sidebars/topology/rack/MachineContainer.js
blob: 7406d191ec3d05a8c36a3fd5759ac51f0751cf38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import {connect} from "react-redux";
import {goFromRackToMachine} from "../../../../actions/interaction-level";
import MachineComponent from "../../../../components/sidebars/topology/rack/MachineComponent";
import {getStateLoad} from "../../../../util/simulation-load";

const mapStateToProps = (state, ownProps) => {
    const machine = state.objects.machine[ownProps.machineId];
    const inSimulation = state.currentExperimentId !== -1;

    let machineLoad = undefined;
    if (inSimulation) {
        if (state.states.machine[state.currentTick] && state.states.machine[state.currentTick][machine.id]) {
            machineLoad = getStateLoad(state.loadMetric, state.states.machine[state.currentTick][machine.id]);
        }
    }

    return {
        machine,
        inSimulation,
        machineLoad
    };
};

const mapDispatchToProps = (dispatch, ownProps) => {
    return {
        onClick: () => dispatch(goFromRackToMachine(ownProps.position)),
    };
};

const MachineContainer = connect(
    mapStateToProps,
    mapDispatchToProps
)(MachineComponent);

export default MachineContainer;