// src/renderer/components/CapeCard.tsx import React from 'react'; import { Card, CardMedia, CardContent, Typography, CardActions, Button, Tooltip, Box, Chip, } from '@mui/material'; import CustomTooltip from './CustomTooltip'; // Тип для плаща с необязательными полями для обоих вариантов использования export interface CapeCardProps { cape: { cape_id?: string; id?: string; cape_name?: string; name?: string; cape_description?: string; description?: string; image_url: string; is_active?: boolean; price?: number; purchased_at?: string; }; mode: 'profile' | 'shop'; onAction: (capeId: string) => void; actionDisabled?: boolean; } export default function CapeCard({ cape, mode, onAction, actionDisabled = false, }: CapeCardProps) { // Определяем текст и цвет кнопки в зависимости от режима const getActionButton = () => { if (mode === 'shop') { return { text: 'Купить', color: 'primary', }; } else { // Профиль return cape.is_active ? { text: 'Снять', color: 'error' } : { text: 'Надеть', color: 'success' }; } }; const actionButton = getActionButton(); // В функции компонента добавьте нормализацию данных const capeId = cape.cape_id || cape.id || ''; const capeName = cape.cape_name || cape.name || ''; const capeDescription = cape.cape_description || cape.description || ''; return ( {/* Ценник для магазина */} {mode === 'shop' && cape.price !== undefined && ( )} {capeName} ); }