@@ -113,7 +113,11 @@ export class RoomResource extends Resource<Args> {
113
113
await this . loadRoomMemberEvent ( roomId , event ) ;
114
114
break ;
115
115
case 'm.room.message' :
116
- await this . loadRoomMessage ( { roomId, event, index } ) ;
116
+ if ( this . isCardFragmentEvent ( event ) ) {
117
+ await this . loadCardFragment ( event ) ;
118
+ } else {
119
+ await this . loadRoomMessage ( { roomId, event, index } ) ;
120
+ }
117
121
break ;
118
122
case APP_BOXEL_COMMAND_RESULT_EVENT_TYPE :
119
123
this . updateMessageCommandResult ( { roomId, event, index } ) ;
@@ -320,24 +324,24 @@ export class RoomResource extends Resource<Args> {
320
324
} ) ;
321
325
}
322
326
323
- private loadRoomMessage ( {
324
- roomId,
325
- event,
326
- index,
327
- } : {
328
- roomId : string ;
329
- event : MessageEvent | CommandEvent | CardMessageEvent ;
330
- index : number ;
331
- } ) {
332
- if ( event . content . msgtype === APP_BOXEL_CARDFRAGMENT_MSGTYPE ) {
333
- this . _fragmentCache . set ( event . event_id , event . content ) ;
334
- return ;
335
- }
327
+ private isCardFragmentEvent (
328
+ event : MessageEvent | CommandEvent | CardMessageEvent ,
329
+ ) : event is CardMessageEvent & {
330
+ content : { msgtype : typeof APP_BOXEL_CARDFRAGMENT_MSGTYPE } ;
331
+ } {
332
+ return event . content . msgtype === APP_BOXEL_CARDFRAGMENT_MSGTYPE ;
333
+ }
336
334
337
- this . upsertMessage ( { roomId, event, index } ) ;
335
+ private async loadCardFragment (
336
+ event : CardMessageEvent & {
337
+ content : { msgtype : typeof APP_BOXEL_CARDFRAGMENT_MSGTYPE } ;
338
+ } ,
339
+ ) {
340
+ let eventId = event . event_id ;
341
+ this . _fragmentCache . set ( eventId , event . content ) ;
338
342
}
339
343
340
- private upsertMessage ( {
344
+ private loadRoomMessage ( {
341
345
roomId,
342
346
event,
343
347
index,
0 commit comments