});
this.matrixClient.on('Room.receipt', (mEvent, room) => {
- if (mEvent.getType() === 'm.receipt') {
- if (room.isSpaceRoom()) return;
- const content = mEvent.getContent();
- const readedEventId = Object.keys(content)[0];
- const readerUserId = Object.keys(content[readedEventId]['m.read'])[0];
- if (readerUserId !== this.matrixClient.getUserId()) return;
-
- this.deleteNoti(room.roomId);
-
- this._deletePopupRoomNotis(room.roomId);
- }
+ if (mEvent.getType() !== 'm.receipt' || room.isSpaceRoom()) return;
+ const content = mEvent.getContent();
+ const userId = this.matrixClient.getUserId();
+
+ Object.keys(content).forEach((eventId) => {
+ Object.entries(content[eventId]).forEach(([receiptType, receipt]) => {
+ if (!cons.supportReceiptTypes.includes(receiptType)) return;
+ if (Object.keys(receipt || {}).includes(userId)) {
+ this.deleteNoti(room.roomId);
+ this._deletePopupRoomNotis(room.roomId);
+ }
+ });
+ });
});
this.matrixClient.on('Room.myMembership', (room, membership) => {