5180 fichiers 38.5 Mo 0 téléchargements 236 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / api / avatar / avatarEditorBrokenHeads.ts
avatarEditorBrokenHeads.ts 907 o Télécharger le fichier
import { useSyncExternalStore } from 'react';

const brokenHeadIds = new Set<number>();
const listeners = new Set<() => void>();
let version = 0;

const emit = (): void => {
    version++;
    listeners.forEach((listener) => listener());
};

export const markBrokenHead = (id: number): void => {
    if (id == null || brokenHeadIds.has(id)) return;

    brokenHeadIds.add(id);
    emit();
};

export const isBrokenHead = (id: number): boolean => brokenHeadIds.has(id);

export const clearBrokenHeads = (): void => {
    if (!brokenHeadIds.size) return;

    brokenHeadIds.clear();
    emit();
};

const subscribe = (listener: () => void): (() => void) => {
    listeners.add(listener);

    return () => {
        listeners.delete(listener);
    };
};

const getSnapshot = (): number => version;

export const useBrokenHeadsVersion = (): number => useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
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