5180 fichiers 38.5 Mo 0 téléchargements 318 vues mis à jour il y a 6 heures ui
nitro-v36-with-renderer-v36 / src / components / achievements / category-list / AchievementsCategoryListView.tsx
AchievementsCategoryListView.tsx 1.9 Ko Télécharger le fichier
import { FC } from 'react';
import { IAchievementCategory } from '../../../api';
import { NativeTextTree } from '../../../common/native-text/NativeTextTree';
import { AchievementsCategoryListItemView } from './AchievementsCategoryListItemView';

interface AchievementsCategoryListViewProps {
    categories: IAchievementCategory[];
    selectedCategoryCode: string;
    setSelectedCategoryCode: (code: string) => void;
}

const airCategoryOrder = ['identity', 'explore', 'social', 'pets', 'games', 'room_builder', 'crackables', 'crafting', 'collectibles'];

export const AchievementsCategoryListView: FC<AchievementsCategoryListViewProps> = (props) => {
    const { categories = null, selectedCategoryCode = null, setSelectedCategoryCode = null } = props;
    const categoryPosition = (code: string) => {
        if (code === 'archive') return airCategoryOrder.length + 1;

        const position = airCategoryOrder.indexOf(code);

        return position < 0 ? airCategoryOrder.length : position;
    };
    const visibleCategories = categories
        .filter((category) => !['new', 'wired_games'].includes(category.code))
        .sort((left, right) => categoryPosition(left.code) - categoryPosition(right.code));
    const itemCount = Math.max(9, visibleCategories.length);

    return (
        <NativeTextTree>
            <div className="air-achievements-categories">
                {Array.from({ length: itemCount }, (_, index) => {
                    const category = visibleCategories[index] ?? null;

                    return (
                        <AchievementsCategoryListItemView
                            key={category?.code ?? `empty-${index}`}
                            category={category}
                            selectedCategoryCode={selectedCategoryCode}
                            setSelectedCategoryCode={setSelectedCategoryCode}
                        />
                    );
                })}
            </div>
        </NativeTextTree>
    );
};
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