From ac9bc80e2098651876d64a7a68b8bb764e665da9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aneta=20Jastrz=C4=99bska?=
<1544710+anetaj@users.noreply.github.com>
Date: Sat, 21 Sep 2024 15:01:49 +0200
Subject: [PATCH] style included files list
---
extensions/void/src/sidebar/Sidebar.tsx | 160 +++++++-----------
.../void/src/sidebar/components/Files.tsx | 77 +++++++++
2 files changed, 138 insertions(+), 99 deletions(-)
create mode 100644 extensions/void/src/sidebar/components/Files.tsx
diff --git a/extensions/void/src/sidebar/Sidebar.tsx b/extensions/void/src/sidebar/Sidebar.tsx
index 04ed3020..1aefaf47 100644
--- a/extensions/void/src/sidebar/Sidebar.tsx
+++ b/extensions/void/src/sidebar/Sidebar.tsx
@@ -1,12 +1,13 @@
-import React, { useState, ChangeEvent, useEffect, useRef, useCallback, FormEvent } from "react"
-import { ApiConfig, LLMMessage, sendLLMMessage } from "../common/sendLLMMessage"
-import { Command, File, Selection, WebviewMessage } from "../shared_types"
+import React, { useState, useEffect, useRef, useCallback, FormEvent } from "react"
+import { ApiConfig, sendLLMMessage } from "../common/sendLLMMessage"
+import { File, Selection, WebviewMessage } from "../shared_types"
import { awaitVSCodeResponse, getVSCodeAPI, resolveAwaitingVSCodeResponse } from "./getVscodeApi"
import { marked } from 'marked';
import { MarkdownRender, BlockCode } from "./MarkdownRender";
import * as vscode from 'vscode'
+import { FilesSelector, IncludedFiles } from "./components/Files";
const filesStr = (fullFiles: File[]) => {
@@ -35,40 +36,6 @@ If you make a change, rewrite the entire file.
}
-const FilesSelector = ({ files, setFiles }: { files: vscode.Uri[], setFiles: (files: vscode.Uri[]) => void }) => {
- return files.length !== 0 &&
- Include files:
- {files.map((filename, i) =>
-
- {/* X button on a file */}
-
-
- )}
-
-}
-
-const IncludedFiles = ({ files }: { files: vscode.Uri[] }) => {
- return files.length !== 0 &&
- {files.map((filename, i) =>
-
-
-
- )}
-
-}
-
-
const ChatBubble = ({ chatMessage }: { chatMessage: ChatMessage }) => {
const role = chatMessage.role
@@ -99,13 +66,6 @@ const ChatBubble = ({ chatMessage }: { chatMessage: ChatMessage }) => {
}
-const getBasename = (pathStr: string) => {
- // "unixify" path
- pathStr = pathStr.replace(/[/\\]+/g, '/'); // replace any / or \ or \\ with /
- const parts = pathStr.split('/') // split on /
- return parts[parts.length - 1]
-}
-
type ChatMessage = {
role: 'user'
content: string, // content sent to the llm
@@ -258,62 +218,64 @@ const Sidebar = () => {
{/* chatbar */}
- {/* selection */}
-
- {/* selected files */}
-
- {/* selected code */}
- {!selection?.selectionStr ? null
- : (
-
-
-
-
- )}
+
+ {/* selection */}
+
+ {/* selected files */}
+
+ {/* selected code */}
+ {!selection?.selectionStr ? null
+ : (
+
+
+
+
+ )}
+
+
-
diff --git a/extensions/void/src/sidebar/components/Files.tsx b/extensions/void/src/sidebar/components/Files.tsx
new file mode 100644
index 00000000..64e4f7fa
--- /dev/null
+++ b/extensions/void/src/sidebar/components/Files.tsx
@@ -0,0 +1,77 @@
+import React from "react"
+import * as vscode from "vscode"
+
+const getBasename = (pathStr: string) => {
+ // "unixify" path
+ pathStr = pathStr.replace(/[/\\]+/g, "/") // replace any / or \ or \\ with /
+ const parts = pathStr.split("/") // split on /
+ return parts[parts.length - 1]
+}
+
+export const FilesSelector = ({
+ files,
+ setFiles,
+}: {
+ files: vscode.Uri[]
+ setFiles: (files: vscode.Uri[]) => void
+}) => {
+ const onRemove = (index: number) => () =>
+ setFiles([...files.slice(0, index), ...files.slice(index + 1, Infinity)])
+
+ return (
+ files.length !== 0 && (
+
+ {files.map((filename, i) => (
+
+ ))}
+
+ )
+ )
+}
+
+export const IncludedFiles = ({ files }: { files: vscode.Uri[] }) => {
+ return (
+ files.length !== 0 && (
+
+ {files.map((filename, i) => (
+
+
+
+ ))}
+
+ )
+ )
+}