StaffChatFrankIconView.tsx 1.3 Ko
Télécharger le fichier
import { CSSProperties, FC } from 'react';
import { getHabbiconsBaseUrl } from '../../api/habbicons/habbiconCatalog';
import { PIXEL_ART_RENDERING } from '../../common';
export const STAFF_CHAT_FRANK_HABBICON_ID = 50;
export const STAFF_CHAT_FRANK_SPRITE = { x: 42, y: 126, cellSize: 42, sheetSize: 294 } as const;
export const getStaffChatFrankIconStyle = (size: number, baseUrl: string): CSSProperties => {
const scale = size / STAFF_CHAT_FRANK_SPRITE.cellSize;
return {
display: 'block',
flex: '0 0 auto',
width: `${size}px`,
height: `${size}px`,
backgroundImage: `url("${baseUrl}habbicons_spritesheet.png")`,
backgroundPosition: `-${STAFF_CHAT_FRANK_SPRITE.x * scale}px -${STAFF_CHAT_FRANK_SPRITE.y * scale}px`,
backgroundRepeat: 'no-repeat',
backgroundSize: `${STAFF_CHAT_FRANK_SPRITE.sheetSize * scale}px ${STAFF_CHAT_FRANK_SPRITE.sheetSize * scale}px`,
imageRendering: PIXEL_ART_RENDERING
};
};
export const StaffChatFrankIconView: FC<{ size: number; className?: string }> = ({ size, className = '' }) => {
const baseUrl = getHabbiconsBaseUrl() || '/habbicons/default/';
return <span aria-hidden="true" className={`staff-chat-frank-icon ${className}`.trim()} style={getStaffChatFrankIconStyle(size, baseUrl)} />;
};
