From 988f713b03b0ea25cb5efa6e7949cfc5290bc21e Mon Sep 17 00:00:00 2001
From: deep1401 <gandhi0869@gmail.com>
Date: Mon, 10 Feb 2025 10:47:24 -0800
Subject: [PATCH] Fix default enum issues in a plugin form

---
 .../components/Experiment/DynamicPluginForm.tsx | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/renderer/components/Experiment/DynamicPluginForm.tsx b/src/renderer/components/Experiment/DynamicPluginForm.tsx
index a57d8cd0..3c60a8ad 100644
--- a/src/renderer/components/Experiment/DynamicPluginForm.tsx
+++ b/src/renderer/components/Experiment/DynamicPluginForm.tsx
@@ -458,16 +458,18 @@ export default function DynamicPluginForm({
           parsedData.parameters &&
           key in parsedData.parameters
         ) {
+          if (parsedData.parameters[key].enum) {
+          // Set the enum array such that config[key] is the first element
+          const enumArray = parsedData.parameters[key].enum;
+          let index = enumArray.indexOf(config[key]);
+          if (index > 0) {
+            enumArray.unshift(enumArray.splice(index, 1)[0]);
+          }
+          parsedData.parameters[key].enum = enumArray;
           parsedData.parameters[key].default = config[key];
         }
+        }
       });
-      // if (parsedData.type === 'generator' || parsedData.type === 'evaluator') {
-      //   Object.keys(parsedData.parameters).forEach((key) => {
-      //     if (!(key in config)) {
-      //       delete parsedData.parameters[key];
-      //     }
-      //   });
-      // }
       // Delete all keys in parsedData.parameters that start with tflabcustomui_
       Object.keys(parsedData.parameters).forEach((key) => {
         if (key.startsWith('tflabcustomui_')) {
@@ -483,6 +485,7 @@ export default function DynamicPluginForm({
   }, [plugin, experimentInfo, config, data]);
 
   const schema = useMemo(() => getSchema(configData), [configData]);
+  console.log("SCHEMA", schema);
   /* Below we wait for "configData" to be sure that defaults are set before rendering
   if we don't do this, then the form is rendered twice and Select elements will not
   honour the second settings for default Value */
-- 
GitLab