From fb993fc6a17eccc4b0b519043755c8008373c837 Mon Sep 17 00:00:00 2001 From: Jon Saad-Falcon <41205309+jonsaadfalcon@users.noreply.github.com> Date: Sat, 14 Mar 2026 12:48:41 -0700 Subject: [PATCH] feat: model switching shows loading spinner, disables input until ready --- frontend/src/components/Chat/InputArea.tsx | 5 +-- frontend/src/components/CommandPalette.tsx | 20 ++++++++++-- frontend/src/components/Sidebar/Sidebar.tsx | 35 +++++++++++++++------ 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/frontend/src/components/Chat/InputArea.tsx b/frontend/src/components/Chat/InputArea.tsx index 4b718ee8..1f77b171 100644 --- a/frontend/src/components/Chat/InputArea.tsx +++ b/frontend/src/components/Chat/InputArea.tsx @@ -23,6 +23,7 @@ export function InputArea() { const updateLastAssistant = useAppStore((s) => s.updateLastAssistant); const setStreamState = useAppStore((s) => s.setStreamState); const resetStream = useAppStore((s) => s.resetStream); + const modelLoading = useAppStore((s) => s.modelLoading); const { state: speechState, available: speechAvailable, startRecording, stopRecording } = useSpeech(); @@ -272,7 +273,7 @@ export function InputArea() { rows={1} className="flex-1 bg-transparent outline-none resize-none text-sm leading-relaxed" style={{ color: 'var(--color-text)', maxHeight: '200px' }} - disabled={streamState.isStreaming} + disabled={streamState.isStreaming || modelLoading} /> {streamState.isStreaming ? ( {/* Search */}