@@ -7,9 +7,16 @@ import { Button } from "@/components/ui";
77interface ProductCardProps {
88 product : Product ;
99 categorySlug : string ;
10+ minPrice ?: string ;
11+ maxPrice ?: string ;
1012}
1113
12- export function ProductCard ( { product, categorySlug } : ProductCardProps ) {
14+ export function ProductCard ( {
15+ product,
16+ categorySlug,
17+ minPrice,
18+ maxPrice,
19+ } : ProductCardProps ) {
1320 const navigate = useNavigate ( ) ;
1421 const [ hoveredPrice , setHoveredPrice ] = useState < number | null > ( null ) ;
1522 let variantTitle : string | null = null ;
@@ -18,8 +25,8 @@ export function ProductCard({ product, categorySlug }: ProductCardProps) {
1825
1926 const variantMap : Record < string , string > = {
2027 "3*3" : "3*3" ,
21- "5*5" : "5*5" ,
22- "10*10" : "10*10"
28+ "5*5" : "5*5" ,
29+ "10*10" : "10*10" ,
2330 } ;
2431
2532 if ( categorySlug === "polos" ) {
@@ -28,7 +35,17 @@ export function ProductCard({ product, categorySlug }: ProductCardProps) {
2835 variantParamName = "size" ;
2936 } else if ( categorySlug === "stickers" ) {
3037 variantTitle = "Elige la medida" ;
31- variants = [ "3*3" , "5*5" , "10*10" ] ;
38+
39+ const min = minPrice ? parseFloat ( minPrice ) : 0 ;
40+ const max = maxPrice ? parseFloat ( maxPrice ) : Infinity ;
41+
42+ if ( product . stickersVariants ?. length ) {
43+ variants = product . stickersVariants
44+ . filter ( ( variant ) => variant . price >= min && variant . price <= max )
45+ . map ( ( variant ) => variant . measure ) ;
46+ } else {
47+ variants = [ "3*3" , "5*5" , "10*10" ] ;
48+ }
3249 variantParamName = "measure" ;
3350 }
3451
0 commit comments