5180 fichiers 38.5 Mo 0 téléchargements 265 vues mis à jour il y a 5 heures ui
nitro-v36-with-renderer-v36 / src / common / layout / LayoutCurrencyIcon.tsx
LayoutCurrencyIcon.tsx 1.2 Ko Télécharger le fichier
import { CSSProperties, FC, useMemo } from 'react';
import { GetConfigurationValue } from '../../api';
import { Base, BaseProps } from '../Base';

export interface CurrencyIconProps extends BaseProps<HTMLDivElement> {
    type: number | string;
}

export const LayoutCurrencyIcon: FC<CurrencyIconProps> = (props) => {
    const { type = '', classNames = [], style = {}, ...rest } = props;

    const getClassNames = useMemo(() => {
        const newClassNames: string[] = ['octane-currency-icon', 'bg-center bg-no-repeat w-[15px] h-[15px]'];

        if (classNames.length) newClassNames.push(...classNames);

        return newClassNames;
    }, [classNames]);

    const urlString = useMemo(() => {
        let url = GetConfigurationValue<string>('currency.asset.icon.url', '');

        url = url.replace('%type%', type.toString());

        return `url(${url})`;
    }, [type]);

    const getStyle = useMemo(() => {
        let newStyle: CSSProperties = {};

        newStyle.backgroundImage = urlString;

        if (Object.keys(style).length) newStyle = { ...newStyle, ...style };

        return newStyle;
    }, [style, urlString]);

    return <Base classNames={getClassNames} style={getStyle} {...rest} />;
};
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