diff options
Diffstat (limited to 'extension/react-app/src')
| -rw-r--r-- | extension/react-app/src/components/CodeBlock.tsx | 1 | ||||
| -rw-r--r-- | extension/react-app/src/components/StepContainer.tsx | 23 | ||||
| -rw-r--r-- | extension/react-app/src/tabs/chat/MessageDiv.tsx | 4 | ||||
| -rw-r--r-- | extension/react-app/src/tabs/gui.tsx | 20 | 
4 files changed, 40 insertions, 8 deletions
| diff --git a/extension/react-app/src/components/CodeBlock.tsx b/extension/react-app/src/components/CodeBlock.tsx index e0336554..eedae3fb 100644 --- a/extension/react-app/src/components/CodeBlock.tsx +++ b/extension/react-app/src/components/CodeBlock.tsx @@ -11,6 +11,7 @@ const StyledPre = styled.pre`    border: 1px solid gray;    border-radius: ${defaultBorderRadius};    background-color: ${vscBackground}; +  padding: 8px;  `;  const StyledCode = styled.code` diff --git a/extension/react-app/src/components/StepContainer.tsx b/extension/react-app/src/components/StepContainer.tsx index 8ea54325..fb0143b5 100644 --- a/extension/react-app/src/components/StepContainer.tsx +++ b/extension/react-app/src/components/StepContainer.tsx @@ -84,6 +84,15 @@ const OnHoverDiv = styled.div`    animation: ${appear} 0.3s ease-in-out;  `; +const MarkdownPre = styled.pre` +  background-color: ${secondaryDark}; +  padding: 10px; +  border-radius: ${defaultBorderRadius}; +  border: 0.5px solid white; +`; + +const MarkdownCode = styled.code``; +  function StepContainer(props: StepContainerProps) {    const [open, setOpen] = useState(      typeof props.open === "undefined" ? true : props.open @@ -182,7 +191,19 @@ function StepContainer(props: StepContainerProps) {                {props.historyNode.observation.error as string}              </pre>            ) : ( -            <ReactMarkdown key={1} className="overflow-scroll"> +            <ReactMarkdown +              key={1} +              className="overflow-scroll" +              components={{ +                pre: ({ node, ...props }) => { +                  return ( +                    <CodeBlock +                      children={props.children[0] as string} +                    ></CodeBlock> +                  ); +                }, +              }} +            >                {props.historyNode.step.description as any}              </ReactMarkdown>            )} diff --git a/extension/react-app/src/tabs/chat/MessageDiv.tsx b/extension/react-app/src/tabs/chat/MessageDiv.tsx index 1d7bb5f5..3543dd93 100644 --- a/extension/react-app/src/tabs/chat/MessageDiv.tsx +++ b/extension/react-app/src/tabs/chat/MessageDiv.tsx @@ -58,7 +58,9 @@ function MessageDiv(props: ChatMessage) {    }, [richContent, isStreaming]);    useEffect(() => { -    setRichContent([<ReactMarkdown key={1}>{props.content}</ReactMarkdown>]); +    setRichContent([ +      <ReactMarkdown key={1} children={props.content}></ReactMarkdown>, +    ]);    }, [props.content]);    return ( diff --git a/extension/react-app/src/tabs/gui.tsx b/extension/react-app/src/tabs/gui.tsx index 5c75579b..9f7e651f 100644 --- a/extension/react-app/src/tabs/gui.tsx +++ b/extension/react-app/src/tabs/gui.tsx @@ -41,7 +41,7 @@ function GUI(props: GUIProps) {    //         name: "Waiting for user input",    //         cmd: "python3 /Users/natesesti/Desktop/continue/extension/examples/python/main.py",    //         description: -  //           "Run `python3 /Users/natesesti/Desktop/continue/extension/examples/python/main.py`", +  //           "Run `python3 /Users/natesesti/Desktop/continue/extension/examples/python/main.py` and ```\nprint(sum(first, second))\n```\n- Testing\n- Testing 2\n- Testing 3",    //       },    //       observation: {    //         title: "ERROR FOUND", @@ -92,7 +92,7 @@ function GUI(props: GUIProps) {    //         prompt:    //           "I ran into this problem with my Python code:\n\n                Traceback (most recent call last):\n  File \"/Users/natesesti/Desktop/continue/extension/examples/python/main.py\", line 7, in <module>\n    print(sum(first, second))\n          ^^^^^^^^^^^^^^^^^^\n  File \"/Users/natesesti/Desktop/continue/extension/examples/python/sum.py\", line 2, in sum\n    return a + b\n           ~~^~~\nTypeError: unsupported operand type(s) for +: 'int' and 'str'\n\n                Below are the files that might need to be fixed:\n\n                {code}\n\n                This is what the code should be in order to avoid the problem:\n",    //         description: -  //           "Editing files: /Users/natesesti/Desktop/continue/extension/examples/python/main.py", +  //           "Run `python3 /Users/natesesti/Desktop/continue/extension/examples/python/main.py` and\n```python\nprint(sum(first, second))\n```\n- Testing\n- Testing 2\n- Testing 3",    //       },    //       output: [    //         null, @@ -154,22 +154,30 @@ function GUI(props: GUIProps) {    //       output: [null, null],    //     },    //   ], -  //   current_index: 0, +  //   current_index: 3,    // } as any);    const topGuiDivRef = useRef<HTMLDivElement>(null);    const client = useContinueGUIProtocol(); +  const [scrollTimeout, setScrollTimeout] = useState<NodeJS.Timeout | null>( +    null +  );    const scrollToBottom = useCallback(() => { +    if (scrollTimeout) { +      clearTimeout(scrollTimeout); +    } +    // Debounced smooth scroll to bottom of screen      if (topGuiDivRef.current) { -      setTimeout(() => { +      const timeout = setTimeout(() => {          window.scrollTo({            top: window.outerHeight,            behavior: "smooth",          }); -      }, 100); +      }, 200); +      setScrollTimeout(timeout);      } -  }, [topGuiDivRef.current]); +  }, [topGuiDivRef.current, scrollTimeout]);    useEffect(() => {      console.log("CLIENT ON STATE UPDATE: ", client, client?.onStateUpdate); | 
