5180 fichiers 38.5 Mo 0 téléchargements 221 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / hooks / wired-tools / useWiredPlayTest.ts
useWiredPlayTest.ts 1.1 Ko Télécharger le fichier
import { AddLinkEventTracker, ILinkEventTracker, RemoveLinkEventTracker } from '@octane/renderer';
import { useEffect, useLayoutEffect, useRef } from 'react';
import { applyWiredPlayTestMode, WIRED_PLAYTEST_TOGGLE_LINK } from '../../api';

/**
 * The wired menu playtest preference on the room: every change goes to the room session manager
 * (which also puts it on each room entered later), and the toggle link flips it as AIR's
 * `:playtest` chat command does.
 */
export const useWiredPlayTest = (playTestMode: boolean, togglePlayTestMode: () => void) => {
    const toggleRef = useRef(togglePlayTestMode);

    useLayoutEffect(() => {
        toggleRef.current = togglePlayTestMode;
    });

    useEffect(() => {
        applyWiredPlayTestMode(playTestMode);
    }, [playTestMode]);

    useEffect(() => {
        const tracker: ILinkEventTracker = {
            eventUrlPrefix: WIRED_PLAYTEST_TOGGLE_LINK,
            linkReceived: () => toggleRef.current?.()
        };

        AddLinkEventTracker(tracker);

        return () => RemoveLinkEventTracker(tracker);
    }, []);
};
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