diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-06-17 10:46:54 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-06-17 10:46:54 -0700 |
commit | 3c24af2e70e2a4ad22d9aa7dcf245711806890ee (patch) | |
tree | 514360fa3dbef792daf6a8d8d596e3a5f28f72da /extension/react-app/src/tabs | |
parent | b09c6ff5e764e860473d92f099e419e651773ddd (diff) | |
download | sncontinue-3c24af2e70e2a4ad22d9aa7dcf245711806890ee.tar.gz sncontinue-3c24af2e70e2a4ad22d9aa7dcf245711806890ee.tar.bz2 sncontinue-3c24af2e70e2a4ad22d9aa7dcf245711806890ee.zip |
ui details
Diffstat (limited to 'extension/react-app/src/tabs')
-rw-r--r-- | extension/react-app/src/tabs/gui.tsx | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/extension/react-app/src/tabs/gui.tsx b/extension/react-app/src/tabs/gui.tsx index 63da595f..6aa20e0e 100644 --- a/extension/react-app/src/tabs/gui.tsx +++ b/extension/react-app/src/tabs/gui.tsx @@ -54,6 +54,7 @@ function GUI(props: GUIProps) { const [availableSlashCommands, setAvailableSlashCommands] = useState< { name: string; description: string }[] >([]); + const [stepsOpen, setStepsOpen] = useState<boolean[]>([]); const [history, setHistory] = useState<History | undefined>(); // { // timeline: [ @@ -212,6 +213,15 @@ function GUI(props: GUIProps) { setWaitingForSteps(state.active); setHistory(state.history); setUserInputQueue(state.user_input_queue); + const nextStepsOpen = [...stepsOpen]; + for ( + let i = nextStepsOpen.length; + i < state.history.timeline.length; + i++ + ) { + nextStepsOpen.push(true); + } + setStepsOpen(nextStepsOpen); if (shouldScrollToBottom) { scrollToBottom(); @@ -321,6 +331,15 @@ function GUI(props: GUIProps) { {history?.timeline.map((node: HistoryNode, index: number) => { return ( <StepContainer + open={stepsOpen[index]} + onToggle={() => { + const nextStepsOpen = [...stepsOpen]; + nextStepsOpen[index] = !nextStepsOpen[index]; + setStepsOpen(nextStepsOpen); + }} + onToggleAll={() => { + setStepsOpen((prev) => prev.map(() => !prev[index])); + }} key={index} onUserInput={(input: string) => { onStepUserInput(input, index); |