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) => (
+
+
+
+ ))}
+
+ )
+ )
+}