Browse Source

Fix updating tag restoring the source config name and changing registry not updating images

jnfrati 3 years ago
parent
commit
c087877c50

+ 12 - 5
dashboard/src/main/home/cluster-dashboard/stacks/ExpandedStack/_SourceConfig.tsx

@@ -151,6 +151,12 @@ const SourceConfigItem = ({
     handleChange({ ...sourceConfig, display_name: newName });
   };
 
+  const onChange = (display_name: string) => (
+    newSourceConfig: SourceConfig
+  ) => {
+    handleChange({ ...newSourceConfig, display_name });
+  };
+
   const handleNameChangeCancel = () => {
     setName(prevName.current);
     handleChange({ ...sourceConfig, display_name: prevName.current });
@@ -176,16 +182,17 @@ const SourceConfigItem = ({
       ) : (
         <SourceConfigStyles.ItemTitle>
           <span>{name}</span>
-
-          <EditButton onClick={toggleEditNameMode}>
-            <i className="material-icons-outlined">edit</i>
-          </EditButton>
+          {!disabled ? (
+            <EditButton onClick={toggleEditNameMode}>
+              <i className="material-icons-outlined">edit</i>
+            </EditButton>
+          ) : null}
         </SourceConfigStyles.ItemTitle>
       )}
 
       <SourceEditorDocker
         sourceConfig={sourceConfig}
-        onChange={handleChange}
+        onChange={onChange(name)}
         readOnly={disabled}
       />
     </SourceConfigStyles.ItemContainer>

+ 9 - 1
dashboard/src/main/home/cluster-dashboard/stacks/ExpandedStack/components/SourceEditorDocker.tsx

@@ -182,6 +182,7 @@ const _ImageSelector = ({
   const [isLoading, setIsLoading] = useState(true);
 
   useEffect(() => {
+    let isSubscribed = true;
     setIsLoading(true);
     api
       .getImageRepos<ImageRepo[]>(
@@ -193,6 +194,9 @@ const _ImageSelector = ({
         }
       )
       .then(({ data }) => {
+        if (!isSubscribed) {
+          return;
+        }
         setImages(data);
 
         if (!value) {
@@ -200,7 +204,11 @@ const _ImageSelector = ({
         }
         setIsLoading(false);
       });
-  }, []);
+
+    return () => {
+      isSubscribed = false;
+    };
+  }, [registry]);
 
   const handleChange = (image: string) => {
     onChange(image);