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