5180 fichiers 38.5 Mo 0 téléchargements 223 vues mis à jour il y a 5 heures ui
useRareValues.ts 1.2 Ko Télécharger le fichier
import { IRareValue, RareValuesEvent, RequestRareValuesComposer } from '@octane/renderer';
import { useCallback, useEffect, useState } from 'react';
import { registerSharedHook, useSharedHook } from '@/state/useSharedHook';
import { SendMessageComposer } from '../../api';
import { useMessageEvent } from '../events';

// spriteId -> catalog value, fetched once from the server (RareValuesComposer).
// Shared across all consumers via Zustand so the request fires a single time.
// Read by both the furni infostand and the toolbar "Valore Rari" panel.
const useRareValuesState = () => {
    const [values, setValues] = useState<Map<number, IRareValue>>(() => new Map());
    const [loaded, setLoaded] = useState(false);

    useMessageEvent<RareValuesEvent>(RareValuesEvent, (event) => {
        setValues(event.getParser().values);
        setLoaded(true);
    });

    useEffect(() => {
        SendMessageComposer(new RequestRareValuesComposer());
    }, []);

    const getValue = useCallback((spriteId: number): IRareValue => values.get(spriteId) ?? null, [values]);

    return { values, loaded, getValue };
};

export const useRareValues = () => useSharedHook(useRareValuesState);

registerSharedHook(useRareValuesState);
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