Просмотр исходного кода

Fix for select when value is empty

jnfrati 3 лет назад
Родитель
Сommit
017e977722

+ 11 - 5
dashboard/src/main/home/cluster-dashboard/stacks/ExpandedStack/components/Select.tsx

@@ -75,6 +75,16 @@ const Select = <T extends unknown>({
     );
     );
   }
   }
 
 
+  const isSelected = (option: T, value: T) => {
+    if (!value) {
+      return false;
+    }
+
+    if (isOptionEqualToValue) {
+      return isOptionEqualToValue(option, value);
+    }
+  };
+
   return (
   return (
     <div>
     <div>
       {getLabel()}
       {getLabel()}
@@ -107,11 +117,7 @@ const Select = <T extends unknown>({
                     key={i}
                     key={i}
                     onClick={() => !readOnly && handleOptionClick(option)}
                     onClick={() => !readOnly && handleOptionClick(option)}
                     lastItem={i === options.length - 1}
                     lastItem={i === options.length - 1}
-                    selected={
-                      isOptionEqualToValue
-                        ? isOptionEqualToValue(option, value)
-                        : option === value
-                    }
+                    selected={isSelected(option, value)}
                     height={dropdown?.option?.height}
                     height={dropdown?.option?.height}
                   >
                   >
                     {accessor(option)}
                     {accessor(option)}

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

@@ -148,7 +148,7 @@ const _DockerRepositorySelector = ({
         accessor={(val) => val.name}
         accessor={(val) => val.name}
         label="Docker Registry"
         label="Docker Registry"
         placeholder="Select a registry"
         placeholder="Select a registry"
-        isOptionEqualToValue={(a, b) => a.url === b.url}
+        isOptionEqualToValue={(a, b) => a?.url === b?.url}
         readOnly={readOnly}
         readOnly={readOnly}
         isLoading={isLoading}
         isLoading={isLoading}
         dropdown={{
         dropdown={{