5180 fichiers 38.5 Mo 0 téléchargements 482 vues mis à jour il y a 7 heures ui
nitro-v36-with-renderer-v36 / src / components / room / widgets / furniture / FurnitureHighScoreView.tsx
FurnitureHighScoreView.tsx 4.6 Ko Télécharger le fichier
import { RoomObjectCategory } from '@octane/renderer';
import { FC } from 'react';
import { LocalizeText } from '../../../../api';
import { Column, DraggableWindow, Text } from '../../../../common';
import { useFurnitureHighScoreWidget } from '../../../../hooks';
import { ContextMenuHeaderView } from '../context-menu/ContextMenuHeaderView';
import { ContextMenuListView } from '../context-menu/ContextMenuListView';
import '../../../../css/room/FurniWindowsBAir.css';
import { NativeTextTree } from '../../../../common/native-text/NativeTextTree';

export const FurnitureHighScoreView: FC<{}> = (props) => {
    const { stuffDatas = null, getScoreType = null, getClearType = null, isConfigured = null, isTimeScore = null, formatScore = null } = useFurnitureHighScoreWidget();

    if (!stuffDatas || !stuffDatas.size) return null;

    return (
        <NativeTextTree>
            <>
                {Array.from(stuffDatas.entries()).map(([objectId, stuffData], index) => {
                    const configured = isConfigured(stuffData.scoreType, stuffData.clearType);
                    const timeScore = configured && isTimeScore(stuffData.scoreType);

                    return (
                        <DraggableWindow key={index} uniqueKey={`high-score-${objectId}`}>
                            <Column className="octane-widget-high-score octane-furni-highscore octane-context-menu bg-[#1e1f23] p-2 w-[280px] max-w-[280px] h-[320px]" gap={0}>
                                <ContextMenuHeaderView classNames={['drag-handler cursor-move', 'octane-furni-highscore__caption']}>
                                    {configured
                                        ? LocalizeText(
                                            'high.score.display.caption',
                                            ['scoretype', 'cleartype'],
                                            [
                                                LocalizeText(`high.score.display.scoretype.${getScoreType(stuffData.scoreType)}`),
                                                LocalizeText(`high.score.display.cleartype.${getClearType(stuffData.clearType)}`)
                                            ]
                                        )
                                        : LocalizeText('high.score.display.users.header')}
                                </ContextMenuHeaderView>
                                <ContextMenuListView className="!h-auto" gap={1} overflow="hidden">
                                    <div className="flex flex-col gap-1">
                                        <div className="flex items-center justify-between">
                                            <Text center className="col-span-8 octane-furni-highscore__head" variant="white">
                                                {LocalizeText('high.score.display.users.header')}
                                            </Text>
                                            <Text center className="col-span-4 octane-furni-highscore__head" variant="white">
                                                {LocalizeText(timeScore ? 'high.score.display.time.header' : 'high.score.display.score.header')}
                                            </Text>
                                        </div>
                                        <hr className="m-0" />
                                    </div>
                                    <Column className="overflow-y-scroll" gap={1} overflow="auto">
                                        {stuffData.entries.map((entry, index) => {
                                            return (
                                                <div key={index} className="flex items-center justify-between">
                                                    <Text center className="col-span-8 octane-furni-highscore__entry" variant="white">
                                                        {entry.users.join(', ')}
                                                    </Text>
                                                    <Text center className="col-span-4 octane-furni-highscore__entry" variant="white">
                                                        {formatScore(entry.score, stuffData.scoreType)}
                                                    </Text>
                                                </div>
                                            );
                                        })}
                                    </Column>
                                </ContextMenuListView>
                            </Column>
                        </DraggableWindow>
                    );
                })}
            </>
        </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