ne minor, a ebat fix

This commit is contained in:
aurinex
2025-12-14 21:14:59 +05:00
parent de616ee8ac
commit ae4a67dcdf
20 changed files with 1818 additions and 652 deletions

View File

@ -1,10 +1,10 @@
// src/renderer/components/HeadAvatar.tsx
import React, { useEffect, useRef } from 'react';
interface HeadAvatarProps {
skinUrl?: string;
size?: number;
style?: React.CSSProperties;
version?: number; // ✅ добавили
}
const DEFAULT_SKIN =
@ -14,12 +14,17 @@ export const HeadAvatar: React.FC<HeadAvatarProps> = ({
skinUrl,
size = 24,
style,
version = 0, // ✅ дефолт
...canvasProps
}) => {
const canvasRef = useRef<HTMLCanvasElement>(null);
useEffect(() => {
const finalSkinUrl = skinUrl?.trim() ? skinUrl : DEFAULT_SKIN;
const baseUrl = skinUrl?.trim() ? skinUrl : DEFAULT_SKIN;
// ✅ cache-bust: чтобы браузер НЕ отдавал старую картинку
const finalSkinUrl = `${baseUrl}${baseUrl.includes('?') ? '&' : '?'}v=${version}`;
const canvas = canvasRef.current;
if (!canvas) return;
@ -37,17 +42,14 @@ export const HeadAvatar: React.FC<HeadAvatarProps> = ({
ctx.clearRect(0, 0, size, size);
ctx.imageSmoothingEnabled = false;
// База головы: (8, 8, 8, 8)
ctx.drawImage(img, 8, 8, 8, 8, 0, 0, size, size);
// Слой шляпы: (40, 8, 8, 8)
ctx.drawImage(img, 40, 8, 8, 8, 0, 0, size, size);
};
img.onerror = (e) => {
console.error('Не удалось загрузить скин для HeadAvatar:', e);
};
}, [skinUrl, size]);
}, [skinUrl, size, version]); // ✅ version добавили
return (
<canvas
@ -58,7 +60,7 @@ export const HeadAvatar: React.FC<HeadAvatarProps> = ({
height: size,
borderRadius: 4,
imageRendering: 'pixelated',
...style, // 👈 даём переопределять снаружи
...style,
}}
/>
);