5180 fichiers 38.5 Mo 0 téléchargements 476 vues mis à jour il y a 7 heures ui
nitro-v36-with-renderer-v36 / src / components / room / widgets / mysterybox / MysteryBoxExtensionView.tsx
MysteryBoxExtensionView.tsx 3.1 Ko Télécharger le fichier
import { MysteryBoxKeysUpdateEvent } from '@octane/renderer';
import { FC, useState } from 'react';
import { FaChevronDown, FaChevronUp } from 'react-icons/fa';
import { ColorUtils, LocalizeText } from '../../../../api';
import { Flex, LayoutGridItem, Text } from '../../../../common';
import { useOctaneEvent } from '../../../../hooks';
import { BaseButton } from '../../../../common/BaseButton';
import { NativeTextTree } from '../../../../common/native-text/NativeTextTree';

const colorMap = {
    purple: 9452386,
    blue: 3891856,
    green: 6459451,
    yellow: 10658089,
    lilac: 6897548,
    orange: 10841125,
    turquoise: 2661026,
    red: 10104881
};

export const MysteryBoxExtensionView: FC<{}> = (props) => {
    const [isOpen, setIsOpen] = useState<boolean>(true);
    const [keyColor, setKeyColor] = useState<string>('');
    const [boxColor, setBoxColor] = useState<string>('');

    useOctaneEvent<MysteryBoxKeysUpdateEvent>(MysteryBoxKeysUpdateEvent.MYSTERY_BOX_KEYS_UPDATE, (event) => {
        setKeyColor(event.keyColor);
        setBoxColor(event.boxColor);
    });

    const getRgbColor = (color: string) => {
        const colorInt = colorMap[color];

        return ColorUtils.int2rgb(colorInt);
    };

    if (keyColor === '' && boxColor === '') return null;

    return (
        <NativeTextTree>
            <div className="px-[5px] py-[6px] [box-shadow:inset_0_5px_#22222799,inset_0_-4px_#12121599]  text-sm bg-[#1c1c20f2] rounded mysterybox-extension">
                <div className="flex flex-col">
                    <Flex component={BaseButton} type="button" pointer alignItems="center" justifyContent="between" onClick={(event) => setIsOpen((value) => !value)}>
                        <Text variant="white">{LocalizeText('mysterybox.tracker.title')}</Text>
                        {isOpen && <FaChevronUp className="fa-icon" />}
                        {!isOpen && <FaChevronDown className="fa-icon" />}
                    </Flex>
                    {isOpen && (
                        <>
                            <Text variant="white">{LocalizeText('mysterybox.tracker.description')}</Text>
                            <div className="flex items-center gap-2 justify-center">
                                <LayoutGridItem className="mysterybox-container">
                                    <div className="box-image shrink-0" style={{ backgroundColor: getRgbColor(boxColor) }}>
                                        <div className="chain-overlay-image" />
                                    </div>
                                </LayoutGridItem>
                                <LayoutGridItem className="mysterybox-container">
                                    <div className="key-image shrink-0" style={{ backgroundColor: getRgbColor(keyColor) }}>
                                        <div className="key-overlay-image" />
                                    </div>
                                </LayoutGridItem>
                            </div>
                        </>
                    )}
                </div>
            </div>
        </NativeTextTree>
    );
};
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