5180 fichiers 38.5 Mo 0 téléchargements 306 vues mis à jour il y a 6 heures ui
nitro-v36-with-renderer-v36 / src / hooks / rooms / promotes / useRoomPromote.ts
useRoomPromote.ts 1.1 Ko Télécharger le fichier
import { RoomEventCancelEvent, RoomEventEvent, RoomEventMessageParser } from '@octane/renderer';
import { useState } from 'react';
import { registerSharedHook, useSharedHook } from '@/state/useSharedHook';
import { useMessageEvent } from '../../events';

const useRoomPromoteState = () => {
    const [promoteInformation, setPromoteInformation] = useState<RoomEventMessageParser>(null);
    const [isExtended, setIsExtended] = useState<boolean>(false);

    useMessageEvent<RoomEventEvent>(RoomEventEvent, (event) => {
        const parser = event.getParser();

        if (!parser) return;

        setPromoteInformation(parser);
    });

    // AIR (navigator IncomingMessages, RoomEventCancel 3479) forgets the room event when the owner ends it.
    useMessageEvent<RoomEventCancelEvent>(RoomEventCancelEvent, () => {
        setPromoteInformation(null);
        setIsExtended(false);
    });

    return { promoteInformation, isExtended, setPromoteInformation, setIsExtended };
};

export const useRoomPromote = () => useSharedHook(useRoomPromoteState);

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