From 67ca81d845eb7234c8b0a8a352a2e917c70319d2 Mon Sep 17 00:00:00 2001 From: Max Frederiksen <maxfrederiksen@Maxs-MacBook-Air.local> Date: Thu, 5 Sep 2024 13:48:54 +0200 Subject: [PATCH] Reset host field, Fix bad loading behaviour, implement RTK Hooks --- .../IOC/IOCDeployDialog/IOCDeployDialog.js | 57 ++++++++----------- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js b/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js index e7619cd5..8503b1c8 100644 --- a/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js +++ b/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js @@ -1,4 +1,4 @@ -import { useCallback, useContext, useEffect, useState, useMemo } from "react"; +import { useCallback, useEffect, useState, useMemo } from "react"; import { Button, TextField, @@ -8,12 +8,11 @@ import { Alert, Stack } from "@mui/material"; -import { apiContext } from "../../../api/DeployApi"; +import { Dialog, GitRefAutocomplete } from "@ess-ics/ce-ui-common"; import { - useAPIMethod, - Dialog, - GitRefAutocomplete -} from "@ess-ics/ce-ui-common"; + useLazyListHostsQuery, + useLazyListTagsAndCommitIdsQuery +} from "../../../store/deployApi"; export function IOCDeployDialog({ open, @@ -27,35 +26,23 @@ export function IOCDeployDialog({ buttonDisabled, setButtonDisabled }) { - const client = useContext(apiContext); - - const { - value: hosts, - wrapper: getHosts, - loading: loadingHosts - } = useAPIMethod({ - fcn: client.apis.Hosts.listHosts, - call: false - }); - - const { - value: tagOrCommitId, - wrapper: callGetTagOrCommitId, - loading: loadingTagsAndCommitIds, - error: tagOrCommitIdError - } = useAPIMethod({ - fcn: client.apis.Git.listTagsAndCommitIds, - call: false, - init: [] - }); + const [getHosts, { data: hosts, isFetching: loadingHosts }] = + useLazyListHostsQuery(); + const [ + callGetTagOrCommitId, + { + data: tagOrCommitId = [], + isFetching: loadingTagsAndCommitIds, + error: tagOrCommitIdError + } + ] = useLazyListTagsAndCommitIdsQuery(); const getTagOrCommitId = useCallback( - (gitProjectId, reference, includeAllReference, searchMethod) => { + (gitProjectId, reference, searchMethod) => { callGetTagOrCommitId({ - project_id: gitProjectId, - reference: reference, - include_all_reference: includeAllReference, - search_method: searchMethod + projectId: gitProjectId, + reference, + searchMethod }); }, [callGetTagOrCommitId] @@ -74,20 +61,22 @@ export function IOCDeployDialog({ const [gitRepo, setGitRepo] = useState(deployIocFormDefaults.git || ""); const [revision, setRevision] = useState(deployIocFormDefaults); const gitProjectId = deployIocFormDefaults.gitProjectId; + const hasHostData = host?.id || host?.hostId || host?.fqdn; const handleClose = () => { setOpen(false); + setHost(null); resetError(); }; useEffect(() => { - if (query && query.length > 2) { + if (!hasHostData && query && query.length > 2) { getHosts({ text: `${query}` }); } }, [query, getHosts]); useEffect(() => { - getTagOrCommitId(gitProjectId, "", false, "CONTAINS"); + getTagOrCommitId(gitProjectId, "", "CONTAINS"); }, [gitProjectId, getTagOrCommitId]); const onSubmit = (event) => { -- GitLab