summaryrefslogtreecommitdiff
path: root/frontend/src/containers/app/map
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/containers/app/map')
-rw-r--r--frontend/src/containers/app/map/DatacenterContainer.js24
-rw-r--r--frontend/src/containers/app/map/GrayContainer.js18
-rw-r--r--frontend/src/containers/app/map/MapStage.js46
-rw-r--r--frontend/src/containers/app/map/RackContainer.js46
-rw-r--r--frontend/src/containers/app/map/RackEnergyFillContainer.js70
-rw-r--r--frontend/src/containers/app/map/RackSpaceFillContainer.js24
-rw-r--r--frontend/src/containers/app/map/RoomContainer.js30
-rw-r--r--frontend/src/containers/app/map/TileContainer.js66
-rw-r--r--frontend/src/containers/app/map/WallContainer.js20
-rw-r--r--frontend/src/containers/app/map/controls/ScaleIndicatorContainer.js18
-rw-r--r--frontend/src/containers/app/map/controls/ZoomControlContainer.js28
-rw-r--r--frontend/src/containers/app/map/layers/MapLayer.js18
-rw-r--r--frontend/src/containers/app/map/layers/ObjectHoverLayer.js54
-rw-r--r--frontend/src/containers/app/map/layers/RoomHoverLayer.js88
14 files changed, 275 insertions, 275 deletions
diff --git a/frontend/src/containers/app/map/DatacenterContainer.js b/frontend/src/containers/app/map/DatacenterContainer.js
index 125739f3..9ed1d38c 100644
--- a/frontend/src/containers/app/map/DatacenterContainer.js
+++ b/frontend/src/containers/app/map/DatacenterContainer.js
@@ -1,17 +1,17 @@
-import { connect } from "react-redux";
-import DatacenterGroup from "../../../components/app/map/groups/DatacenterGroup";
+import { connect } from 'react-redux'
+import DatacenterGroup from '../../../components/app/map/groups/DatacenterGroup'
const mapStateToProps = state => {
- if (state.currentDatacenterId === -1) {
- return {};
- }
+ if (state.currentDatacenterId === -1) {
+ return {}
+ }
- return {
- datacenter: state.objects.datacenter[state.currentDatacenterId],
- interactionLevel: state.interactionLevel
- };
-};
+ return {
+ datacenter: state.objects.datacenter[state.currentDatacenterId],
+ interactionLevel: state.interactionLevel,
+ }
+}
-const DatacenterContainer = connect(mapStateToProps)(DatacenterGroup);
+const DatacenterContainer = connect(mapStateToProps)(DatacenterGroup)
-export default DatacenterContainer;
+export default DatacenterContainer
diff --git a/frontend/src/containers/app/map/GrayContainer.js b/frontend/src/containers/app/map/GrayContainer.js
index d215bf6c..4ae3beac 100644
--- a/frontend/src/containers/app/map/GrayContainer.js
+++ b/frontend/src/containers/app/map/GrayContainer.js
@@ -1,13 +1,13 @@
-import { connect } from "react-redux";
-import { goDownOneInteractionLevel } from "../../../actions/interaction-level";
-import GrayLayer from "../../../components/app/map/elements/GrayLayer";
+import { connect } from 'react-redux'
+import { goDownOneInteractionLevel } from '../../../actions/interaction-level'
+import GrayLayer from '../../../components/app/map/elements/GrayLayer'
const mapDispatchToProps = dispatch => {
- return {
- onClick: () => dispatch(goDownOneInteractionLevel())
- };
-};
+ return {
+ onClick: () => dispatch(goDownOneInteractionLevel()),
+ }
+}
-const GrayContainer = connect(undefined, mapDispatchToProps)(GrayLayer);
+const GrayContainer = connect(undefined, mapDispatchToProps)(GrayLayer)
-export default GrayContainer;
+export default GrayContainer
diff --git a/frontend/src/containers/app/map/MapStage.js b/frontend/src/containers/app/map/MapStage.js
index a8467171..e8abb86f 100644
--- a/frontend/src/containers/app/map/MapStage.js
+++ b/frontend/src/containers/app/map/MapStage.js
@@ -1,31 +1,31 @@
-import { connect } from "react-redux";
+import { connect } from 'react-redux'
import {
- setMapDimensions,
- setMapPositionWithBoundsCheck,
- zoomInOnPosition
-} from "../../../actions/map";
-import MapStageComponent from "../../../components/app/map/MapStageComponent";
+ setMapDimensions,
+ setMapPositionWithBoundsCheck,
+ zoomInOnPosition,
+} from '../../../actions/map'
+import MapStageComponent from '../../../components/app/map/MapStageComponent'
const mapStateToProps = state => {
- return {
- mapPosition: state.map.position,
- mapDimensions: state.map.dimensions
- };
-};
+ return {
+ mapPosition: state.map.position,
+ mapDimensions: state.map.dimensions,
+ }
+}
const mapDispatchToProps = dispatch => {
- return {
- zoomInOnPosition: (zoomIn, x, y) =>
- dispatch(zoomInOnPosition(zoomIn, x, y)),
- setMapPositionWithBoundsCheck: (x, y) =>
- dispatch(setMapPositionWithBoundsCheck(x, y)),
- setMapDimensions: (width, height) =>
- dispatch(setMapDimensions(width, height))
- };
-};
+ return {
+ zoomInOnPosition: (zoomIn, x, y) =>
+ dispatch(zoomInOnPosition(zoomIn, x, y)),
+ setMapPositionWithBoundsCheck: (x, y) =>
+ dispatch(setMapPositionWithBoundsCheck(x, y)),
+ setMapDimensions: (width, height) =>
+ dispatch(setMapDimensions(width, height)),
+ }
+}
const MapStage = connect(mapStateToProps, mapDispatchToProps)(
- MapStageComponent
-);
+ MapStageComponent,
+)
-export default MapStage;
+export default MapStage
diff --git a/frontend/src/containers/app/map/RackContainer.js b/frontend/src/containers/app/map/RackContainer.js
index 365bb062..614421b4 100644
--- a/frontend/src/containers/app/map/RackContainer.js
+++ b/frontend/src/containers/app/map/RackContainer.js
@@ -1,30 +1,30 @@
-import { connect } from "react-redux";
-import RackGroup from "../../../components/app/map/groups/RackGroup";
-import { getStateLoad } from "../../../util/simulation-load";
+import { connect } from 'react-redux'
+import RackGroup from '../../../components/app/map/groups/RackGroup'
+import { getStateLoad } from '../../../util/simulation-load'
const mapStateToProps = (state, ownProps) => {
- const inSimulation = state.currentExperimentId !== -1;
+ const inSimulation = state.currentExperimentId !== -1
- let rackLoad = undefined;
- if (inSimulation) {
- if (
- state.states.rack[state.currentTick] &&
- state.states.rack[state.currentTick][ownProps.tile.objectId]
- ) {
- rackLoad = getStateLoad(
- state.loadMetric,
- state.states.rack[state.currentTick][ownProps.tile.objectId]
- );
+ let rackLoad = undefined
+ if (inSimulation) {
+ if (
+ state.states.rack[state.currentTick] &&
+ state.states.rack[state.currentTick][ownProps.tile.objectId]
+ ) {
+ rackLoad = getStateLoad(
+ state.loadMetric,
+ state.states.rack[state.currentTick][ownProps.tile.objectId],
+ )
+ }
}
- }
- return {
- interactionLevel: state.interactionLevel,
- inSimulation,
- rackLoad
- };
-};
+ return {
+ interactionLevel: state.interactionLevel,
+ inSimulation,
+ rackLoad,
+ }
+}
-const RackContainer = connect(mapStateToProps)(RackGroup);
+const RackContainer = connect(mapStateToProps)(RackGroup)
-export default RackContainer;
+export default RackContainer
diff --git a/frontend/src/containers/app/map/RackEnergyFillContainer.js b/frontend/src/containers/app/map/RackEnergyFillContainer.js
index 0b7921d9..e25cd37d 100644
--- a/frontend/src/containers/app/map/RackEnergyFillContainer.js
+++ b/frontend/src/containers/app/map/RackEnergyFillContainer.js
@@ -1,40 +1,40 @@
-import { connect } from "react-redux";
-import RackFillBar from "../../../components/app/map/elements/RackFillBar";
+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)
- );
- }
- });
+ 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)
- };
-};
+ return {
+ type: 'energy',
+ fillFraction: Math.min(1, energyConsumptionTotal / rack.powerCapacityW),
+ }
+}
-const RackSpaceFillContainer = connect(mapStateToProps)(RackFillBar);
+const RackSpaceFillContainer = connect(mapStateToProps)(RackFillBar)
-export default RackSpaceFillContainer;
+export default RackSpaceFillContainer
diff --git a/frontend/src/containers/app/map/RackSpaceFillContainer.js b/frontend/src/containers/app/map/RackSpaceFillContainer.js
index cc4d1251..c43695a9 100644
--- a/frontend/src/containers/app/map/RackSpaceFillContainer.js
+++ b/frontend/src/containers/app/map/RackSpaceFillContainer.js
@@ -1,16 +1,16 @@
-import { connect } from "react-redux";
-import RackFillBar from "../../../components/app/map/elements/RackFillBar";
+import { connect } from 'react-redux'
+import RackFillBar from '../../../components/app/map/elements/RackFillBar'
const mapStateToProps = (state, ownProps) => {
- const machineIds =
- state.objects.rack[state.objects.tile[ownProps.tileId].objectId].machineIds;
- return {
- type: "space",
- fillFraction:
- machineIds.filter(id => id !== null).length / machineIds.length
- };
-};
+ const machineIds =
+ state.objects.rack[state.objects.tile[ownProps.tileId].objectId].machineIds
+ return {
+ type: 'space',
+ fillFraction:
+ machineIds.filter(id => id !== null).length / machineIds.length,
+ }
+}
-const RackSpaceFillContainer = connect(mapStateToProps)(RackFillBar);
+const RackSpaceFillContainer = connect(mapStateToProps)(RackFillBar)
-export default RackSpaceFillContainer;
+export default RackSpaceFillContainer
diff --git a/frontend/src/containers/app/map/RoomContainer.js b/frontend/src/containers/app/map/RoomContainer.js
index b83c7fa0..91bf4e5d 100644
--- a/frontend/src/containers/app/map/RoomContainer.js
+++ b/frontend/src/containers/app/map/RoomContainer.js
@@ -1,21 +1,21 @@
-import { connect } from "react-redux";
-import { goFromBuildingToRoom } from "../../../actions/interaction-level";
-import RoomGroup from "../../../components/app/map/groups/RoomGroup";
+import { connect } from 'react-redux'
+import { goFromBuildingToRoom } from '../../../actions/interaction-level'
+import RoomGroup from '../../../components/app/map/groups/RoomGroup'
const mapStateToProps = (state, ownProps) => {
- return {
- interactionLevel: state.interactionLevel,
- currentRoomInConstruction: state.construction.currentRoomInConstruction,
- room: state.objects.room[ownProps.roomId]
- };
-};
+ return {
+ interactionLevel: state.interactionLevel,
+ currentRoomInConstruction: state.construction.currentRoomInConstruction,
+ room: state.objects.room[ownProps.roomId],
+ }
+}
const mapDispatchToProps = (dispatch, ownProps) => {
- return {
- onClick: () => dispatch(goFromBuildingToRoom(ownProps.roomId))
- };
-};
+ return {
+ onClick: () => dispatch(goFromBuildingToRoom(ownProps.roomId)),
+ }
+}
-const RoomContainer = connect(mapStateToProps, mapDispatchToProps)(RoomGroup);
+const RoomContainer = connect(mapStateToProps, mapDispatchToProps)(RoomGroup)
-export default RoomContainer;
+export default RoomContainer
diff --git a/frontend/src/containers/app/map/TileContainer.js b/frontend/src/containers/app/map/TileContainer.js
index 9e179924..6122be96 100644
--- a/frontend/src/containers/app/map/TileContainer.js
+++ b/frontend/src/containers/app/map/TileContainer.js
@@ -1,43 +1,43 @@
-import { connect } from "react-redux";
-import { goFromRoomToRack } from "../../../actions/interaction-level";
-import TileGroup from "../../../components/app/map/groups/TileGroup";
-import { getStateLoad } from "../../../util/simulation-load";
+import { connect } from 'react-redux'
+import { goFromRoomToRack } from '../../../actions/interaction-level'
+import TileGroup from '../../../components/app/map/groups/TileGroup'
+import { getStateLoad } from '../../../util/simulation-load'
const mapStateToProps = (state, ownProps) => {
- const tile = state.objects.tile[ownProps.tileId];
- const inSimulation = state.currentExperimentId !== -1;
+ const tile = state.objects.tile[ownProps.tileId]
+ const inSimulation = state.currentExperimentId !== -1
- let roomLoad = undefined;
- if (inSimulation) {
- if (
- state.states.room[state.currentTick] &&
- state.states.room[state.currentTick][tile.roomId]
- ) {
- roomLoad = getStateLoad(
- state.loadMetric,
- state.states.room[state.currentTick][tile.roomId]
- );
+ let roomLoad = undefined
+ if (inSimulation) {
+ if (
+ state.states.room[state.currentTick] &&
+ state.states.room[state.currentTick][tile.roomId]
+ ) {
+ roomLoad = getStateLoad(
+ state.loadMetric,
+ state.states.room[state.currentTick][tile.roomId],
+ )
+ }
}
- }
- return {
- interactionLevel: state.interactionLevel,
- tile,
- inSimulation,
- roomLoad
- };
-};
+ return {
+ interactionLevel: state.interactionLevel,
+ tile,
+ inSimulation,
+ roomLoad,
+ }
+}
const mapDispatchToProps = dispatch => {
- return {
- onClick: tile => {
- if (tile.objectType) {
- dispatch(goFromRoomToRack(tile.id));
- }
+ return {
+ onClick: tile => {
+ if (tile.objectType) {
+ dispatch(goFromRoomToRack(tile.id))
+ }
+ },
}
- };
-};
+}
-const TileContainer = connect(mapStateToProps, mapDispatchToProps)(TileGroup);
+const TileContainer = connect(mapStateToProps, mapDispatchToProps)(TileGroup)
-export default TileContainer;
+export default TileContainer
diff --git a/frontend/src/containers/app/map/WallContainer.js b/frontend/src/containers/app/map/WallContainer.js
index 38192b05..b288a534 100644
--- a/frontend/src/containers/app/map/WallContainer.js
+++ b/frontend/src/containers/app/map/WallContainer.js
@@ -1,14 +1,14 @@
-import { connect } from "react-redux";
-import WallGroup from "../../../components/app/map/groups/WallGroup";
+import { connect } from 'react-redux'
+import WallGroup from '../../../components/app/map/groups/WallGroup'
const mapStateToProps = (state, ownProps) => {
- return {
- tiles: state.objects.room[ownProps.roomId].tileIds.map(
- tileId => state.objects.tile[tileId]
- )
- };
-};
+ return {
+ tiles: state.objects.room[ownProps.roomId].tileIds.map(
+ tileId => state.objects.tile[tileId],
+ ),
+ }
+}
-const WallContainer = connect(mapStateToProps)(WallGroup);
+const WallContainer = connect(mapStateToProps)(WallGroup)
-export default WallContainer;
+export default WallContainer
diff --git a/frontend/src/containers/app/map/controls/ScaleIndicatorContainer.js b/frontend/src/containers/app/map/controls/ScaleIndicatorContainer.js
index f075cde5..6e443479 100644
--- a/frontend/src/containers/app/map/controls/ScaleIndicatorContainer.js
+++ b/frontend/src/containers/app/map/controls/ScaleIndicatorContainer.js
@@ -1,14 +1,14 @@
-import { connect } from "react-redux";
-import ScaleIndicatorComponent from "../../../../components/app/map/controls/ScaleIndicatorComponent";
+import { connect } from 'react-redux'
+import ScaleIndicatorComponent from '../../../../components/app/map/controls/ScaleIndicatorComponent'
const mapStateToProps = state => {
- return {
- scale: state.map.scale
- };
-};
+ return {
+ scale: state.map.scale,
+ }
+}
const ScaleIndicatorContainer = connect(mapStateToProps)(
- ScaleIndicatorComponent
-);
+ ScaleIndicatorComponent,
+)
-export default ScaleIndicatorContainer;
+export default ScaleIndicatorContainer
diff --git a/frontend/src/containers/app/map/controls/ZoomControlContainer.js b/frontend/src/containers/app/map/controls/ZoomControlContainer.js
index 50910bd6..20811989 100644
--- a/frontend/src/containers/app/map/controls/ZoomControlContainer.js
+++ b/frontend/src/containers/app/map/controls/ZoomControlContainer.js
@@ -1,21 +1,21 @@
-import { connect } from "react-redux";
-import { zoomInOnCenter } from "../../../../actions/map";
-import ZoomControlComponent from "../../../../components/app/map/controls/ZoomControlComponent";
+import { connect } from 'react-redux'
+import { zoomInOnCenter } from '../../../../actions/map'
+import ZoomControlComponent from '../../../../components/app/map/controls/ZoomControlComponent'
const mapStateToProps = state => {
- return {
- mapScale: state.map.scale
- };
-};
+ return {
+ mapScale: state.map.scale,
+ }
+}
const mapDispatchToProps = dispatch => {
- return {
- zoomInOnCenter: zoomIn => dispatch(zoomInOnCenter(zoomIn))
- };
-};
+ return {
+ zoomInOnCenter: zoomIn => dispatch(zoomInOnCenter(zoomIn)),
+ }
+}
const ZoomControlContainer = connect(mapStateToProps, mapDispatchToProps)(
- ZoomControlComponent
-);
+ ZoomControlComponent,
+)
-export default ZoomControlContainer;
+export default ZoomControlContainer
diff --git a/frontend/src/containers/app/map/layers/MapLayer.js b/frontend/src/containers/app/map/layers/MapLayer.js
index cf971350..3c5ff8be 100644
--- a/frontend/src/containers/app/map/layers/MapLayer.js
+++ b/frontend/src/containers/app/map/layers/MapLayer.js
@@ -1,13 +1,13 @@
-import { connect } from "react-redux";
-import MapLayerComponent from "../../../../components/app/map/layers/MapLayerComponent";
+import { connect } from 'react-redux'
+import MapLayerComponent from '../../../../components/app/map/layers/MapLayerComponent'
const mapStateToProps = state => {
- return {
- mapPosition: state.map.position,
- mapScale: state.map.scale
- };
-};
+ return {
+ mapPosition: state.map.position,
+ mapScale: state.map.scale,
+ }
+}
-const MapLayer = connect(mapStateToProps)(MapLayerComponent);
+const MapLayer = connect(mapStateToProps)(MapLayerComponent)
-export default MapLayer;
+export default MapLayer
diff --git a/frontend/src/containers/app/map/layers/ObjectHoverLayer.js b/frontend/src/containers/app/map/layers/ObjectHoverLayer.js
index 9b28575e..dc489e82 100644
--- a/frontend/src/containers/app/map/layers/ObjectHoverLayer.js
+++ b/frontend/src/containers/app/map/layers/ObjectHoverLayer.js
@@ -1,37 +1,37 @@
-import { connect } from "react-redux";
-import { addRackToTile } from "../../../../actions/topology/room";
-import ObjectHoverLayerComponent from "../../../../components/app/map/layers/ObjectHoverLayerComponent";
-import { findTileWithPosition } from "../../../../util/tile-calculations";
+import { connect } from 'react-redux'
+import { addRackToTile } from '../../../../actions/topology/room'
+import ObjectHoverLayerComponent from '../../../../components/app/map/layers/ObjectHoverLayerComponent'
+import { findTileWithPosition } from '../../../../util/tile-calculations'
const mapStateToProps = state => {
- return {
- mapPosition: state.map.position,
- mapScale: state.map.scale,
- isEnabled: () => state.construction.inRackConstructionMode,
- isValid: (x, y) => {
- if (state.interactionLevel.mode !== "ROOM") {
- return false;
- }
+ return {
+ mapPosition: state.map.position,
+ mapScale: state.map.scale,
+ isEnabled: () => state.construction.inRackConstructionMode,
+ isValid: (x, y) => {
+ if (state.interactionLevel.mode !== 'ROOM') {
+ return false
+ }
- const currentRoom = state.objects.room[state.interactionLevel.roomId];
- const tiles = currentRoom.tileIds.map(
- tileId => state.objects.tile[tileId]
- );
- const tile = findTileWithPosition(tiles, x, y);
+ const currentRoom = state.objects.room[state.interactionLevel.roomId]
+ const tiles = currentRoom.tileIds.map(
+ tileId => state.objects.tile[tileId],
+ )
+ const tile = findTileWithPosition(tiles, x, y)
- return !(tile === null || tile.objectType);
+ return !(tile === null || tile.objectType)
+ },
}
- };
-};
+}
const mapDispatchToProps = dispatch => {
- return {
- onClick: (x, y) => dispatch(addRackToTile(x, y))
- };
-};
+ return {
+ onClick: (x, y) => dispatch(addRackToTile(x, y)),
+ }
+}
const ObjectHoverLayer = connect(mapStateToProps, mapDispatchToProps)(
- ObjectHoverLayerComponent
-);
+ ObjectHoverLayerComponent,
+)
-export default ObjectHoverLayer;
+export default ObjectHoverLayer
diff --git a/frontend/src/containers/app/map/layers/RoomHoverLayer.js b/frontend/src/containers/app/map/layers/RoomHoverLayer.js
index 020102bf..b5a891ce 100644
--- a/frontend/src/containers/app/map/layers/RoomHoverLayer.js
+++ b/frontend/src/containers/app/map/layers/RoomHoverLayer.js
@@ -1,55 +1,55 @@
-import { connect } from "react-redux";
-import { toggleTileAtLocation } from "../../../../actions/topology/building";
-import RoomHoverLayerComponent from "../../../../components/app/map/layers/RoomHoverLayerComponent";
+import { connect } from 'react-redux'
+import { toggleTileAtLocation } from '../../../../actions/topology/building'
+import RoomHoverLayerComponent from '../../../../components/app/map/layers/RoomHoverLayerComponent'
import {
- deriveValidNextTilePositions,
- findPositionInPositions,
- findPositionInRooms
-} from "../../../../util/tile-calculations";
+ deriveValidNextTilePositions,
+ findPositionInPositions,
+ findPositionInRooms,
+} from '../../../../util/tile-calculations'
const mapStateToProps = state => {
- return {
- mapPosition: state.map.position,
- mapScale: state.map.scale,
- isEnabled: () => state.construction.currentRoomInConstruction !== -1,
- isValid: (x, y) => {
- const newRoom = Object.assign(
- {},
- state.objects.room[state.construction.currentRoomInConstruction]
- );
- const oldRooms = Object.keys(state.objects.room)
- .map(id => Object.assign({}, state.objects.room[id]))
- .filter(
- room =>
- state.objects.datacenter[state.currentDatacenterId].roomIds.indexOf(
- room.id
- ) !== -1 && room.id !== state.construction.currentRoomInConstruction
- );
+ return {
+ mapPosition: state.map.position,
+ mapScale: state.map.scale,
+ isEnabled: () => state.construction.currentRoomInConstruction !== -1,
+ isValid: (x, y) => {
+ const newRoom = Object.assign(
+ {},
+ state.objects.room[state.construction.currentRoomInConstruction],
+ )
+ const oldRooms = Object.keys(state.objects.room)
+ .map(id => Object.assign({}, state.objects.room[id]))
+ .filter(
+ room =>
+ state.objects.datacenter[state.currentDatacenterId].roomIds.indexOf(
+ room.id,
+ ) !== -1 && room.id !== state.construction.currentRoomInConstruction,
+ );
- [...oldRooms, newRoom].forEach(room => {
- room.tiles = room.tileIds.map(tileId => state.objects.tile[tileId]);
- });
- if (newRoom.tileIds.length === 0) {
- return findPositionInRooms(oldRooms, x, y) === -1;
- }
+ [...oldRooms, newRoom].forEach(room => {
+ room.tiles = room.tileIds.map(tileId => state.objects.tile[tileId])
+ })
+ if (newRoom.tileIds.length === 0) {
+ return findPositionInRooms(oldRooms, x, y) === -1
+ }
- const validNextPositions = deriveValidNextTilePositions(
- oldRooms,
- newRoom.tiles
- );
- return findPositionInPositions(validNextPositions, x, y) !== -1;
+ const validNextPositions = deriveValidNextTilePositions(
+ oldRooms,
+ newRoom.tiles,
+ )
+ return findPositionInPositions(validNextPositions, x, y) !== -1
+ },
}
- };
-};
+}
const mapDispatchToProps = dispatch => {
- return {
- onClick: (x, y) => dispatch(toggleTileAtLocation(x, y))
- };
-};
+ return {
+ onClick: (x, y) => dispatch(toggleTileAtLocation(x, y)),
+ }
+}
const RoomHoverLayer = connect(mapStateToProps, mapDispatchToProps)(
- RoomHoverLayerComponent
-);
+ RoomHoverLayerComponent,
+)
-export default RoomHoverLayer;
+export default RoomHoverLayer