From 1c1ac003a5ec2056d464ec856b5cda15e8294376 Mon Sep 17 00:00:00 2001
From: Ali Asaria <ali.asaria@gmail.com>
Date: Tue, 2 Apr 2024 16:18:55 -0400
Subject: [PATCH] display errors when checking if conda exists

---
 src/main/util.ts                              |  7 +++--
 .../components/Connect/LocalConnection.tsx    | 30 +++++++++++++++++--
 2 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/src/main/util.ts b/src/main/util.ts
index d354d5c1..6d1c0096 100644
--- a/src/main/util.ts
+++ b/src/main/util.ts
@@ -314,7 +314,7 @@ export async function checkIfCondaEnvironmentExists() {
   if (error) {
     response.status = 'error';
     response.message = 'Conda environment check failed.';
-    response.data = { stdout: '', stderr: stderr.toString() };
+    response.data = { stdout: stdout?.toString(), stderr: stderr.toString() };
     console.log('Conda environment check failed.');
     return response;
   }
@@ -330,8 +330,11 @@ export async function checkIfCondaEnvironmentExists() {
     stdout.includes(env_path) &&
     fs.existsSync(path.join(root_dir, 'envs', 'transformerlab'))
   ) {
-    return true;
+    response.status = 'success';
+    return response;
   } else {
+    response.status = 'error';
+    response.message = 'Conda environment "transformerlab" not found.';
     return false;
   }
 }
diff --git a/src/renderer/components/Connect/LocalConnection.tsx b/src/renderer/components/Connect/LocalConnection.tsx
index c938d46b..8a345003 100644
--- a/src/renderer/components/Connect/LocalConnection.tsx
+++ b/src/renderer/components/Connect/LocalConnection.tsx
@@ -521,6 +521,7 @@ function CheckIfCondaInstalled({ activeStep, setActiveStep }) {
 
 function CheckIfCondaEnvironmentExists({ activeStep, setActiveStep }) {
   const [installStatus, setInstallStatus] = useState(''); // notstarted, pending, success, error
+  const [errorMessage, setErrorMessage] = useState(null);
 
   useEffect(() => {
     if (activeStep !== Steps.indexOf('CHECK_IF_CONDA_ENVIRONMENT_EXISTS'))
@@ -530,11 +531,16 @@ function CheckIfCondaEnvironmentExists({ activeStep, setActiveStep }) {
       const condaExists = await window.electron.ipcRenderer.invoke(
         'server:checkIfCondaEnvironmentExists'
       );
-      if (condaExists) {
+      console.log(JSON.stringify(condaExists));
+      if (condaExists?.status == 'success') {
         setInstallStatus('success');
         setActiveStep(Steps.indexOf('CHECK_IF_CONDA_ENVIRONMENT_EXISTS') + 1);
       } else {
         setInstallStatus('notstarted');
+        setErrorMessage({
+          message: condaExists?.message,
+          data: condaExists?.data,
+        });
       }
     })();
   }, [activeStep]);
@@ -567,12 +573,18 @@ function CheckIfCondaEnvironmentExists({ activeStep, setActiveStep }) {
                   const condaExists = await window.electron.ipcRenderer.invoke(
                     'server:checkIfCondaEnvironmentExists'
                   );
-                  if (condaExists) {
+                  if (condaExists?.status == 'success') {
                     setInstallStatus('success');
                     setActiveStep(
                       Steps.indexOf('CHECK_IF_CONDA_ENVIRONMENT_EXISTS') + 1
                     );
                     return;
+                  } else {
+                    setInstallStatus('error');
+                    setErrorMessage({
+                      message: condaExists?.message,
+                      data: condaExists?.data,
+                    });
                   }
                   setIntervalXTimes(
                     async () => {
@@ -580,12 +592,18 @@ function CheckIfCondaEnvironmentExists({ activeStep, setActiveStep }) {
                         await window.electron.ipcRenderer.invoke(
                           'server:checkIfCondaEnvironmentExists'
                         );
-                      if (condaExists) {
+                      if (condaExists?.status == 'success') {
                         setInstallStatus('success');
                         setActiveStep(
                           Steps.indexOf('CHECK_IF_CONDA_ENVIRONMENT_EXISTS') + 1
                         );
                         return true;
+                      } else {
+                        setInstallStatus('error');
+                        setErrorMessage({
+                          message: condaExists?.message,
+                          data: condaExists?.data,
+                        });
                       }
                       return false;
                     },
@@ -599,6 +617,12 @@ function CheckIfCondaEnvironmentExists({ activeStep, setActiveStep }) {
               </Button>
             </ButtonGroup>
           )}
+        <Typography level="body-sm" color="warning">
+          {errorMessage?.message}
+        </Typography>
+        <Typography level="body-sm" color="neutral">
+          {errorMessage?.data?.stdout} {errorMessage?.data?.stderr}
+        </Typography>
       </Stack>
     </>
   );
-- 
GitLab