5180 fichiers 38.5 Mo 0 téléchargements 565 vues mis à jour il y a 8 heures ui
nitro-v36-with-renderer-v36 / src / components / room / widgets / avatar-info / menu / AvatarInfoWidgetNameView.tsx
AvatarInfoWidgetNameView.tsx 1.9 Ko Télécharger le fichier
import { GetSessionDataManager } from '@octane/renderer';
import { FC, useMemo } from 'react';
import { AvatarInfoName, MessengerFriend } from '../../../../../api';
import { NativeTextTree } from '../../../../../common/native-text/NativeTextTree';
import { ContextMenuView } from '../../context-menu/ContextMenuView';

interface AvatarInfoWidgetNameViewProps {
    nameInfo: AvatarInfoName;
    onClose: () => void;
}

export const AvatarInfoWidgetNameView: FC<AvatarInfoWidgetNameViewProps> = (props) => {
    const { nameInfo = null, onClose = null } = props;

    const getClassNames = useMemo(() => {
        const newClassNames: string[] = ['name-only'];

        if (nameInfo.isFriend) newClassNames.push('is-friend');

        return newClassNames;
    }, [nameInfo]);

    const relationIconClass = useMemo(() => {
        switch (nameInfo.relationshipStatus) {
            case MessengerFriend.RELATIONSHIP_HEART:
                return 'icon-heart';
            case MessengerFriend.RELATIONSHIP_SMILE:
                return 'icon-smile';
            case MessengerFriend.RELATIONSHIP_BOBBA:
                return 'icon-bobba';
            default:
                return null;
        }
    }, [nameInfo]);

    return (
        <NativeTextTree>
            <ContextMenuView
                category={nameInfo.category}
                classNames={getClassNames}
                fades={nameInfo.id !== GetSessionDataManager().userId}
                objectId={nameInfo.roomIndex}
                userType={nameInfo.userType}
                onClose={onClose}
            >
                <div className="flex items-center justify-center gap-1">
                    {relationIconClass && <div className={`octane-friends-spritesheet ${relationIconClass}`} />}
                    <div className="text-shadow">{nameInfo.name}</div>
                </div>
            </ContextMenuView>
        </NativeTextTree>
    );
};
15Sujets
1Dépôts
20Membres
4En 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