|
@@ -103,19 +103,7 @@ export default function RecommendedProducts({ recommended }: recommendedProps) {
|
|
|
fetchPageData(nextPage);
|
|
fetchPageData(nextPage);
|
|
|
};
|
|
};
|
|
|
if (!recommended || recommended.length === 0) return null;
|
|
if (!recommended || recommended.length === 0) return null;
|
|
|
- // 五星星星渲染
|
|
|
|
|
- const renderStars = (count: number) => {
|
|
|
|
|
- return Array.from({ length: count }).map((_, idx) => (
|
|
|
|
|
- <svg
|
|
|
|
|
- key={idx}
|
|
|
|
|
- className="w-4 h-4 text-green-600 inline-block"
|
|
|
|
|
- viewBox="0 0 24 24"
|
|
|
|
|
- fill="currentColor"
|
|
|
|
|
- >
|
|
|
|
|
- <path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" />
|
|
|
|
|
- </svg>
|
|
|
|
|
- ));
|
|
|
|
|
- };
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<section className="py-6 px-4 pt-8">
|
|
<section className="py-6 px-4 pt-8">
|
|
@@ -145,37 +133,17 @@ export default function RecommendedProducts({ recommended }: recommendedProps) {
|
|
|
|
|
|
|
|
{/* 星级 + 评论数 */}
|
|
{/* 星级 + 评论数 */}
|
|
|
<div className="flex items-center gap-1">
|
|
<div className="flex items-center gap-1">
|
|
|
- {renderStars(item.rating)}
|
|
|
|
|
|
|
+ <Image className="w-22.5 h-3.75"
|
|
|
|
|
+ width={90}
|
|
|
|
|
+ height={15}
|
|
|
|
|
+ src="/image/five-star.webp"
|
|
|
|
|
+ alt="review star"
|
|
|
|
|
+ />
|
|
|
<span className="text-sm text-gray-600 ml-1 underline">
|
|
<span className="text-sm text-gray-600 ml-1 underline">
|
|
|
{item.review_count}
|
|
{item.review_count}
|
|
|
</span>
|
|
</span>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- {/* 价格 + 购物车按钮 */}
|
|
|
|
|
- {/* <div className="flex items-center justify-between">
|
|
|
|
|
- <div className="flex items-center gap-2">
|
|
|
|
|
- <span className="text-xl font-bold text-black">
|
|
|
|
|
- ${item.price}
|
|
|
|
|
- </span>
|
|
|
|
|
- <span className="text-sm text-gray-400 line-through">
|
|
|
|
|
- ${item.originPrice}
|
|
|
|
|
- </span>
|
|
|
|
|
- </div>
|
|
|
|
|
- <button className="w-10 h-10 bg-emerald-600 rounded-lg flex items-center justify-center text-white">
|
|
|
|
|
- <svg
|
|
|
|
|
- width="18"
|
|
|
|
|
- height="18"
|
|
|
|
|
- viewBox="0 0 24 24"
|
|
|
|
|
- fill="none"
|
|
|
|
|
- stroke="currentColor"
|
|
|
|
|
- strokeWidth="2"
|
|
|
|
|
- >
|
|
|
|
|
- <path d="M6 3h12M3 6h18l-2 11H5L3 6z" />
|
|
|
|
|
- <circle cx="9" cy="20" r="1" />
|
|
|
|
|
- <circle cx="15" cy="20" r="1" />
|
|
|
|
|
- </svg>
|
|
|
|
|
- </button>
|
|
|
|
|
- </div> */}
|
|
|
|
|
{/* 价格 + 购物车图标 */}
|
|
{/* 价格 + 购物车图标 */}
|
|
|
<div className="flex items-center justify-between">
|
|
<div className="flex items-center justify-between">
|
|
|
<div className="flex items-center gap-1">
|
|
<div className="flex items-center gap-1">
|