@@ -237,7 +237,7 @@ export abstract class AbstractOfflineDB implements OfflineDBApi {
237
237
if ( channel && channel . data && channel . initialized && ! channel . disconnected ) {
238
238
const channelQuery = await this . upsertChannelData ( {
239
239
channel : channel . data as unknown as ChannelResponse ,
240
- flush,
240
+ flush : false ,
241
241
} ) ;
242
242
if ( channelQuery ) {
243
243
const createdQueries = await createQueries ( false ) ;
@@ -280,9 +280,9 @@ export abstract class AbstractOfflineDB implements OfflineDBApi {
280
280
281
281
const finalQueries = await this . queriesWithChannelGuard (
282
282
{ event, flush } ,
283
- async ( flushOverride ) => {
283
+ async ( ) => {
284
284
let queries = await this . upsertMessages ( {
285
- flush : flushOverride ,
285
+ flush : false ,
286
286
messages : [ message ] ,
287
287
} ) ;
288
288
if ( cid && client . user && client . user . id !== user ?. id ) {
@@ -293,7 +293,7 @@ export abstract class AbstractOfflineDB implements OfflineDBApi {
293
293
const unreadCount = channel . countUnread ( ) ;
294
294
const upsertReadsQueries = await this . upsertReads ( {
295
295
cid,
296
- flush : flushOverride ,
296
+ flush : false ,
297
297
reads : [
298
298
{
299
299
last_read : ownReads . last_read . toString ( ) as string ,
@@ -317,6 +317,27 @@ export abstract class AbstractOfflineDB implements OfflineDBApi {
317
317
return finalQueries ;
318
318
} ;
319
319
320
+ public handleDeleteMessage = async ( {
321
+ event,
322
+ flush = true ,
323
+ } : {
324
+ event : Event ;
325
+ flush ?: boolean ;
326
+ } ) => {
327
+ const { message, hard_delete = false } = event ;
328
+
329
+ if ( message ) {
330
+ const deleteMethod = hard_delete ? this . hardDeleteMessage : this . softDeleteMessage ;
331
+ return await this . queriesWithChannelGuard (
332
+ { event, flush } ,
333
+ async ( flushOverride ) =>
334
+ await deleteMethod ( { id : message . id , flush : flushOverride } ) ,
335
+ ) ;
336
+ }
337
+
338
+ return [ ] ;
339
+ } ;
340
+
320
341
public queueTask = async ( { task } : { task : PendingTask } ) => {
321
342
let response ;
322
343
try {
@@ -534,10 +555,8 @@ export class OfflineDBSyncManager {
534
555
} ;
535
556
536
557
private handleEventToSyncDB = async ( event : Event , flush ?: boolean ) => {
537
- const client = this . client ;
538
-
539
558
const { type } = event ;
540
- console . log ( 'SYNCING REACTION EVENT1 : ' , event . type ) ;
559
+ console . log ( 'SYNCING EVENT : ' , event . type ) ;
541
560
542
561
if ( type . startsWith ( 'reaction' ) && event . message && event . reaction ) {
543
562
const { message, reaction } = event ;
@@ -575,6 +594,10 @@ export class OfflineDBSyncManager {
575
594
}
576
595
}
577
596
597
+ if ( type === 'message.deleted' ) {
598
+ return await this . offlineDb . handleDeleteMessage ( { event, flush } ) ;
599
+ }
600
+
578
601
return [ ] ;
579
602
} ;
580
603
0 commit comments