@@ -133,10 +133,13 @@ export class LabChatModel extends ChatModel implements DocumentRegistry.IModel {
133
133
// nothing to do
134
134
}
135
135
136
- messagesInserted ( index : number , messages : IChatMessage [ ] ) : void {
136
+ async messagesInserted (
137
+ index : number ,
138
+ messages : IChatMessage [ ]
139
+ ) : Promise < void > {
137
140
// Ensure the chat has an ID before inserting the messages, to properly catch the
138
141
// unread messages (the last read message is saved using the chat ID).
139
- this . _ready . promise . then ( ( ) => {
142
+ return this . _ready . promise . then ( ( ) => {
140
143
super . messagesInserted ( index , messages ) ;
141
144
} ) ;
142
145
}
@@ -269,11 +272,11 @@ export class LabChatModel extends ChatModel implements DocumentRegistry.IModel {
269
272
this . _timeoutWriting = null ;
270
273
}
271
274
272
- private _onchange = ( _ : YChat , changes : IChatChanges ) => {
275
+ private _onchange = async ( _ : YChat , changes : IChatChanges ) => {
273
276
if ( changes . messageChanges ) {
274
277
const msgDelta = changes . messageChanges ;
275
278
let index = 0 ;
276
- msgDelta . forEach ( delta => {
279
+ for ( const delta of msgDelta ) {
277
280
if ( delta . retain ) {
278
281
index += delta . retain ;
279
282
} else if ( delta . insert ) {
@@ -308,12 +311,12 @@ export class LabChatModel extends ChatModel implements DocumentRegistry.IModel {
308
311
309
312
return msg ;
310
313
} ) ;
311
- this . messagesInserted ( index , messages ) ;
314
+ await this . messagesInserted ( index , messages ) ;
312
315
index += messages . length ;
313
316
} else if ( delta . delete ) {
314
317
this . messagesDeleted ( index , delta . delete ) ;
315
318
}
316
- } ) ;
319
+ }
317
320
}
318
321
319
322
if ( changes . metadataChanges ) {
0 commit comments