From aa448cb5c3e2e372dad1c79ffc32ff32144b4140 Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Mon, 11 Sep 2017 11:53:06 +0200 Subject: Move zoom level and map position info to store --- src/containers/map/MapStage.js | 26 ++++++++++++++++++++++++++ src/containers/map/layers/MapLayer.js | 15 +++++++++++++++ src/containers/map/layers/ObjectHoverLayer.js | 2 ++ src/containers/map/layers/RoomHoverLayer.js | 2 ++ 4 files changed, 45 insertions(+) create mode 100644 src/containers/map/MapStage.js create mode 100644 src/containers/map/layers/MapLayer.js (limited to 'src/containers/map') diff --git a/src/containers/map/MapStage.js b/src/containers/map/MapStage.js new file mode 100644 index 00000000..62dd7463 --- /dev/null +++ b/src/containers/map/MapStage.js @@ -0,0 +1,26 @@ +import {connect} from "react-redux"; +import {setMapDimensions, setMapPosition, setMapScale} from "../../actions/map"; +import MapStageComponent from "../../components/map/MapStageComponent"; + +const mapStateToProps = state => { + return { + mapPosition: state.map.position, + mapDimensions: state.map.dimensions, + mapScale: state.map.scale, + }; +}; + +const mapDispatchToProps = dispatch => { + return { + setMapPosition: (x, y) => dispatch(setMapPosition(x, y)), + setMapDimensions: (width, height) => dispatch(setMapDimensions(width, height)), + setMapScale: (scale) => dispatch(setMapScale(scale)), + }; +}; + +const MapStage = connect( + mapStateToProps, + mapDispatchToProps +)(MapStageComponent); + +export default MapStage; diff --git a/src/containers/map/layers/MapLayer.js b/src/containers/map/layers/MapLayer.js new file mode 100644 index 00000000..9ef5c662 --- /dev/null +++ b/src/containers/map/layers/MapLayer.js @@ -0,0 +1,15 @@ +import {connect} from "react-redux"; +import MapLayerComponent from "../../../components/map/layers/MapLayerComponent"; + +const mapStateToProps = state => { + return { + mapPosition: state.map.position, + mapScale: state.map.scale, + }; +}; + +const MapLayer = connect( + mapStateToProps +)(MapLayerComponent); + +export default MapLayer; diff --git a/src/containers/map/layers/ObjectHoverLayer.js b/src/containers/map/layers/ObjectHoverLayer.js index d0cc35fd..b0201257 100644 --- a/src/containers/map/layers/ObjectHoverLayer.js +++ b/src/containers/map/layers/ObjectHoverLayer.js @@ -5,6 +5,8 @@ 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") { diff --git a/src/containers/map/layers/RoomHoverLayer.js b/src/containers/map/layers/RoomHoverLayer.js index 23f590d5..528e45d3 100644 --- a/src/containers/map/layers/RoomHoverLayer.js +++ b/src/containers/map/layers/RoomHoverLayer.js @@ -9,6 +9,8 @@ import { const mapStateToProps = state => { return { + mapPosition: state.map.position, + mapScale: state.map.scale, isEnabled: () => state.construction.currentRoomInConstruction !== -1, isValid: (x, y) => { if (state.interactionLevel.mode !== "BUILDING") { -- cgit v1.2.3