2020-10-01 17:13:19 +02:00
|
|
|
import { MetadataMarket } from '../../../@types/MetaData'
|
2020-07-06 12:49:30 +02:00
|
|
|
import React, { ReactElement } from 'react'
|
|
|
|
import Time from '../../atoms/Time'
|
|
|
|
import { Link } from 'gatsby'
|
|
|
|
import Markdown from '../../atoms/Markdown'
|
|
|
|
import MetaFull from './MetaFull'
|
|
|
|
import MetaSecondary from './MetaSecondary'
|
2020-07-07 09:43:45 +02:00
|
|
|
import styles from './index.module.css'
|
2020-07-08 17:57:53 +02:00
|
|
|
import AssetActions from '../AssetActions'
|
2020-07-21 14:04:32 +02:00
|
|
|
import { DDO } from '@oceanprotocol/lib'
|
2020-09-09 16:07:37 +02:00
|
|
|
import { useUserPreferences } from '../../../providers/UserPreferences'
|
2020-10-20 13:10:03 +02:00
|
|
|
import Pricing from './Pricing'
|
2020-10-20 18:33:24 +02:00
|
|
|
import { useOcean } from '@oceanprotocol/react'
|
2020-07-06 12:49:30 +02:00
|
|
|
|
|
|
|
export interface AssetContentProps {
|
2020-07-16 13:39:02 +02:00
|
|
|
metadata: MetadataMarket
|
2020-07-21 13:21:22 +02:00
|
|
|
ddo: DDO
|
2020-07-06 12:49:30 +02:00
|
|
|
path?: string
|
|
|
|
}
|
|
|
|
|
|
|
|
export default function AssetContent({
|
|
|
|
metadata,
|
2020-07-21 13:21:22 +02:00
|
|
|
ddo
|
2020-07-06 12:49:30 +02:00
|
|
|
}: AssetContentProps): ReactElement {
|
|
|
|
const { datePublished } = metadata.main
|
2020-09-09 16:07:37 +02:00
|
|
|
const { debug } = useUserPreferences()
|
2020-10-20 18:33:24 +02:00
|
|
|
const { accountId } = useOcean()
|
|
|
|
|
|
|
|
const isOwner = accountId === ddo.publicKey[0].owner
|
|
|
|
// TODO: check if assets without price actually have ddo.price or not
|
|
|
|
const hasPrice = typeof ddo.price !== 'undefined'
|
|
|
|
const showPricing = isOwner && !hasPrice
|
2020-07-06 12:49:30 +02:00
|
|
|
|
|
|
|
return (
|
|
|
|
<article className={styles.grid}>
|
2020-07-15 14:45:08 +02:00
|
|
|
<div className={styles.content}>
|
2020-10-20 18:33:24 +02:00
|
|
|
{showPricing && <Pricing ddo={ddo} />}
|
2020-10-20 13:10:03 +02:00
|
|
|
|
2020-07-06 12:49:30 +02:00
|
|
|
<aside className={styles.meta}>
|
2020-07-07 23:00:16 +02:00
|
|
|
<p>{datePublished && <Time date={datePublished} />}</p>
|
2020-09-10 22:22:16 +02:00
|
|
|
{metadata?.additionalInformation?.categories?.length && (
|
|
|
|
<p>
|
|
|
|
<Link
|
|
|
|
to={`/search?categories=["${metadata?.additionalInformation?.categories[0]}"]`}
|
|
|
|
>
|
|
|
|
{metadata?.additionalInformation?.categories[0]}
|
|
|
|
</Link>
|
|
|
|
</p>
|
|
|
|
)}
|
2020-07-06 12:49:30 +02:00
|
|
|
</aside>
|
|
|
|
|
2020-09-10 19:54:32 +02:00
|
|
|
<Markdown text={metadata?.additionalInformation?.description || ''} />
|
2020-07-06 12:49:30 +02:00
|
|
|
|
2020-07-08 00:06:48 +02:00
|
|
|
<MetaSecondary metadata={metadata} />
|
|
|
|
|
2020-07-29 18:36:10 +02:00
|
|
|
<MetaFull ddo={ddo} metadata={metadata} />
|
2020-07-08 00:06:48 +02:00
|
|
|
|
2020-07-06 12:49:30 +02:00
|
|
|
<div className={styles.buttonGroup}>
|
|
|
|
{/* <EditAction
|
|
|
|
ddo={ddo}
|
|
|
|
ocean={ocean}
|
|
|
|
account={account}
|
|
|
|
refetchMetadata={refetchMetadata}
|
|
|
|
/> */}
|
|
|
|
{/* <DeleteAction ddo={ddo} /> */}
|
|
|
|
</div>
|
2020-08-03 12:04:03 +02:00
|
|
|
|
2020-09-09 16:07:37 +02:00
|
|
|
{debug === true && (
|
|
|
|
<pre>
|
|
|
|
<code>{JSON.stringify(ddo, null, 2)}</code>
|
|
|
|
</pre>
|
|
|
|
)}
|
2020-07-06 12:49:30 +02:00
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<div className={styles.sticky}>
|
2020-08-26 08:48:22 +02:00
|
|
|
<AssetActions ddo={ddo} />
|
2020-07-06 12:49:30 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</article>
|
|
|
|
)
|
|
|
|
}
|