mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-14 10:48:35 +02:00
Discussions : la liste montre la nouvelle dès le premier message
Repris d'AJEAN 0.17.6. La discussion est enregistrée au début du tour (StartTurn persiste), mais la liste ne se rafraîchissait qu'à la fin de la réponse. Elle se recharge maintenant à l'arrivée du message, groupée quand plusieurs événements se suivent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2bbf0ba76d
commit
5e36b1cf82
2 files changed
+24
No files matched your search
@@ -7412,6 +7412,15 @@ function feedBlock(el, full){ if(REPLAYING) scheduleRender(el, full); else smoot
|
||||
// bulle d'outil) doit voir le texte complet.
|
||||
function settleBlocks(){ smoothSnap(); flushRender(); }
|
||||
|
||||
// Rafraîchissement groupé de la liste des discussions (plusieurs événements
|
||||
// rapprochés = un seul appel).
|
||||
let histRefreshTimer=null;
|
||||
function histRefreshSoon(){
|
||||
if(typeof loadConversations!=='function') return;
|
||||
clearTimeout(histRefreshTimer);
|
||||
histRefreshTimer=setTimeout(()=>{ histRefreshTimer=null; loadConversations(); }, 400);
|
||||
}
|
||||
|
||||
// Traite UN événement du flux — même sémantique que l'ancien switch inline, mais
|
||||
// piloté par le serveur et rejouable à l'identique.
|
||||
function handleDelta(d){
|
||||
@@ -7467,6 +7476,9 @@ function handleDelta(d){
|
||||
// bulle de réponse du tour.
|
||||
T.model = d.model || '';
|
||||
if(!REPLAYING) queueTake(d.user); // message en file désormais pris en compte
|
||||
// Le serveur a déjà enregistré la discussion (StartTurn persiste) : la liste
|
||||
// la montre dès le premier message, sans attendre la fin de la réponse.
|
||||
if(!REPLAYING) histRefreshSoon();
|
||||
let el=PENDING;
|
||||
if(!confirmPending(d.user)) el=addMsg('user', d.user);
|
||||
// Pièces jointes du tour : rendues DANS la bulle. La bulle en attente en
|
||||
|
||||
@@ -437,6 +437,15 @@ function feedBlock(el, full){ if(REPLAYING) scheduleRender(el, full); else smoot
|
||||
// bulle d'outil) doit voir le texte complet.
|
||||
function settleBlocks(){ smoothSnap(); flushRender(); }
|
||||
|
||||
// Rafraîchissement groupé de la liste des discussions (plusieurs événements
|
||||
// rapprochés = un seul appel).
|
||||
let histRefreshTimer=null;
|
||||
function histRefreshSoon(){
|
||||
if(typeof loadConversations!=='function') return;
|
||||
clearTimeout(histRefreshTimer);
|
||||
histRefreshTimer=setTimeout(()=>{ histRefreshTimer=null; loadConversations(); }, 400);
|
||||
}
|
||||
|
||||
// Traite UN événement du flux — même sémantique que l'ancien switch inline, mais
|
||||
// piloté par le serveur et rejouable à l'identique.
|
||||
function handleDelta(d){
|
||||
@@ -492,6 +501,9 @@ function handleDelta(d){
|
||||
// bulle de réponse du tour.
|
||||
T.model = d.model || '';
|
||||
if(!REPLAYING) queueTake(d.user); // message en file désormais pris en compte
|
||||
// Le serveur a déjà enregistré la discussion (StartTurn persiste) : la liste
|
||||
// la montre dès le premier message, sans attendre la fin de la réponse.
|
||||
if(!REPLAYING) histRefreshSoon();
|
||||
let el=PENDING;
|
||||
if(!confirmPending(d.user)) el=addMsg('user', d.user);
|
||||
// Pièces jointes du tour : rendues DANS la bulle. La bulle en attente en
|
||||
|
||||
Reference in new issue
Block a user