5180 fichiers 38.5 Mo 0 téléchargements 429 vues mis à jour il y a 7 heures ui
nitro-v36-with-renderer-v36 / src / hooks / rooms / widgets / furniture / useFurnitureSpamWallPostItWidget.ts
useFurnitureSpamWallPostItWidget.ts 1.9 Ko Télécharger le fichier
import { AddSpamWallPostItMessageComposer, GetRoomEngine, RequestSpamWallPostItMessageEvent, RoomObjectCategory } from '@octane/renderer';
import { useState } from 'react';
import { SendMessageComposer } from '../../../../api';
import { useMessageEvent } from '../../../events';
import { useInventoryFurni } from '../../../inventory';

const useFurnitureSpamWallPostItWidgetState = () => {
    const [objectId, setObjectId] = useState(-1);
    const [category, setCategory] = useState(-1);
    const [itemType, setItemType] = useState('');
    const [location, setLocation] = useState('');
    const [color, setColor] = useState('0');
    const [text, setText] = useState('');
    const [canModify, setCanModify] = useState(false);
    const { getWallItemById = null } = useInventoryFurni();

    const onClose = () => {
        SendMessageComposer(new AddSpamWallPostItMessageComposer(objectId, location, color, text));

        setObjectId(-1);
        setCategory(-1);
        setItemType('');
        setLocation('');
        setColor('0');
        setText('');
        setCanModify(false);
    };

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

        setObjectId(parser.itemId);
        setCategory(RoomObjectCategory.WALL);

        const inventoryItem = getWallItemById(parser.itemId);

        let itemType = 'post_it';

        if (inventoryItem) {
            const wallItemType = GetRoomEngine().getFurnitureWallName(inventoryItem.type);

            if (wallItemType.match('post_it_')) itemType = wallItemType;
        }

        setItemType(itemType);
        setLocation(parser.location);
        setColor('FFFF33');
        setText('');
        setCanModify(true);
    });

    return { objectId, color, setColor, text, setText, canModify, onClose };
};

export const useFurnitureSpamWallPostItWidget = useFurnitureSpamWallPostItWidgetState;
15Sujets
1Dépôts
20Membres
3En 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