diff --git a/packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx b/packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx index 448f9e39d3a..6e6c106e162 100644 --- a/packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/chat/ChatView.tsx @@ -134,7 +134,7 @@ export const ChatView: Component = (props) => { - + diff --git a/packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx b/packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx index 0a8332605d5..a9759a6c575 100644 --- a/packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx @@ -41,7 +41,11 @@ function mergeReviewComments(current: ReviewComment[], incoming: ReviewComment[] return [...map.values()] } -export const PromptInput: Component = () => { +interface PromptInputProps { + blocked?: () => boolean +} + +export const PromptInput: Component = (props) => { const session = useSession() const server = useServer() const language = useLanguage() @@ -172,7 +176,7 @@ export const PromptInput: Component = () => { const isBusy = () => session.status() === "busy" const isDisabled = () => !server.isConnected() const hasInput = () => text().trim().length > 0 || imageAttach.images().length > 0 || reviewComments().length > 0 - const canSend = () => hasInput() && !isDisabled() + const canSend = () => hasInput() && !isDisabled() && !props.blocked?.() const showStop = () => isBusy() && !hasInput() const placeholder = () => { switch (server.connectionState()) { @@ -450,7 +454,7 @@ export const PromptInput: Component = () => { const pending = reviewComments() const review = pending.length > 0 ? formatReviewCommentsMarkdown(pending) : "" const message = draft && review ? `${review}\n\n${draft}` : draft || review - if ((!message && imgs.length === 0) || isDisabled()) return + if ((!message && imgs.length === 0) || isDisabled() || props.blocked?.()) return const mentionFiles = mention.parseFileAttachments(draft) const imgFiles = imgs.map((img) => ({ mime: img.mime, url: img.dataUrl, filename: img.filename })) @@ -639,7 +643,10 @@ export const PromptInput: Component = () => { +