Dwinzo_dev/app/src/modules/market/CardsContainer.tsx

76 lines
1.8 KiB
TypeScript
Raw Normal View History

2025-03-28 08:25:30 +00:00
import React, { useEffect, useState } from "react";
2025-03-26 06:00:17 +00:00
import Card from "./Card";
2025-03-26 10:51:35 +00:00
import AssetPreview from "./AssetPreview";
2025-03-29 07:27:16 +00:00
2025-03-28 08:25:30 +00:00
interface ModelData {
CreatedBy: string;
animated: string | null;
category: string;
description: string;
filename: string;
isArchieve: boolean;
modelfileID: string;
tags: string;
thumbnail: string;
uploadDate: number;
_id: string;
2025-03-31 07:29:12 +00:00
price: number;
2025-03-28 08:25:30 +00:00
}
interface ModelsProps {
models: ModelData[];
}
2025-03-26 06:00:17 +00:00
const CardsContainer: React.FC<ModelsProps> = ({ models }) => {
2025-03-26 10:51:35 +00:00
const [selectedCard, setSelectedCard] = useState<{
assetName: string;
2025-03-29 07:27:16 +00:00
uploadedOn: number;
2025-03-26 10:51:35 +00:00
price: number;
rating: number;
views: number;
2025-03-29 07:27:16 +00:00
description: string;
2025-03-26 10:51:35 +00:00
} | null>(null);
const handleCardSelect = (cardData: {
assetName: string;
2025-03-29 07:27:16 +00:00
uploadedOn: number;
2025-03-26 10:51:35 +00:00
price: number;
rating: number;
views: number;
2025-03-29 07:27:16 +00:00
description: string;
2025-03-26 10:51:35 +00:00
}) => {
setSelectedCard(cardData);
};
2025-03-26 06:00:17 +00:00
return (
<div className="cards-container-container">
<div className="header">Products You May Like</div>
<div className="cards-wrapper-container">
2025-03-28 08:25:30 +00:00
{models.length > 0 &&
models.map((assetDetail) => (
<Card
key={assetDetail._id}
assetName={assetDetail?.filename}
2025-03-29 07:27:16 +00:00
uploadedOn={assetDetail.uploadDate}
2025-03-31 07:29:12 +00:00
price={assetDetail?.price}
2025-03-28 08:25:30 +00:00
rating={4.5}
views={800}
2025-03-28 08:25:30 +00:00
onSelectCard={handleCardSelect}
image={assetDetail.thumbnail}
2025-03-29 07:27:16 +00:00
description={assetDetail.description}
2025-03-26 10:51:35 +00:00
/>
2025-03-28 08:25:30 +00:00
))}
{/* <RenderOverlay> */}
{selectedCard && (
<AssetPreview
selectedCard={selectedCard}
setSelectedCard={setSelectedCard}
/>
)}
2025-03-26 10:51:35 +00:00
{/* </RenderOverlay> */}
2025-03-26 06:00:17 +00:00
</div>
</div>
);
};
2025-03-26 10:51:35 +00:00
export default CardsContainer;