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/reducers/index.js | 2 ++ src/reducers/map.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/reducers/map.js (limited to 'src/reducers') diff --git a/src/reducers/index.js b/src/reducers/index.js index f1f51337..1f3aa8f2 100644 --- a/src/reducers/index.js +++ b/src/reducers/index.js @@ -2,6 +2,7 @@ import {combineReducers} from "redux"; import {auth} from "./auth"; import {construction} from "./construction"; import {interactionLevel} from "./interaction-level"; +import {map} from "./map"; import {modals} from "./modals"; import {objects} from "./objects"; import {simulationList} from "./simulation-list"; @@ -17,6 +18,7 @@ const rootReducer = combineReducers({ currentDatacenterId, interactionLevel, construction, + map, }); export default rootReducer; diff --git a/src/reducers/map.js b/src/reducers/map.js new file mode 100644 index 00000000..c36916b6 --- /dev/null +++ b/src/reducers/map.js @@ -0,0 +1,35 @@ +import {combineReducers} from "redux"; +import {SET_MAP_DIMENSIONS, SET_MAP_POSITION, SET_MAP_SCALE} from "../actions/map"; + +export function position(state = {x: 0, y: 0}, action) { + switch (action.type) { + case SET_MAP_POSITION: + return {x: action.x, y: action.y}; + default: + return state; + } +} + +export function dimensions(state = {width: 600, height: 400}, action) { + switch (action.type) { + case SET_MAP_DIMENSIONS: + return {width: action.width, height: action.height}; + default: + return state; + } +} + +export function scale(state = 1, action) { + switch (action.type) { + case SET_MAP_SCALE: + return action.scale; + default: + return state; + } +} + +export const map = combineReducers({ + position, + dimensions, + scale +}); -- cgit v1.2.3