@@ -77,7 +77,7 @@ export default function openAIAssistantPage() {
7777
7878 const showLoading = ( ) => {
7979 const loadingEl = tag ( "div" , {
80- className : "loading " ,
80+ className : "ai_loading " ,
8181 id : "loading-indicator" ,
8282 } ) ;
8383 const loadingDots = tag ( "div" , {
@@ -91,14 +91,14 @@ export default function openAIAssistantPage() {
9191 loadingDots . appendChild ( dot ) ;
9292 }
9393
94- const text = tag ( "div " , {
94+ const text = tag ( "span " , {
9595 textContent : "AI is thinking..." ,
9696 } ) ;
9797
9898 loadingEl . appendChild ( loadingDots ) ;
9999 loadingEl . appendChild ( text ) ;
100100
101- messageContainerRef . append ( loadingEl ) ;
101+ messageContainerRef . el . appendChild ( loadingEl ) ;
102102 scrollToBottom ( ) ;
103103 } ;
104104
@@ -175,7 +175,7 @@ export default function openAIAssistantPage() {
175175
176176 messageEl . appendChild ( messageHeader ) ;
177177 messageEl . appendChild ( messageContent ) ;
178- messageContainerRef . append ( messageEl ) ;
178+ messageContainerRef . el . appendChild ( messageEl ) ;
179179 scrollToBottom ( ) ;
180180 } ;
181181
@@ -211,15 +211,8 @@ export default function openAIAssistantPage() {
211211 chatInputRef . value = "" ;
212212 chatInputRef . style . height = "auto" ;
213213
214- // Add assistant message placeholder to UI
215- const assistantMsgId = generateMessageId ( ) ;
216- const assistantMessage = {
217- id : assistantMsgId ,
218- role : "assistant" ,
219- content : "" ,
220- timestamp : Date . now ( ) ,
221- } ;
222- addMessage ( assistantMessage ) ;
214+ // Show loading indicator
215+ showLoading ( ) ;
223216
224217 // Prepare inputs for agent
225218 let inputs = { messages : [ ...chatHistory ] } ;
@@ -228,17 +221,31 @@ export default function openAIAssistantPage() {
228221 sendBtnRef . el . style . display = "none" ;
229222 stopBtnRef . el . style . display = "block" ;
230223
231- try {
232- const messageEl = messageContainerRef . el . querySelector (
233- `#message-${ assistantMsgId } .message-content` ,
234- ) ;
235- let streamedContent = "" ;
224+ const assistantMsgId = generateMessageId ( ) ;
236225
226+ try {
237227 const stream = await agent . stream ( inputs , {
238228 streamMode : "messages" ,
239229 signal : currentController . signal ,
240230 } ) ;
241231
232+ // Remove loading indicator
233+ removeLoading ( ) ;
234+
235+ // Add assistant message placeholder
236+ const assistantMessage = {
237+ id : assistantMsgId ,
238+ role : "assistant" ,
239+ content : "" ,
240+ timestamp : Date . now ( ) ,
241+ } ;
242+ addMessage ( assistantMessage ) ;
243+
244+ const messageEl = messageContainerRef . el . querySelector (
245+ `#message-${ assistantMsgId } .message-content` ,
246+ ) ;
247+ let streamedContent = "" ;
248+
242249 for await ( const [ message , _metadata ] of stream ) {
243250 if ( isAIMessageChunk ( message ) && message . tool_call_chunks ?. length ) {
244251 streamedContent += message . tool_call_chunks [ 0 ] . args ;
@@ -262,6 +269,7 @@ export default function openAIAssistantPage() {
262269 timeEl . textContent = formatTime ( Date . now ( ) ) ;
263270 }
264271 } catch ( err ) {
272+ removeLoading ( ) ;
265273 if ( / a b o r t / i. test ( err . message ) ) {
266274 const messageEl = messageContainerRef . el . querySelector (
267275 `#message-${ assistantMsgId } .message-content` ,
0 commit comments