117 lines
2.6 KiB
TypeScript
117 lines
2.6 KiB
TypeScript
import React from "react";
|
|
import {
|
|
CommentsIcon,
|
|
EyeIconBig,
|
|
FilledStarsIconSmall,
|
|
StarsIconSmall,
|
|
VerifiedIcon,
|
|
} from "../../components/icons/marketPlaceIcons";
|
|
|
|
interface CardProps {
|
|
assetName: string;
|
|
uploadedOn: number;
|
|
price: number;
|
|
rating: number;
|
|
views: number;
|
|
image: string;
|
|
description: string;
|
|
AssetID: string;
|
|
modelUrl: string;
|
|
onSelectCard: (cardData: {
|
|
assetName: string;
|
|
uploadedOn: number;
|
|
price: number;
|
|
rating: number;
|
|
views: number;
|
|
description: string;
|
|
AssetID: string;
|
|
}) => void;
|
|
}
|
|
|
|
const Card: React.FC<CardProps> = ({
|
|
assetName,
|
|
uploadedOn,
|
|
price,
|
|
rating,
|
|
views,
|
|
image,
|
|
description,
|
|
AssetID,
|
|
modelUrl,
|
|
onSelectCard,
|
|
}) => {
|
|
const handleCardSelect = () => {
|
|
console.log("assetName: ", assetName);
|
|
console.log("AssetID: ", AssetID);
|
|
|
|
onSelectCard({
|
|
assetName,
|
|
uploadedOn,
|
|
price,
|
|
rating,
|
|
views,
|
|
description,
|
|
AssetID,
|
|
});
|
|
};
|
|
|
|
return (
|
|
<div className="card-container">
|
|
{/* <a href={getAssetDownload(assetName)} download className="icon">
|
|
<DownloadIcon />
|
|
</a> */}
|
|
<div className="image-container">
|
|
<img src={image} alt={assetName} />
|
|
</div>
|
|
<div className="assets-container">
|
|
<div className="name-container">
|
|
<div className="assets-name">{assetName.split("_").join(" ")}</div>
|
|
<div className="assets-date">
|
|
Uploaded on -{" "}
|
|
{new Date(uploadedOn).toLocaleDateString("en-GB", {
|
|
day: "2-digit",
|
|
month: "short",
|
|
year: "2-digit",
|
|
})}
|
|
</div>
|
|
</div>
|
|
<div className="details">
|
|
<div className="content">
|
|
<EyeIconBig />
|
|
{views}
|
|
</div>
|
|
<div className="content">
|
|
<CommentsIcon />
|
|
32
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="vendor-icon">
|
|
HEXR FACTORY <VerifiedIcon />
|
|
</div>
|
|
<div className="stars-container">
|
|
<div className="stars-wrapper">
|
|
{[...Array(5)].map((_, index) => (
|
|
<React.Fragment key={index}>
|
|
{index < 3 ? <FilledStarsIconSmall /> : <StarsIconSmall />}
|
|
</React.Fragment>
|
|
))}
|
|
</div>
|
|
<div className="units">
|
|
₹ {price}/<span>unit</span>
|
|
</div>
|
|
</div>
|
|
<button
|
|
id={`${AssetID}-asset-buy`}
|
|
className="buy-now-button"
|
|
onClick={handleCardSelect}
|
|
>
|
|
Buy now
|
|
</button>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default Card;
|