diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz
index 6f760c39..82d2e3b9 100644
Binary files a/tools/server/public/index.html.gz and b/tools/server/public/index.html.gz differ
diff --git a/tools/server/webui/src/components/ChatScreen.tsx b/tools/server/webui/src/components/ChatScreen.tsx
index 29ab5ea6..a2e3ee99 100644
--- a/tools/server/webui/src/components/ChatScreen.tsx
+++ b/tools/server/webui/src/components/ChatScreen.tsx
@@ -157,6 +157,9 @@ export default function ChatScreen() {
clearExtraContext();
};
+ // for vscode context
+ textarea.refOnSubmit.current = sendNewMessage;
+
const handleEditMessage = async (msg: Message, content: string) => {
if (!viewingChat) return;
setCurrNodeId(msg.id);
diff --git a/tools/server/webui/src/components/useChatTextarea.ts b/tools/server/webui/src/components/useChatTextarea.ts
index 42b12819..a3223f4f 100644
--- a/tools/server/webui/src/components/useChatTextarea.ts
+++ b/tools/server/webui/src/components/useChatTextarea.ts
@@ -37,6 +37,7 @@ export interface ChatTextareaApi {
setValue: (value: string) => void;
focus: () => void;
ref: React.RefObject;
+ refOnSubmit: React.MutableRefObject<(() => void) | null>; // Submit handler
onInput: (event: React.FormEvent) => void; // Input handler
}
@@ -46,6 +47,7 @@ export interface ChatTextareaApi {
export function useChatTextarea(initValue: string): ChatTextareaApi {
const [savedInitValue, setSavedInitValue] = useState(initValue);
const textareaRef = useRef(null);
+ const onSubmitRef = useRef<(() => void) | null>(null);
// Effect to set initial value and height on mount or when initValue changes
useEffect(() => {
@@ -91,6 +93,7 @@ export function useChatTextarea(initValue: string): ChatTextareaApi {
}
},
ref: textareaRef,
+ refOnSubmit: onSubmitRef,
onInput: handleInput,
};
}
diff --git a/tools/server/webui/src/utils/llama-vscode.ts b/tools/server/webui/src/utils/llama-vscode.ts
index c45b0d39..55ebdcff 100644
--- a/tools/server/webui/src/utils/llama-vscode.ts
+++ b/tools/server/webui/src/utils/llama-vscode.ts
@@ -33,6 +33,9 @@ export const useVSCodeContext = (textarea: ChatTextareaApi) => {
});
}
textarea.focus();
+ setTimeout(() => {
+ textarea.refOnSubmit.current?.();
+ }, 10); // wait for setExtraContext to finish
}
};