diff --git a/packages/ui/src/components/prompt-input.tsx b/packages/ui/src/components/prompt-input.tsx index 214ed534..4e5d5a20 100644 --- a/packages/ui/src/components/prompt-input.tsx +++ b/packages/ui/src/components/prompt-input.tsx @@ -1,5 +1,5 @@ import { Suspense, createEffect, createSignal, lazy, on, onCleanup, Show } from "solid-js" -import { ArrowBigUp, ArrowBigDown, Loader2, Mic, X } from "lucide-solid" +import { ArrowBigUp, ArrowBigDown, Loader2, Mic, Volume2, X } from "lucide-solid" import ExpandButton from "./expand-button" import { clearAttachments, removeAttachment } from "../stores/attachments" import { resolvePastedPlaceholders } from "../lib/prompt-placeholders" @@ -19,6 +19,7 @@ import { usePromptAttachments } from "./prompt-input/usePromptAttachments" import { usePromptPicker } from "./prompt-input/usePromptPicker" import { usePromptKeyDown } from "./prompt-input/usePromptKeyDown" import { usePromptVoiceInput } from "./prompt-input/usePromptVoiceInput" +import { canUseConversationMode, isConversationModeEnabled, toggleConversationMode } from "../stores/conversation-speech" const log = getLogger("actions") const LazyUnifiedPicker = lazy(() => import("./unified-picker")) @@ -476,6 +477,13 @@ export default function PromptInput(props: PromptInputProps) { const showVoiceInput = () => preferences().showPromptVoiceInput && (voiceInput.canUseVoiceInput() || voiceInput.isRecording() || voiceInput.isTranscribing()) + const conversationModeEnabled = () => isConversationModeEnabled(props.instanceId) + const showConversationToggle = () => showVoiceInput() || conversationModeEnabled() + const canToggleConversationMode = () => canUseConversationMode() + const conversationModeButtonTitle = () => + conversationModeEnabled() + ? t("promptInput.conversationMode.disable.title") + : t("promptInput.conversationMode.enable.title") const instance = () => getActiveInstance() @@ -601,6 +609,19 @@ export default function PromptInput(props: PromptInputProps) { + + +