From b044acb61f45db5959411bbc458c949e6b2b6bef Mon Sep 17 00:00:00 2001 From: Will Chen Date: Wed, 11 Jun 2025 14:39:55 -0700 Subject: [PATCH] Polish chat input UX (#388) --- e2e-tests/helpers/test_helper.ts | 5 +- src/components/ChatInputControls.tsx | 11 +++- src/components/ContextFilesPicker.tsx | 24 +++++--- src/components/ModelPicker.tsx | 47 +++++++++------ src/components/ProModeSelector.tsx | 2 +- src/components/chat/ChatInput.tsx | 87 +++++++++++++++++---------- 6 files changed, 110 insertions(+), 66 deletions(-) diff --git a/e2e-tests/helpers/test_helper.ts b/e2e-tests/helpers/test_helper.ts index b9fbbe5..ec3a239 100644 --- a/e2e-tests/helpers/test_helper.ts +++ b/e2e-tests/helpers/test_helper.ts @@ -132,10 +132,7 @@ export class PageObject { } async openContextFilesPicker() { - const contextButton = this.page.getByRole("button", { - name: "Context", - exact: true, - }); + const contextButton = this.page.getByTestId("codebase-context-button"); await contextButton.click(); return new ContextFilesPickerDialog(this.page, async () => { await contextButton.click(); diff --git a/src/components/ChatInputControls.tsx b/src/components/ChatInputControls.tsx index 1997638..3928118 100644 --- a/src/components/ChatInputControls.tsx +++ b/src/components/ChatInputControls.tsx @@ -8,10 +8,17 @@ export function ChatInputControls({ showContextFilesPicker?: boolean; }) { return ( -
+
- {showContextFilesPicker && } +
+
+ {showContextFilesPicker && ( + <> + +
+ + )}
); } diff --git a/src/components/ContextFilesPicker.tsx b/src/components/ContextFilesPicker.tsx index 289b5d2..839fd8e 100644 --- a/src/components/ContextFilesPicker.tsx +++ b/src/components/ContextFilesPicker.tsx @@ -6,7 +6,7 @@ import { PopoverTrigger, } from "@/components/ui/popover"; -import { FileCode, InfoIcon, Trash2 } from "lucide-react"; +import { InfoIcon, Settings2, Trash2 } from "lucide-react"; import { useState } from "react"; import { Tooltip, @@ -84,12 +84,22 @@ export function ContextFilesPicker() { return ( - - - + + + + + + + Codebase Context + +
diff --git a/src/components/ModelPicker.tsx b/src/components/ModelPicker.tsx index c4fe2cf..c7be1c9 100644 --- a/src/components/ModelPicker.tsx +++ b/src/components/ModelPicker.tsx @@ -123,25 +123,34 @@ export function ModelPicker() { return ( - - - - + + + + + + + {modelDisplayName} + + e.preventDefault()} + > Cloud Models diff --git a/src/components/ProModeSelector.tsx b/src/components/ProModeSelector.tsx index 1a95a37..c3255c9 100644 --- a/src/components/ProModeSelector.tsx +++ b/src/components/ProModeSelector.tsx @@ -40,7 +40,7 @@ export function ProModeSelector() { - - {isStreaming ? ( )}
-
- - +
+
+ + {/* File attachment button */} + + + + + + Attach files + + + +
+ + + + + + + + {showTokenBar ? "Hide token usage" : "Show token usage"} + + +
{/* TokenBar is only displayed when showTokenBar is true */} {showTokenBar && }