fix: message input dictate

Co-Authored-By: Marchotridyo <29671825+acomarcho@users.noreply.github.com>
This commit is contained in:
Timothy Jaeryang Baek 2025-11-05 23:06:00 -05:00
parent 6c583ef9d3
commit 00520a9602
2 changed files with 684 additions and 688 deletions

View file

@ -1019,7 +1019,7 @@
}} }}
/> />
{#if recording} <div class={recording ? '' : 'hidden'}>
<VoiceRecording <VoiceRecording
bind:recording bind:recording
onCancel={async () => { onCancel={async () => {
@ -1034,7 +1034,7 @@
recording = false; recording = false;
await tick(); await tick();
await insertTextAtCursor(text); await insertTextAtCursor(`${text}`);
await tick(); await tick();
document.getElementById('chat-input')?.focus(); document.getElementById('chat-input')?.focus();
@ -1043,9 +1043,9 @@
} }
}} }}
/> />
{:else} </div>
<form <form
class="w-full flex flex-col gap-1.5" class="w-full flex flex-col gap-1.5 {recording ? 'hidden' : ''}"
on:submit|preventDefault={() => { on:submit|preventDefault={() => {
// check if selectedModels support image input // check if selectedModels support image input
dispatch('submit', prompt); dispatch('submit', prompt);
@ -1111,9 +1111,7 @@
<Tooltip <Tooltip
className=" absolute top-1 left-1" className=" absolute top-1 left-1"
content={$i18n.t('{{ models }}', { content={$i18n.t('{{ models }}', {
models: [ models: [...(atSelectedModel ? [atSelectedModel] : selectedModels)]
...(atSelectedModel ? [atSelectedModel] : selectedModels)
]
.filter((id) => !visionCapableModels.includes(id)) .filter((id) => !visionCapableModels.includes(id))
.join(', ') .join(', ')
})} })}
@ -1531,9 +1529,7 @@
<Tooltip content={filter?.name} placement="top"> <Tooltip content={filter?.name} placement="top">
<button <button
on:click|preventDefault={() => { on:click|preventDefault={() => {
selectedFilterIds = selectedFilterIds.filter( selectedFilterIds = selectedFilterIds.filter((id) => id !== filterId);
(id) => id !== filterId
);
}} }}
type="button" type="button"
class="group p-[7px] flex gap-1.5 items-center text-sm rounded-full transition-colors duration-300 focus:outline-hidden max-w-full overflow-hidden {selectedFilterIds.includes( class="group p-[7px] flex gap-1.5 items-center text-sm rounded-full transition-colors duration-300 focus:outline-hidden max-w-full overflow-hidden {selectedFilterIds.includes(
@ -1805,7 +1801,6 @@
<div class="mb-1" /> <div class="mb-1" />
{/if} {/if}
</form> </form>
{/if}
</div> </div>
</div> </div>
</div> </div>

View file

@ -335,6 +335,7 @@
stopDurationCounter(); stopDurationCounter();
audioChunks = []; audioChunks = [];
visualizerData = Array(VISUALIZER_BUFFER_LENGTH).fill(0);
if (stream) { if (stream) {
const tracks = stream.getTracks(); const tracks = stream.getTracks();