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

etherscan link component, link up pool & data token

This commit is contained in:
Matthias Kretschmann 2020-08-20 11:51:50 +02:00
parent 49bb90865b
commit bfa0f3ba5c
Signed by: m
GPG Key ID: 606EEEF3C479A91F
6 changed files with 78 additions and 18 deletions

View File

@ -0,0 +1,24 @@
.link {
color: var(--brand-grey);
}
.link svg {
width: 0.7em;
height: 0.7em;
display: inline-block;
fill: var(--brand-grey-light);
}
.link code {
overflow-wrap: break-word;
word-wrap: break-word;
word-break: break-all;
padding: 0;
}
.link:hover,
.link:focus,
.link:hover *,
.link:focus * {
color: var(--brand-pink);
}

View File

@ -0,0 +1,29 @@
import React, { ReactElement, ReactNode } from 'react'
import { ReactComponent as External } from '../../images/external.svg'
import styles from './EtherscanLink.module.css'
export default function EtherscanLink({
network,
path,
children
}: {
network?: 'rinkeby' | 'kovan' | 'ropsten'
path: string
children: ReactNode
}): ReactElement {
const url = network
? `https://${network}.etherscan.io`
: `https://etherscan.io`
return (
<a
href={`${url}/${path}`}
title="View on Etherscan"
target="_blank"
rel="noreferrer"
className={styles.link}
>
{children} <External />
</a>
)
}

View File

@ -10,6 +10,18 @@
text-align: center; text-align: center;
} }
.dataTokenLinks {
display: flex;
justify-content: center;
font-size: var(--font-size-small);
margin-top: calc(var(--spacer) / 2);
}
.dataTokenLinks a {
margin-left: calc(var(--spacer) / 3);
margin-right: calc(var(--spacer) / 3);
}
.poolTokens { .poolTokens {
display: grid; display: grid;
gap: var(--spacer); gap: var(--spacer);

View File

@ -11,6 +11,7 @@ import Remove from './Remove'
import Tooltip from '../../../atoms/Tooltip' import Tooltip from '../../../atoms/Tooltip'
import Conversion from '../../../atoms/Price/Conversion' import Conversion from '../../../atoms/Price/Conversion'
import { ReactComponent as External } from '../../../../images/external.svg' import { ReactComponent as External } from '../../../../images/external.svg'
import EtherscanLink from '../../../atoms/EtherscanLink'
interface Balance { interface Balance {
ocean: string ocean: string
@ -99,6 +100,14 @@ export default function Pool({ ddo }: { ddo: DDO }): ReactElement {
<PriceUnit price={dtPrice} /> <PriceUnit price={dtPrice} />
<Conversion price={dtPrice} /> <Conversion price={dtPrice} />
<Tooltip content="Explain how this price is determined..." /> <Tooltip content="Explain how this price is determined..." />
<div className={styles.dataTokenLinks}>
<EtherscanLink network="rinkeby" path={`address/${poolAddress}`}>
Pool
</EtherscanLink>
<EtherscanLink network="rinkeby" path={`token/${ddo.dataToken}`}>
Data Token
</EtherscanLink>
</div>
</div> </div>
<div className={styles.poolTokens}> <div className={styles.poolTokens}>

View File

@ -14,10 +14,3 @@
word-break: break-all; word-break: break-all;
padding: 0; padding: 0;
} }
.metaFull svg {
width: var(--font-size-mini);
height: var(--font-size-mini);
display: inline-block;
fill: currentColor;
}

View File

@ -4,7 +4,7 @@ import MetaItem from './MetaItem'
import styles from './MetaFull.module.css' import styles from './MetaFull.module.css'
import { MetadataMarket } from '../../../@types/Metadata' import { MetadataMarket } from '../../../@types/Metadata'
import { DDO } from '@oceanprotocol/lib' import { DDO } from '@oceanprotocol/lib'
import { ReactComponent as External } from '../../../images/external.svg' import EtherscanLink from '../../atoms/EtherscanLink'
export default function MetaFull({ export default function MetaFull({
ddo, ddo,
@ -34,16 +34,9 @@ export default function MetaFull({
<MetaItem <MetaItem
title="Data Token" title="Data Token"
content={ content={
<a <EtherscanLink network="rinkeby" path={`token/${dataToken}`}>
href={`https://rinkeby.etherscan.io/token/${dataToken}`} <code>{dataToken}</code>
title="View on Etherscan" </EtherscanLink>
target="_blank"
rel="noreferrer"
>
<code>
{dataToken} <External />
</code>
</a>
} }
/> />
</div> </div>