summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/redux/actions
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-07-08 13:15:28 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-07-08 13:20:27 +0200
commit29196842447d841d2e21462adcfc8c2ed1d851ad (patch)
treedf2945e6a9f7ec2d32acf9c9c7bcf8e8b4a322d6 /opendc-web/opendc-web-ui/src/redux/actions
parent1157cc3c56c0f8d36be277bd1ea633f03dd7abbf (diff)
ui: Simplify normalization of topology
This change updates the OpenDC frontend to use the normalizr library for normalizing the user topology.
Diffstat (limited to 'opendc-web/opendc-web-ui/src/redux/actions')
-rw-r--r--opendc-web/opendc-web-ui/src/redux/actions/topologies.js8
-rw-r--r--opendc-web/opendc-web-ui/src/redux/actions/topology/building.js13
-rw-r--r--opendc-web/opendc-web-ui/src/redux/actions/topology/room.js2
3 files changed, 14 insertions, 9 deletions
diff --git a/opendc-web/opendc-web-ui/src/redux/actions/topologies.js b/opendc-web/opendc-web-ui/src/redux/actions/topologies.js
index e19a7f21..529e8663 100644
--- a/opendc-web/opendc-web-ui/src/redux/actions/topologies.js
+++ b/opendc-web/opendc-web-ui/src/redux/actions/topologies.js
@@ -1,4 +1,5 @@
export const ADD_TOPOLOGY = 'ADD_TOPOLOGY'
+export const STORE_TOPOLOGY = 'STORE_TOPOLOGY'
export function addTopology(projectId, name, duplicateId) {
return {
@@ -8,3 +9,10 @@ export function addTopology(projectId, name, duplicateId) {
duplicateId,
}
}
+
+export function storeTopology(entities) {
+ return {
+ type: STORE_TOPOLOGY,
+ entities,
+ }
+}
diff --git a/opendc-web/opendc-web-ui/src/redux/actions/topology/building.js b/opendc-web/opendc-web-ui/src/redux/actions/topology/building.js
index 72deda6f..f1a7d569 100644
--- a/opendc-web/opendc-web-ui/src/redux/actions/topology/building.js
+++ b/opendc-web/opendc-web-ui/src/redux/actions/topology/building.js
@@ -32,7 +32,7 @@ export function startNewRoomConstructionSucceeded(roomId) {
export function finishNewRoomConstruction() {
return (dispatch, getState) => {
const { objects, construction } = getState()
- if (objects.room[construction.currentRoomInConstruction].tileIds.length === 0) {
+ if (objects.room[construction.currentRoomInConstruction].tiles.length === 0) {
dispatch(cancelNewRoomConstruction())
return
}
@@ -75,13 +75,10 @@ export function toggleTileAtLocation(positionX, positionY) {
return (dispatch, getState) => {
const { objects, construction } = getState()
- const tileIds = objects.room[construction.currentRoomInConstruction].tileIds
- for (let index in tileIds) {
- if (
- objects.tile[tileIds[index]].positionX === positionX &&
- objects.tile[tileIds[index]].positionY === positionY
- ) {
- dispatch(deleteTile(tileIds[index]))
+ const tileIds = objects.room[construction.currentRoomInConstruction].tiles
+ for (const tileId of tileIds) {
+ if (objects.tile[tileId].positionX === positionX && objects.tile[tileId].positionY === positionY) {
+ dispatch(deleteTile(tileId))
return
}
}
diff --git a/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js b/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js
index 61eea7fe..80ef7c5e 100644
--- a/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js
+++ b/opendc-web/opendc-web-ui/src/redux/actions/topology/room.js
@@ -29,7 +29,7 @@ export function addRackToTile(positionX, positionY) {
return (dispatch, getState) => {
const { objects, interactionLevel } = getState()
const currentRoom = objects.room[interactionLevel.roomId]
- const tiles = currentRoom.tileIds.map((tileId) => objects.tile[tileId])
+ const tiles = currentRoom.tiles.map((tileId) => objects.tile[tileId])
const tile = findTileWithPosition(tiles, positionX, positionY)
if (tile !== null) {