import React, {useEffect, useState} from 'react'; import {Card, CardContent, CardMedia, Typography, Box, Chip} from '@mui/material'; import StarIcon from '@mui/icons-material/Star'; import {onGetBuildDetails} from "../pages/+Layout.telefunc"; export default function BuildCard({build, onClick}: { build: any, onClick?: () => void }) { const [caseImage, setCaseImage] = useState("https://placehold.co/600x400?text=PC+Build"); const [imageLoading, setImageLoading] = useState(true); const formattedPrice = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'EUR' }).format(build.total_price || 0); useEffect(() => { onGetBuildDetails({buildId: build.id}) .then(details => { const caseComponent = details.components.find((c: any) => c.type === 'case'); setCaseImage(caseComponent?.imgUrl || caseComponent?.imgUrl || "https://placehold.co/600x400?text=PC+Build"); }) .catch(() => { }) .finally(() => setImageLoading(false)); }, [build.id]); return ( {build.name} {Number(build.avgRating || 5).toFixed(1)} ); }