summaryrefslogtreecommitdiff
path: root/src/reducers/construction-mode.js
blob: c4c0c0106c338f3244b9512e0c3ad9b7c259bb27 (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
import {combineReducers} from "redux";
import {OPEN_EXPERIMENT_SUCCEEDED} from "../actions/experiments";
import {GO_DOWN_ONE_INTERACTION_LEVEL} from "../actions/interaction-level";
import {
  CANCEL_NEW_ROOM_CONSTRUCTION_SUCCEEDED,
  FINISH_NEW_ROOM_CONSTRUCTION,
  START_NEW_ROOM_CONSTRUCTION_SUCCEEDED
} from "../actions/topology/building";
import {START_RACK_CONSTRUCTION, STOP_RACK_CONSTRUCTION} from "../actions/topology/room";

export function currentRoomInConstruction(state = -1, action) {
  switch (action.type) {
    case START_NEW_ROOM_CONSTRUCTION_SUCCEEDED:
      return action.roomId;
    case CANCEL_NEW_ROOM_CONSTRUCTION_SUCCEEDED:
    case FINISH_NEW_ROOM_CONSTRUCTION:
    case OPEN_EXPERIMENT_SUCCEEDED:
      return -1;
    default:
      return state;
  }
}

export function inRackConstructionMode(state = false, action) {
  switch (action.type) {
    case START_RACK_CONSTRUCTION:
      return true;
    case STOP_RACK_CONSTRUCTION:
    case OPEN_EXPERIMENT_SUCCEEDED:
    case GO_DOWN_ONE_INTERACTION_LEVEL:
      return false;
    default:
      return state;
  }
}

export const construction = combineReducers({
  currentRoomInConstruction,
  inRackConstructionMode
});