dvc890 commited on
Commit
62849dd
·
verified ·
1 Parent(s): 703b6f3

Update components/ai/WorkAssistantPanel.tsx

Browse files
components/ai/WorkAssistantPanel.tsx CHANGED
@@ -241,7 +241,8 @@ export const WorkAssistantPanel: React.FC<WorkAssistantPanelProps> = ({ currentU
241
  text: '',
242
  thought: '',
243
  timestamp: Date.now(),
244
- images: base64Images
 
245
  };
246
 
247
  setMessages(prev => [...prev, newUserMsg, newAiMsg]);
@@ -320,17 +321,22 @@ export const WorkAssistantPanel: React.FC<WorkAssistantPanelProps> = ({ currentU
320
  setIsThinkingExpanded(prev => ({ ...prev, [aiMsgId]: false }));
321
  }
322
  aiTextAccumulated += data.content;
323
- setMessages(prev => prev.map(m => m.id === aiMsgId ? { ...m, text: aiTextAccumulated } : m));
 
 
 
324
  } else if (data.type === 'error') {
325
- setMessages(prev => prev.map(m => m.id === aiMsgId ? { ...m, text: `⚠️ 错误: ${data.message}` } : m));
326
  }
327
  } catch (e) {}
328
  }
329
  }
330
  }
 
 
331
 
332
  } catch (error: any) {
333
- setMessages(prev => prev.map(m => m.id === aiMsgId ? { ...m, text: `抱歉,处理失败: ${error.message}` } : m));
334
  } finally {
335
  setIsProcessing(false);
336
  }
@@ -504,6 +510,14 @@ export const WorkAssistantPanel: React.FC<WorkAssistantPanelProps> = ({ currentU
504
  </div>
505
  )}
506
 
 
 
 
 
 
 
 
 
507
  <div className={`p-5 rounded-2xl shadow-sm text-sm overflow-hidden relative group w-full ${msg.role === 'user' ? 'bg-blue-600 text-white rounded-tr-none' : 'bg-white text-gray-800 border border-gray-100 rounded-tl-none'}`}>
508
  {/* User Image Preview Grid */}
509
  {msg.role === 'user' && sourceImages.length > 0 && (
 
241
  text: '',
242
  thought: '',
243
  timestamp: Date.now(),
244
+ images: base64Images,
245
+ isSearching: enableSearch
246
  };
247
 
248
  setMessages(prev => [...prev, newUserMsg, newAiMsg]);
 
321
  setIsThinkingExpanded(prev => ({ ...prev, [aiMsgId]: false }));
322
  }
323
  aiTextAccumulated += data.content;
324
+ setMessages(prev => prev.map(m => m.id === aiMsgId ? { ...m, text: aiTextAccumulated, isSearching: false } : m));
325
+ } else if (data.type === 'search') {
326
+ // Enable search visual
327
+ setMessages(prev => prev.map(m => m.id === aiMsgId ? { ...m, isSearching: true } : m));
328
  } else if (data.type === 'error') {
329
+ setMessages(prev => prev.map(m => m.id === aiMsgId ? { ...m, text: `⚠️ 错误: ${data.message}`, isSearching: false } : m));
330
  }
331
  } catch (e) {}
332
  }
333
  }
334
  }
335
+ // Cleanup
336
+ setMessages(prev => prev.map(m => m.id === aiMsgId ? { ...m, isSearching: false } : m));
337
 
338
  } catch (error: any) {
339
+ setMessages(prev => prev.map(m => m.id === aiMsgId ? { ...m, text: `抱歉,处理失败: ${error.message}`, isSearching: false } : m));
340
  } finally {
341
  setIsProcessing(false);
342
  }
 
510
  </div>
511
  )}
512
 
513
+ {/* Search Status Bubble */}
514
+ {msg.role === 'model' && msg.isSearching && (
515
+ <div className="flex items-center gap-2 bg-blue-50 text-blue-600 px-3 py-2 rounded-xl mb-2 text-xs border border-blue-100 animate-pulse w-fit">
516
+ <Globe size={14} className="animate-spin"/>
517
+ <span>正在联网搜索相关信息...</span>
518
+ </div>
519
+ )}
520
+
521
  <div className={`p-5 rounded-2xl shadow-sm text-sm overflow-hidden relative group w-full ${msg.role === 'user' ? 'bg-blue-600 text-white rounded-tr-none' : 'bg-white text-gray-800 border border-gray-100 rounded-tl-none'}`}>
522
  {/* User Image Preview Grid */}
523
  {msg.role === 'user' && sourceImages.length > 0 && (