From b970cfd4b3e07b98a0c3b255e53040b7b77c5af9 Mon Sep 17 00:00:00 2001 From: Debanjum Date: Mon, 11 Nov 2024 15:35:08 -0800 Subject: [PATCH] Align styling of reference panel card across code, docs, web results - Add a border below heading - Show code snippet in pre block - Overflow-x when reference side panel open to allow seeing whole text via x-scroll - Align header, body position of reference cards with each other - Only show filename in doc reference cards at message bottom. Show full file path in hover and reference side panel --- .../referencePanel/referencePanel.tsx | 200 +++++++++--------- 1 file changed, 103 insertions(+), 97 deletions(-) diff --git a/src/interface/web/app/components/referencePanel/referencePanel.tsx b/src/interface/web/app/components/referencePanel/referencePanel.tsx index 0237f18f..dc6d8360 100644 --- a/src/interface/web/app/components/referencePanel/referencePanel.tsx +++ b/src/interface/web/app/components/referencePanel/referencePanel.tsx @@ -57,6 +57,7 @@ function NotesContextReferenceCard(props: NotesContextReferenceCardProps) { props.title || ".txt", "w-6 h-6 text-muted-foreground inline-flex mr-2", ); + const fileName = props.title.split("/").pop() || props.title; const snippet = extractSnippet(props); const [isHovering, setIsHovering] = useState(false); @@ -67,30 +68,30 @@ function NotesContextReferenceCard(props: NotesContextReferenceCardProps) { setIsHovering(true)} onMouseLeave={() => setIsHovering(false)} - className={`${props.showFullContent ? "w-auto" : "w-[200px]"} overflow-hidden break-words text-balance rounded-lg p-2 bg-muted border-none`} + className={`${props.showFullContent ? "w-auto" : "w-[200px]"} overflow-hidden break-words text-balance rounded-lg border-none p-2 bg-muted`} >

{fileIcon} - {props.title} + {props.showFullContent ? props.title : fileName}

{fileIcon} {props.title}

@@ -109,8 +110,8 @@ interface CodeContextReferenceCardProps { } function CodeContextReferenceCard(props: CodeContextReferenceCardProps) { - const fileIcon = getIconFromFilename(".py", "w-6 h-6 text-muted-foreground inline-flex mr-2"); - const sanitizedCodeSnippet = DOMPurify.sanitize(props.code.replace(/\n/g, "
")); + const fileIcon = getIconFromFilename(".py", "!w-4 h-4 text-muted-foreground flex-shrink-0"); + const sanitizedCodeSnippet = DOMPurify.sanitize(props.code); const [isHovering, setIsHovering] = useState(false); const [isDownloadHover, setIsDownloadHover] = useState(false); @@ -152,89 +153,98 @@ function CodeContextReferenceCard(props: CodeContextReferenceCardProps) { setIsHovering(true)} onMouseLeave={() => setIsHovering(false)} - className={`${props.showFullContent ? "w-auto" : "w-[200px]"} overflow-hidden break-words text-balance rounded-lg p-2 bg-muted border-none`} + className={`${props.showFullContent ? "w-auto" : "w-[200px]"} overflow-hidden break-words text-balance rounded-lg border-none p-2 bg-muted`} > -

- {fileIcon} - Code -

-

- {props.output_files && props.output_files.length > 0 && ( -
- {props.output_files - .slice(0, props.showFullContent ? undefined : 1) - .map((file, index) => { - const fileIcon = getIconFromFilename( - file.filename, - "w-4 h-4 text-muted-foreground inline-flex", - ); - return ( -
-

- {fileIcon} - - {file.filename} - - -

- {file.filename.match(/\.(txt|org|md|csv|json)$/) ? ( -
-                                                        {file.b64_data}
-                                                    
- ) : file.filename.match( - /\.(png|jpg|jpeg|webp)$/, - ) ? ( - {file.filename} - ) : null} -
- ); - })} +
+
+ {fileIcon} +

+ code artifacts +

- )} +
 0 ? "hidden" : "overflow-hidden line-clamp-3"}`}
+                            >
+                                {sanitizedCodeSnippet}
+                            
+ {props.output_files?.length > 0 && ( +
+ {props.output_files + .slice(0, props.showFullContent ? undefined : 1) + .map((file, index) => { + return ( +
+

+ + {file.filename} + + +

+ {file.filename.match( + /\.(txt|org|md|csv|json)$/, + ) ? ( +
+                                                            {file.b64_data}
+                                                        
+ ) : file.filename.match( + /\.(png|jpg|jpeg|webp)$/, + ) ? ( + {file.filename} + ) : null} +
+ ); + })} +
+ )} +
-

+
{fileIcon} - Code -

-

+

+ code +

+
+
+                            {sanitizedCodeSnippet}
+                        
@@ -291,21 +301,17 @@ function GenericOnlineReferenceCard(props: OnlineReferenceCardProps) {
- +

@@ -313,12 +319,12 @@ function GenericOnlineReferenceCard(props: OnlineReferenceCardProps) {

{props.title}

{props.description}

@@ -335,23 +341,23 @@ function GenericOnlineReferenceCard(props: OnlineReferenceCardProps) { href={props.link} target="_blank" rel="noreferrer" - className="!no-underline p-2" + className="!no-underline px-1" > -
- +
+

{domain}

{props.title}

{props.description}