diff options
| author | YurenHao0426 <blackhao0426@gmail.com> | 2026-02-13 18:43:35 +0000 |
|---|---|---|
| committer | YurenHao0426 <blackhao0426@gmail.com> | 2026-02-13 18:43:35 +0000 |
| commit | fb72ce4fa11ca1f3252bdf24c489de2d16097752 (patch) | |
| tree | dd5db9d437035018a3c28b74617970f56f0ede52 | |
| parent | 2137e76e9dfcc13a2fcb1753844762cc4b99582a (diff) | |
Remove provider badge from file list and add upload indicator to right sidebar
- Remove per-provider label from left sidebar file list since files are
now uploaded to all providers simultaneously
- Add uploading spinner to right sidebar "Upload & Attach" button
- Always upload with provider 'local' from right sidebar settings tab
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
| -rw-r--r-- | frontend/src/components/LeftSidebar.tsx | 5 | ||||
| -rw-r--r-- | frontend/src/components/Sidebar.tsx | 24 |
2 files changed, 9 insertions, 20 deletions
diff --git a/frontend/src/components/LeftSidebar.tsx b/frontend/src/components/LeftSidebar.tsx index 5c464bb..54c2527 100644 --- a/frontend/src/components/LeftSidebar.tsx +++ b/frontend/src/components/LeftSidebar.tsx @@ -1041,11 +1041,6 @@ const LeftSidebar: React.FC<LeftSidebarProps> = ({ isOpen, onToggle }) => { <span className={`text-[11px] ${isDark ? 'text-gray-500' : 'text-gray-500'}`}> {formatSize(f.size)} • {new Date(f.created_at * 1000).toLocaleString()} </span> - {f.provider && ( - <span className={`text-[11px] inline-flex items-center gap-1 mt-0.5 px-2 py-0.5 rounded ${isDark ? 'bg-gray-800 text-gray-300 border border-gray-700' : 'bg-gray-100 text-gray-700 border border-gray-200'}`}> - Provider: {f.provider === 'openai' ? 'OpenAI' : f.provider === 'google' ? 'Gemini' : f.provider} - </span> - )} </div> <div className="flex items-center gap-2"> <button diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx index 65d5cd2..f3a0679 100644 --- a/frontend/src/components/Sidebar.tsx +++ b/frontend/src/components/Sidebar.tsx @@ -38,6 +38,7 @@ const Sidebar: React.FC<SidebarProps> = ({ isOpen, onToggle, onInteract }) => { const [showAttachModal, setShowAttachModal] = useState(false); const [attachSearch, setAttachSearch] = useState(''); const settingsUploadRef = useRef<HTMLInputElement>(null); + const [settingsUploading, setSettingsUploading] = useState(false); // Response Modal & Edit states const [isModalOpen, setIsModalOpen] = useState(false); @@ -164,22 +165,15 @@ const Sidebar: React.FC<SidebarProps> = ({ isOpen, onToggle, onInteract }) => { const handleUploadAndAttach = async (e: React.ChangeEvent<HTMLInputElement>) => { if (!e.target.files || e.target.files.length === 0 || !selectedNode) return; const file = e.target.files[0]; + setSettingsUploading(true); try { - // Determine provider based on node model - const model = selectedNode.data.model; - let provider: 'local' | 'openai' | 'google' = 'local'; - if (model.startsWith('gpt') || model.startsWith('o1') || model.startsWith('o3')) { - provider = 'openai'; - } else if (model.startsWith('gemini')) { - provider = 'google'; - } - - const meta = await uploadFile(file, { provider }); + const meta = await uploadFile(file, { provider: 'local' }); handleAttach(meta.id); } catch (err) { alert(`Upload failed: ${(err as Error).message}`); } finally { e.target.value = ''; + setSettingsUploading(false); } }; @@ -1937,16 +1931,16 @@ const Sidebar: React.FC<SidebarProps> = ({ isOpen, onToggle, onInteract }) => { <div className="flex gap-2 mb-3"> <button onClick={() => settingsUploadRef.current?.click()} - disabled={isGemini} + disabled={isGemini || settingsUploading} className={`flex-1 flex items-center justify-center gap-1.5 py-1.5 px-3 rounded text-xs font-medium transition-colors ${ - isGemini + isGemini || settingsUploading ? 'opacity-50 cursor-not-allowed bg-gray-400 text-gray-200' : isDark ? 'bg-blue-600 hover:bg-blue-700 text-white' : 'bg-blue-600 hover:bg-blue-700 text-white' }`} - title={isGemini ? 'Not supported for Gemini models' : 'Upload & Attach'} + title={isGemini ? 'Not supported for Gemini models' : settingsUploading ? 'Uploading...' : 'Upload & Attach'} > - <Upload size={14} /> - Upload & Attach + {settingsUploading ? <Loader2 size={14} className="animate-spin" /> : <Upload size={14} />} + {settingsUploading ? 'Uploading...' : 'Upload & Attach'} </button> <input ref={settingsUploadRef} |
