summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/containers/app/sidebars/topology/building
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2020-10-28 16:41:53 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-10 17:17:28 +0200
commit6d5a2eebb609da67239ea37d12d6b2d3bbfef76e (patch)
tree624e07d4664dbe143dca8458a3450ae8d186b7af /opendc-web/opendc-web-ui/src/containers/app/sidebars/topology/building
parentddefa23e8e86c4eab2d2218646bcef21d547f4bc (diff)
ui: Do not clutter component tree with Redux connects
This change refactors the frontend to use hooks for obtaining state within the Redux store as opposed to using Higher-Order Components (HOCs). This eliminates a lot of clutter in the components.
Diffstat (limited to 'opendc-web/opendc-web-ui/src/containers/app/sidebars/topology/building')
-rw-r--r--opendc-web/opendc-web-ui/src/containers/app/sidebars/topology/building/NewRoomConstructionContainer.js23
1 files changed, 13 insertions, 10 deletions
diff --git a/opendc-web/opendc-web-ui/src/containers/app/sidebars/topology/building/NewRoomConstructionContainer.js b/opendc-web/opendc-web-ui/src/containers/app/sidebars/topology/building/NewRoomConstructionContainer.js
index ea9e9e60..ea36539c 100644
--- a/opendc-web/opendc-web-ui/src/containers/app/sidebars/topology/building/NewRoomConstructionContainer.js
+++ b/opendc-web/opendc-web-ui/src/containers/app/sidebars/topology/building/NewRoomConstructionContainer.js
@@ -1,4 +1,5 @@
-import { connect } from 'react-redux'
+import React from 'react'
+import { useDispatch, useSelector } from 'react-redux'
import {
cancelNewRoomConstruction,
finishNewRoomConstruction,
@@ -6,20 +7,22 @@ import {
} from '../../../../../actions/topology/building'
import StartNewRoomConstructionComponent from '../../../../../components/app/sidebars/topology/building/NewRoomConstructionComponent'
-const mapStateToProps = (state) => {
- return {
- currentRoomInConstruction: state.construction.currentRoomInConstruction,
- }
-}
+const NewRoomConstructionButton = (props) => {
+ const currentRoomInConstruction = useSelector((state) => state.construction.currentRoomInConstruction)
-const mapDispatchToProps = (dispatch) => {
- return {
+ const dispatch = useDispatch()
+ const actions = {
onStart: () => dispatch(startNewRoomConstruction()),
onFinish: () => dispatch(finishNewRoomConstruction()),
onCancel: () => dispatch(cancelNewRoomConstruction()),
}
+ return (
+ <StartNewRoomConstructionComponent
+ {...props}
+ {...actions}
+ currentRoomInConstruction={currentRoomInConstruction}
+ />
+ )
}
-const NewRoomConstructionButton = connect(mapStateToProps, mapDispatchToProps)(StartNewRoomConstructionComponent)
-
export default NewRoomConstructionButton