mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
77 lines
2.1 KiB
TypeScript
77 lines
2.1 KiB
TypeScript
import React, { ReactElement, useEffect, useState } from 'react'
|
|
import Time from '../../atoms/Time'
|
|
import MetaItem from './MetaItem'
|
|
import styles from './MetaFull.module.css'
|
|
import { MetadataMarket } from '../../../@types/MetaData'
|
|
import { DDO } from '@oceanprotocol/lib'
|
|
import EtherscanLink from '../../atoms/EtherscanLink'
|
|
|
|
import { useOcean } from '@oceanprotocol/react'
|
|
|
|
export default function MetaFull({
|
|
ddo,
|
|
metadata
|
|
}: {
|
|
ddo: DDO
|
|
metadata: MetadataMarket
|
|
}): ReactElement {
|
|
const { ocean } = useOcean()
|
|
const { id, dataToken } = ddo
|
|
const { dateCreated, datePublished, author, license } = metadata.main
|
|
|
|
const [dtName, setDtName] = useState<string>()
|
|
const [dtSymbol, setDtSymbol] = useState<string>()
|
|
|
|
useEffect(() => {
|
|
if (!ocean) return
|
|
|
|
async function getDataTokenInfo() {
|
|
const name = await ocean.datatokens.getName(dataToken)
|
|
setDtName(name)
|
|
const symbol = await ocean.datatokens.getSymbol(dataToken)
|
|
setDtSymbol(symbol)
|
|
}
|
|
getDataTokenInfo()
|
|
}, [ocean, dataToken])
|
|
|
|
return (
|
|
<div className={styles.metaFull}>
|
|
<MetaItem title="Author" content={author} />
|
|
|
|
{metadata?.additionalInformation?.copyrightHolder && (
|
|
<MetaItem
|
|
title="Copyright Holder"
|
|
content={metadata?.additionalInformation?.copyrightHolder}
|
|
/>
|
|
)}
|
|
|
|
<MetaItem title="License" content={license} />
|
|
|
|
{metadata?.additionalInformation?.categories && (
|
|
<MetaItem
|
|
title="Category"
|
|
content={metadata?.additionalInformation?.categories[0]}
|
|
/>
|
|
)}
|
|
|
|
<MetaItem title="Data Created" content={<Time date={dateCreated} />} />
|
|
|
|
<MetaItem
|
|
title="Data Published"
|
|
content={<Time date={datePublished} />}
|
|
/>
|
|
|
|
<MetaItem
|
|
title="Datatoken"
|
|
content={
|
|
<EtherscanLink network="rinkeby" path={`token/${dataToken}`}>
|
|
{dtName ? `${dtName} - ${dtSymbol}` : <code>{dataToken}</code>}
|
|
</EtherscanLink>
|
|
}
|
|
/>
|
|
|
|
<MetaItem title="DID" content={<code>{id}</code>} />
|
|
</div>
|
|
)
|
|
}
|