From da276c939e136cb1414b398a9d0b952d25df5c43 Mon Sep 17 00:00:00 2001
From: Johanna Szepanski <johanna.szepanski@softhouse.se>
Date: Tue, 9 Jul 2024 15:14:23 +0200
Subject: [PATCH] fixed host selector in deploy ioc dialog

---
 .../IOC/IOCDeployDialog/IOCDeployDialog.js    | 39 +++++++++++--------
 1 file changed, 22 insertions(+), 17 deletions(-)

diff --git a/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js b/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js
index 13bf0de6..bd7516c6 100644
--- a/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js
+++ b/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js
@@ -1,4 +1,10 @@
-import React, { useCallback, useContext, useEffect, useState } from "react";
+import React, {
+  useCallback,
+  useContext,
+  useEffect,
+  useState,
+  useMemo
+} from "react";
 import {
   Button,
   TextField,
@@ -8,7 +14,6 @@ import {
   Alert,
   Stack
 } from "@mui/material";
-import { useTypingTimer } from "../../common/SearchBoxFilter/TypingTimer";
 import { apiContext } from "../../../api/DeployApi";
 import {
   useAPIMethod,
@@ -62,8 +67,16 @@ export function IOCDeployDialog({
     [callGetTagOrCommitId]
   );
 
-  const [host, setHost] = useState(deployIocFormDefaults);
-  const [query, onHostKeyUp] = useTypingTimer({ interval: 500 });
+  const initHost = useMemo(
+    () => ({
+      fqdn: deployIocFormDefaults.netBoxHost?.fqdn,
+      hostId: deployIocFormDefaults.netBoxHost?.hostId
+    }),
+    [deployIocFormDefaults.netBoxHost]
+  );
+
+  const [host, setHost] = useState(initHost);
+  const [query, setQuery] = useState("");
   const [gitRepo, setGitRepo] = useState(deployIocFormDefaults.git || "");
   const [revision, setRevision] = useState(deployIocFormDefaults);
   const gitProjectId = deployIocFormDefaults.gitProjectId;
@@ -73,7 +86,7 @@ export function IOCDeployDialog({
   };
 
   useEffect(() => {
-    getHosts({ query: `${query}` });
+    getHosts({ query });
   }, [query, getHosts]);
 
   useEffect(() => {
@@ -94,11 +107,7 @@ export function IOCDeployDialog({
         requestBody: {
           sourceUrl: git,
           sourceVersion: revision.reference,
-          hostId: host
-            ? host.netBoxHost.hostId
-            : deployIocFormDefaults.netBoxHost
-              ? deployIocFormDefaults.netBoxHost.hostId
-              : undefined
+          hostId: host.hostId
         }
       }
     );
@@ -166,9 +175,9 @@ export function IOCDeployDialog({
             options={query ? hosts?.netBoxHosts ?? [] : []}
             loading={loadingHosts}
             clearOnBlur={false}
-            defaultValue={deployIocFormDefaults}
+            value={host}
             getOptionLabel={(option) => {
-              return option?.netBoxHost?.fqdn ?? "";
+              return option?.fqdn ?? "";
             }}
             renderInput={(params) => (
               <TextField
@@ -196,11 +205,7 @@ export function IOCDeployDialog({
               setHost(value);
               resetError();
             }}
-            onInputChange={(event) => {
-              if (event) {
-                onHostKeyUp(event.nativeEvent);
-              }
-            }}
+            onInputChange={(_event, value) => setQuery(value)}
             disabled={hasActiveDeployment}
             autoSelect
             filterOptions={(options) => options}
-- 
GitLab