From 19d16ae7b8e46c4331dc6141d3d2ac2efdbabd67 Mon Sep 17 00:00:00 2001
From: deep1401 <gandhi0869@gmail.com>
Date: Wed, 12 Feb 2025 08:04:00 -0800
Subject: [PATCH] Add search bar for tasks tab in evals

---
 .../components/Experiment/Eval/EvalModal.tsx  | 66 +++++++++++++++----
 1 file changed, 55 insertions(+), 11 deletions(-)

diff --git a/src/renderer/components/Experiment/Eval/EvalModal.tsx b/src/renderer/components/Experiment/Eval/EvalModal.tsx
index f958ff2f..ca661288 100644
--- a/src/renderer/components/Experiment/Eval/EvalModal.tsx
+++ b/src/renderer/components/Experiment/Eval/EvalModal.tsx
@@ -284,8 +284,41 @@ export default function EvalModal({
     );
   }
 
-  function TasksTab(options) {
-    const taskOptions = options.options
+  // function TasksTab(options) {
+  //   const taskOptions = options.options
+
+  //   const handleToggleTask = (option: string) => {
+  //     if (selectedTasks.includes(option)) {
+  //       setSelectedTasks(selectedTasks.filter((t) => t !== option));
+  //     } else {
+  //       setSelectedTasks([...selectedTasks, option]);
+  //     }
+  //   };
+
+  //   return (
+  //     <Stack spacing={2}>
+  //       <FormLabel>Evaluation Tasks</FormLabel>
+  //     {taskOptions.map((option) => (
+  //       <FormControl key={option}>
+  //       <Checkbox
+  //         checked={selectedTasks.includes(option)}
+  //         onChange={() => handleToggleTask(option)}
+  //         label={option}
+  //       />
+  //       </FormControl>
+  //     ))}
+  //     </Stack>
+  //   );
+  // }
+
+  function TasksTab( options) {
+    const [searchText, setSearchText] = useState("");
+    const taskOptions = options.options;
+
+    // Filter task options based on search text
+    const filteredTaskOptions = taskOptions.filter((option) =>
+      option.toLowerCase().includes(searchText.toLowerCase())
+    );
 
     const handleToggleTask = (option: string) => {
       if (selectedTasks.includes(option)) {
@@ -297,20 +330,29 @@ export default function EvalModal({
 
     return (
       <Stack spacing={2}>
-      {taskOptions.map((option) => (
-        <FormControl key={option}>
-        <Checkbox
-          checked={selectedTasks.includes(option)}
-          onChange={() => handleToggleTask(option)}
-          label={option}
+        <FormLabel>Evaluation Tasks</FormLabel>
+        <Input
+          placeholder="Search tasks..."
+          value={searchText}
+          onChange={(e) => setSearchText(e.target.value)}
+          size="sm"
         />
-        </FormControl>
-      ))}
+        {filteredTaskOptions.map((option) => (
+          <FormControl key={option}>
+            <Checkbox
+              checked={selectedTasks.includes(option)}
+              onChange={() => handleToggleTask(option)}
+              label={option}
+            />
+          </FormControl>
+        ))}
       </Stack>
     );
   }
 
 
+
+
   const handleSubmit = async (event: FormEvent<HTMLFormElement>) => {
     event.preventDefault();
     const formData = new FormData(event.currentTarget);
@@ -414,7 +456,9 @@ export default function EvalModal({
               <TrainingModalFirstTab />
             </TabPanel>
             <TabPanel value={2} sx={{ p: 2, overflow: 'auto' }} keepMounted>
-              <TasksTab  options={taskOptions}/>
+              <TasksTab
+              options={taskOptions}
+              />
             </TabPanel>
             <TabPanel value={3} sx={{ p: 2, overflow: 'auto' }} keepMounted>
               <DynamicPluginForm
-- 
GitLab