From 97f477e4dd64165738a6beab74edf09ef355a55a Mon Sep 17 00:00:00 2001
From: Nate Sesti <sestinj@gmail.com>
Date: Mon, 3 Jul 2023 19:34:33 -0700
Subject: fix python version on windows, other bugs, jest

---
 extension/react-app/src/tabs/gui.tsx | 43 ++++++++++++++++++++----------------
 1 file changed, 24 insertions(+), 19 deletions(-)

(limited to 'extension/react-app/src/tabs/gui.tsx')

diff --git a/extension/react-app/src/tabs/gui.tsx b/extension/react-app/src/tabs/gui.tsx
index e0b32a24..58aab984 100644
--- a/extension/react-app/src/tabs/gui.tsx
+++ b/extension/react-app/src/tabs/gui.tsx
@@ -215,30 +215,35 @@ function GUI(props: GUIProps) {
       mainTextInputRef.current.value = "";
       if (!client) return;
 
+      setWaitingForSteps(true);
+
       if (
-        history?.timeline.length &&
-        history.timeline[history.current_index].step.name ===
-          "Waiting for user input"
+        history &&
+        history.current_index >= 0 &&
+        history.current_index < history.timeline.length
       ) {
-        if (input.trim() === "") return;
-        onStepUserInput(input, history!.current_index);
-      } else if (
-        history?.timeline.length &&
-        history.timeline[history.current_index].step.name ===
+        if (
+          history.timeline[history.current_index].step.name ===
+          "Waiting for user input"
+        ) {
+          if (input.trim() === "") return;
+          onStepUserInput(input, history!.current_index);
+          return;
+        } else if (
+          history.timeline[history.current_index].step.name ===
           "Waiting for user confirmation"
-      ) {
-        onStepUserInput("ok", history!.current_index);
-      } else {
-        if (input.trim() === "") return;
-
-        client.sendMainInput(input);
-        setUserInputQueue((queue) => {
-          return [...queue, input];
-        });
+        ) {
+          onStepUserInput("ok", history!.current_index);
+          return;
+        }
       }
-    }
+      if (input.trim() === "") return;
 
-    setWaitingForSteps(true);
+      client.sendMainInput(input);
+      setUserInputQueue((queue) => {
+        return [...queue, input];
+      });
+    }
   };
 
   const onStepUserInput = (input: string, index: number) => {
-- 
cgit v1.2.3-70-g09d2

