summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/containers/modals/NewTopologyModal.js
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-10 21:32:54 +0200
committerGitHub <noreply@github.com>2021-05-10 21:32:54 +0200
commit1ce710ebaa8b071a3b30447d431f4af422f25156 (patch)
treed0d202eb1166f151113258d06199710fbd8324ec /opendc-web/opendc-web-ui/src/containers/modals/NewTopologyModal.js
parentddefa23e8e86c4eab2d2218646bcef21d547f4bc (diff)
parent09e5fe5a7f9ce8452fa9c042cb493e6fb4de221f (diff)
ui: Update frontend dependencies
This pull request updates the React dependencies used in the OpenDC frontend. * Actualize React, react-konva and react-scripts * Actualize Bootstrap and Reactstrap * Migrate to Redux hooks to reduce clutter
Diffstat (limited to 'opendc-web/opendc-web-ui/src/containers/modals/NewTopologyModal.js')
-rw-r--r--opendc-web/opendc-web-ui/src/containers/modals/NewTopologyModal.js70
1 files changed, 38 insertions, 32 deletions
diff --git a/opendc-web/opendc-web-ui/src/containers/modals/NewTopologyModal.js b/opendc-web/opendc-web-ui/src/containers/modals/NewTopologyModal.js
index 0acf6cf2..2f81706e 100644
--- a/opendc-web/opendc-web-ui/src/containers/modals/NewTopologyModal.js
+++ b/opendc-web/opendc-web-ui/src/containers/modals/NewTopologyModal.js
@@ -1,42 +1,48 @@
-import { connect } from 'react-redux'
+import React from 'react'
+import { useDispatch, useSelector } from 'react-redux'
import NewTopologyModalComponent from '../../components/modals/custom-components/NewTopologyModalComponent'
import { closeNewTopologyModal } from '../../actions/modals/topology'
import { addTopology } from '../../actions/topologies'
-const mapStateToProps = (state) => {
- let topologies = state.objects.project[state.currentProjectId]
- ? state.objects.project[state.currentProjectId].topologyIds.map((t) => state.objects.topology[t])
- : []
- if (topologies.filter((t) => !t).length > 0) {
- topologies = []
- }
+const NewTopologyModal = () => {
+ const show = useSelector((state) => state.modals.changeTopologyModalVisible)
+ const topologies = useSelector((state) => {
+ let topologies = state.objects.project[state.currentProjectId]
+ ? state.objects.project[state.currentProjectId].topologyIds.map((t) => state.objects.topology[t])
+ : []
+ if (topologies.filter((t) => !t).length > 0) {
+ topologies = []
+ }
- return {
- show: state.modals.changeTopologyModalVisible,
- topologies,
- }
-}
+ return topologies
+ })
-const mapDispatchToProps = (dispatch) => {
- return {
- onCreateTopology: (name) => {
- if (name) {
- dispatch(addTopology(name, undefined))
- }
- dispatch(closeNewTopologyModal())
- },
- onDuplicateTopology: (name, id) => {
- if (name) {
- dispatch(addTopology(name, id))
- }
- dispatch(closeNewTopologyModal())
- },
- onCancel: () => {
- dispatch(closeNewTopologyModal())
- },
+ const dispatch = useDispatch()
+ const onCreateTopology = (name) => {
+ if (name) {
+ dispatch(addTopology(name, undefined))
+ }
+ dispatch(closeNewTopologyModal())
+ }
+ const onDuplicateTopology = (name, id) => {
+ if (name) {
+ dispatch(addTopology(name, id))
+ }
+ dispatch(closeNewTopologyModal())
+ }
+ const onCancel = () => {
+ dispatch(closeNewTopologyModal())
}
-}
-const NewTopologyModal = connect(mapStateToProps, mapDispatchToProps)(NewTopologyModalComponent)
+ return (
+ <NewTopologyModalComponent
+ show={show}
+ topologies={topologies}
+ onCreateTopology={onCreateTopology}
+ onDuplicateTopology={onDuplicateTopology}
+ onCancel={onCancel}
+ />
+ )
+}
export default NewTopologyModal