5180 fichiers 38.5 Mo 0 téléchargements 262 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / common / layout / LayoutHabbiconImageView.tsx
LayoutHabbiconImageView.tsx 1.2 Ko Télécharger le fichier
import { HabbiconAssetManager } from '@octane/renderer';
import { FC, useEffect, useState } from 'react';
import { PIXEL_ART_RENDERING } from './PixelArtRendering';

export const LayoutHabbiconImageView: FC<{ id: number; collection?: boolean; outlined?: boolean; size?: number; className?: string; mirror?: boolean }> = ({
    id,
    collection = false,
    outlined = false,
    size = 40,
    className,
    mirror = false
}) => {
    const [source, setSource] = useState('');

    useEffect(() => {
        let disposed = false;
        const manager = HabbiconAssetManager.getInstance();
        setSource('');
        void manager.preload().then(() => {
            if (!disposed) setSource((collection ? manager.getCollectionIconUrl(id, outlined) : manager.getPreviewUrl(id)) || '');
        });
        return () => {
            disposed = true;
        };
    }, [id, collection, outlined]);

    return source ? (
        <img
            alt=""
            className={className}
            src={source}
            width={size}
            height={size}
            style={{ objectFit: collection ? 'none' : 'contain', imageRendering: PIXEL_ART_RENDERING, transform: mirror ? 'scaleX(-1)' : undefined }}
        />
    ) : null;
};
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