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

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;