From 41e02cdab85ba5db92be7f7bea07ae1f20bcbdd9 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Thu, 22 Jul 2021 19:05:58 +0200 Subject: fix(web/ui): Fix creation of topologies This change fixes an issue with the creation of topologies in the frontend. Previously, the frontend relied on Redux to update the state. However, since we removed the reliance on Redux, we also need to create a new topology using the functions from React Query to actually send a request to the API server. --- .../opendc-web-ui/src/components/projects/NewTopology.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'opendc-web/opendc-web-ui/src/components') diff --git a/opendc-web/opendc-web-ui/src/components/projects/NewTopology.js b/opendc-web/opendc-web-ui/src/components/projects/NewTopology.js index bf59e020..77c57d26 100644 --- a/opendc-web/opendc-web-ui/src/components/projects/NewTopology.js +++ b/opendc-web/opendc-web-ui/src/components/projects/NewTopology.js @@ -21,19 +21,26 @@ */ import PropTypes from 'prop-types' +import produce from 'immer' import { PlusIcon } from '@patternfly/react-icons' import { Button } from '@patternfly/react-core' import { useState } from 'react' -import { useDispatch } from 'react-redux' -import { addTopology } from '../../redux/actions/topologies' +import { useMutation } from "react-query"; +import { useProjectTopologies } from "../../data/topology"; import NewTopologyModal from './NewTopologyModal' function NewTopology({ projectId }) { const [isVisible, setVisible] = useState(false) - const dispatch = useDispatch() + const { data: topologies = [] } = useProjectTopologies(projectId) + const { mutate: addTopology } = useMutation('addTopology') const onSubmit = (name, duplicateId) => { - dispatch(addTopology(projectId, name, duplicateId)) + const candidate = topologies.find((topology) => topology._id === duplicateId) || { projectId, rooms: [] } + const topology = produce(candidate, (draft) => { + delete draft._id + draft.name = name + }) + addTopology(topology) setVisible(false) } return ( -- cgit v1.2.3