set app badge

This commit is contained in:
Gigiaj 2025-06-11 01:41:49 -05:00
parent 350f3ac2f7
commit 815a0ac7f4
2 changed files with 6 additions and 3 deletions

View file

@ -1,5 +1,6 @@
import { Room, RoomEvent, RoomEventHandlerMap } from 'matrix-js-sdk'; import { Room, RoomEvent, RoomEventHandlerMap } from 'matrix-js-sdk';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { getUnreadInfo } from '../utils/room';
const getEventReaders = (room: Room, evtId?: string) => { const getEventReaders = (room: Room, evtId?: string) => {
if (!evtId) return []; if (!evtId) return [];
@ -21,7 +22,7 @@ const getEventReaders = (room: Room, evtId?: string) => {
export const useRoomEventReaders = (room: Room, eventId?: string): string[] => { export const useRoomEventReaders = (room: Room, eventId?: string): string[] => {
const [readers, setReaders] = useState<string[]>(() => getEventReaders(room, eventId)); const [readers, setReaders] = useState<string[]>(() => getEventReaders(room, eventId));
const unreadInfo = getUnreadInfo(room);
useEffect(() => { useEffect(() => {
setReaders(getEventReaders(room, eventId)); setReaders(getEventReaders(room, eventId));
@ -46,11 +47,13 @@ export const useRoomEventReaders = (room: Room, eventId?: string): string[] => {
room.on(RoomEvent.Receipt, handleReceipt); room.on(RoomEvent.Receipt, handleReceipt);
room.on(RoomEvent.LocalEchoUpdated, handleLocalEcho); room.on(RoomEvent.LocalEchoUpdated, handleLocalEcho);
navigator.setAppBadge(unreadInfo.total);
return () => { return () => {
room.removeListener(RoomEvent.Receipt, handleReceipt); room.removeListener(RoomEvent.Receipt, handleReceipt);
room.removeListener(RoomEvent.LocalEchoUpdated, handleLocalEcho); room.removeListener(RoomEvent.LocalEchoUpdated, handleLocalEcho);
}; };
}, [room, eventId]); }, [room, eventId, unreadInfo.total]);
return readers; return readers;
}; };

View file

@ -212,7 +212,7 @@ function MessageNotifications() {
) { ) {
return; return;
} }
navigator.setAppBadge(unreadInfo.total);
if (showNotifications && notificationPermission('granted')) { if (showNotifications && notificationPermission('granted')) {
const avatarMxc = const avatarMxc =
room.getAvatarFallbackMember()?.getMxcAvatarUrl() ?? room.getMxcAvatarUrl(); room.getAvatarFallbackMember()?.getMxcAvatarUrl() ?? room.getMxcAvatarUrl();