diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-06-17 12:06:25 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-06-17 12:06:25 -0700 |
commit | 50f714d7b8a5e0c66e8db41f939cf2a964663931 (patch) | |
tree | 7dad1fb3396f7001846c050a518f193a0c89dc25 /extension/react-app/src/components/StepContainer.tsx | |
parent | 3c24af2e70e2a4ad22d9aa7dcf245711806890ee (diff) | |
download | sncontinue-50f714d7b8a5e0c66e8db41f939cf2a964663931.tar.gz sncontinue-50f714d7b8a5e0c66e8db41f939cf2a964663931.tar.bz2 sncontinue-50f714d7b8a5e0c66e8db41f939cf2a964663931.zip |
more ui details
Diffstat (limited to 'extension/react-app/src/components/StepContainer.tsx')
-rw-r--r-- | extension/react-app/src/components/StepContainer.tsx | 118 |
1 files changed, 50 insertions, 68 deletions
diff --git a/extension/react-app/src/components/StepContainer.tsx b/extension/react-app/src/components/StepContainer.tsx index 4c98b04d..1eb1d1fd 100644 --- a/extension/react-app/src/components/StepContainer.tsx +++ b/extension/react-app/src/components/StepContainer.tsx @@ -5,14 +5,8 @@ import { defaultBorderRadius, secondaryDark, vscBackground, - GradientBorder, vscBackgroundTransparent, - HeaderButton, } from "."; -import { RangeInFile, FileEdit } from "../../../src/client"; -import CodeBlock from "./CodeBlock"; -import SubContainer from "./SubContainer"; - import { ChevronDown, ChevronRight, @@ -22,6 +16,7 @@ import { import { HistoryNode } from "../../../schema/HistoryNode"; import ReactMarkdown from "react-markdown"; import HeaderButtonWithText from "./HeaderButtonWithText"; +import CodeBlock from "./CodeBlock"; interface StepContainerProps { historyNode: HistoryNode; @@ -34,6 +29,8 @@ interface StepContainerProps { open: boolean; onToggleAll: () => void; onToggle: () => void; + isFirst: boolean; + isLast: boolean; } const MainDiv = styled.div<{ stepDepth: number; inFuture: boolean }>` @@ -67,12 +64,6 @@ const ContentDiv = styled.div` padding-left: 16px; `; -const OnHoverDiv = styled.div` - text-align: center; - padding: 10px; - animation: ${appear} 0.3s ease-in-out; -`; - const MarkdownPre = styled.pre` background-color: ${secondaryDark}; padding: 10px; @@ -80,7 +71,34 @@ const MarkdownPre = styled.pre` border: 0.5px solid white; `; -const MarkdownCode = styled.code``; +const StyledCode = styled.code` + word-wrap: break-word; + color: lightgray; +`; + +const GradientBorder = styled.div<{ + borderWidth?: number; + borderRadius?: string; + borderColor?: string; + isFirst: boolean; + isLast: boolean; +}>` + border-radius: ${(props) => props.borderRadius || "0"}; + padding-top: ${(props) => + `${(props.borderWidth || 1) / (props.isFirst ? 1 : 2)}px`}; + padding-bottom: ${(props) => + `${(props.borderWidth || 1) / (props.isLast ? 1 : 2)}px`}; + background: ${(props) => + props.borderColor + ? props.borderColor + : `linear-gradient( + 101.79deg, + #12887a 0%, + #87245c 37.64%, + #e12637 65.98%, + #ffb215 110.45% + )`}; +`; function StepContainer(props: StepContainerProps) { const [isHovered, setIsHovered] = useState(false); @@ -120,12 +138,14 @@ function StepContainer(props: StepContainerProps) { > <StepContainerDiv open={props.open}> <GradientBorder + isFirst={props.isFirst} + isLast={props.isLast} borderColor={ props.historyNode.observation?.error ? "#f00" : undefined } className="overflow-hidden cursor-pointer" onClick={(e) => { - if (props.open && e.metaKey) { + if (e.metaKey) { props.onToggleAll(); } else { props.onToggle(); @@ -198,66 +218,28 @@ function StepContainer(props: StepContainerProps) { <ReactMarkdown key={1} className="overflow-x-scroll" - components={ - { - // pre: ({ node, ...props }) => { - // return ( - // <CodeBlock - // children={props.children[0] as string} - // ></CodeBlock> - // ); - // }, - } - } + components={{ + pre: ({ node, ...props }) => { + return ( + <CodeBlock + children={props.children[0] as string} + ></CodeBlock> + ); + }, + code: ({ node, ...props }) => { + return ( + <StyledCode + children={props.children[0] as string} + ></StyledCode> + ); + }, + }} > {props.historyNode.step.description as any} </ReactMarkdown> )} - - {/* {props.historyNode.step.name === "Waiting for user input" && ( - <InputAndButton - onUserInput={(value) => { - props.onUserInput(value); - }} - ></InputAndButton> - )} - {props.historyNode.step.name === "Waiting for user confirmation" && ( - <> - <input - type="button" - value="Cancel" - className="m-4 p-2 rounded-md border border-solid text-white border-gray-200 bg-vsc-background cursor-pointer hover:bg-white hover:text-black" - ></input> - <input - className="m-4 p-2 rounded-md border border-solid text-white border-gray-200 bg-vsc-background cursor-pointer hover:bg-white hover:text-black" - onClick={(e) => { - props.onUserInput("ok"); - e.preventDefault(); - e.stopPropagation(); - }} - type="button" - value="Confirm" - /> - </> - )} */} </ContentDiv> </StepContainerDiv> - - {/* <OnHoverDiv hidden={!open}> - <NaturalLanguageInput - onKeyDown={(e) => { - if (e.key === "Enter") { - onTextInput(); - } - }} - ref={naturalLanguageInputRef} - onClick={(e) => { - e.stopPropagation(); - e.preventDefault(); - }} - ></NaturalLanguageInput> - <ContinueButton onClick={onTextInput}></ContinueButton> - </OnHoverDiv> */} </MainDiv> ); } |