5180 fichiers 38.5 Mo 0 téléchargements 206 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / api / navigator / RoomThumbnailCache.ts
RoomThumbnailCache.ts 940 o Télécharger le fichier
type RoomThumbnailListener = (revision: number) => void;

const revisions = new Map<number, number>();
const listeners = new Map<number, Set<RoomThumbnailListener>>();

export const GetRoomThumbnailRevision = (roomId: number): number => revisions.get(roomId) ?? 0;

export const RefreshRoomThumbnail = (roomId: number, revision: number = Date.now()): void => {
    if (roomId <= 0) return;

    revisions.set(roomId, revision);

    for (const listener of listeners.get(roomId) ?? []) listener(revision);
};

export const SubscribeRoomThumbnail = (roomId: number, listener: RoomThumbnailListener): (() => void) => {
    let roomListeners = listeners.get(roomId);

    if (!roomListeners) {
        roomListeners = new Set();
        listeners.set(roomId, roomListeners);
    }

    roomListeners.add(listener);

    return () => {
        roomListeners.delete(listener);
        if (!roomListeners.size) listeners.delete(roomId);
    };
};
15Sujets
1Dépôts
20Membres
2En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser