1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00
market/src/components/molecules/AssetTeaser.tsx

59 lines
1.4 KiB
TypeScript

import React from 'react'
import { Link } from 'gatsby'
import Dotdotdot from 'react-dotdotdot'
import { MetaDataMarket } from '../../@types/MetaData'
import Tags from '../atoms/Tags'
import Price from '../atoms/Price'
import styles from './AssetTeaser.module.css'
import Rating from '../atoms/Rating'
declare type AssetTeaserProps = {
did: string
metadata: MetaDataMarket
}
const AssetTeaser: React.FC<AssetTeaserProps> = ({
did,
metadata
}: AssetTeaserProps) => {
const { name, price } = metadata.main
const {
description,
copyrightHolder,
tags,
categories,
access
} = metadata.additionalInformation
const { curation } = metadata
return (
<article className={styles.teaser}>
<Link to={`/asset/${did}`} className={styles.link}>
<h1 className={styles.title}>{name}</h1>
{access === 'Compute' && (
<div className={styles.accessLabel}>{access}</div>
)}
<Rating curation={curation} readonly />
<div className={styles.content}>
<Dotdotdot tagName="p" clamp={3}>
{description || ''}
</Dotdotdot>
{tags && (
<Tags className={styles.tags} items={tags} max={3} noLinks />
)}
</div>
<footer className={styles.foot}>
<Price price={price} small />
</footer>
</Link>
</article>
)
}
export default AssetTeaser