summaryrefslogtreecommitdiff
path: root/src/containers/app/timeline/TimelineContainer.js
blob: 74d37d5853b6bf321f1ce6db7dfcacb4b7769816 (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
36
37
38
39
40
41
import { connect } from "react-redux";
import { pauseSimulation } from "../../../actions/simulation/playback";
import { incrementTick } from "../../../actions/simulation/tick";
import { setCurrentDatacenter } from "../../../actions/topology/building";
import TimelineComponent from "../../../components/app/timeline/TimelineComponent";

const mapStateToProps = state => {
  let sections = [];
  if (state.currentExperimentId !== -1) {
    const sectionIds =
      state.objects.path[
        state.objects.experiment[state.currentExperimentId].pathId
      ].sectionIds;

    if (sectionIds) {
      sections = sectionIds.map(sectionId => state.objects.section[sectionId]);
    }
  }

  return {
    isPlaying: state.isPlaying,
    currentTick: state.currentTick,
    lastSimulatedTick: state.lastSimulatedTick,
    currentDatacenterId: state.currentDatacenterId,
    sections
  };
};

const mapDispatchToProps = dispatch => {
  return {
    incrementTick: () => dispatch(incrementTick()),
    pauseSimulation: () => dispatch(pauseSimulation()),
    setCurrentDatacenter: id => dispatch(setCurrentDatacenter(id))
  };
};

const TimelineContainer = connect(mapStateToProps, mapDispatchToProps)(
  TimelineComponent
);

export default TimelineContainer;