@@ -2,42 +2,53 @@ const chat = document.getElementById("chat");
22const form = document . getElementById ( "input-form" ) ;
33const input = document . getElementById ( "user-input" ) ;
44
5- let threadId = null ; // Slaat de thread_id lokaal op
6-
75form . addEventListener ( "submit" , async ( e ) => {
86 e . preventDefault ( ) ;
97 const message = input . value . trim ( ) ;
108 if ( ! message ) return ;
119
12- appendMessage ( "Gebruiker" , message ) ;
10+ appendMessage ( "Gebruiker" , message , "user-message" ) ;
1311 input . value = "" ;
1412
13+ const agentMsg = appendMessage ( "Agent" , "" , "agent-message" ) ;
14+
1515 try {
1616 const response = await fetch ( "https://chatproxy.azurewebsites.net/api/chatproxy" , {
1717 method : "POST" ,
1818 headers : { "Content-Type" : "application/json" } ,
19- body : JSON . stringify ( { message, thread_id : threadId } )
19+ body : JSON . stringify ( { message } )
2020 } ) ;
2121
22- if ( ! response . ok ) {
22+ if ( ! response . ok || ! response . body ) {
2323 const errorText = await response . text ( ) ;
2424 console . error ( "Responsetekst:" , errorText ) ;
25- throw new Error ( `Serverfout: ${ response . status } ` ) ;
25+ agentMsg . textContent = "Er ging iets mis." ;
26+ return ;
2627 }
2728
28- const data = await response . json ( ) ;
29- appendMessage ( "Agent" , data . reply ) ;
30- threadId = data . thread_id ; // Bewaar thread_id voor vervolgvragen
29+ const reader = response . body . getReader ( ) ;
30+ const decoder = new TextDecoder ( "utf-8" ) ;
31+ let result = "" ;
32+
33+ while ( true ) {
34+ const { done, value } = await reader . read ( ) ;
35+ if ( done ) break ;
36+ const chunk = decoder . decode ( value , { stream : true } ) ;
37+ result += chunk ;
38+ agentMsg . textContent = result ;
39+ chat . scrollTop = chat . scrollHeight ;
40+ }
3141 } catch ( err ) {
32- appendMessage ( "Agent" , "Er ging iets mis." ) ;
3342 console . error ( "Fout in fetch:" , err ) ;
43+ agentMsg . textContent = "Er ging iets mis." ;
3444 }
3545} ) ;
3646
37- function appendMessage ( sender , text ) {
47+ function appendMessage ( sender , text , cssClass ) {
3848 const msg = document . createElement ( "div" ) ;
39- msg . classList . add ( "message" , sender === "Gebruiker" ? "user-message" : "agent-message" ) ;
40- msg . innerHTML = `<div><strong>${ sender } :</strong> ${ text } </div>` ;
49+ msg . classList . add ( "message" , cssClass ) ;
50+ msg . innerHTML = `<div><strong>${ sender } :</strong></div><div> ${ text } </div>` ;
4151 chat . appendChild ( msg ) ;
4252 chat . scrollTop = chat . scrollHeight ;
53+ return msg . querySelector ( "div:last-child" ) ;
4354}
0 commit comments