2019-06-07 20:47:34 +02:00
|
|
|
import React, { Fragment } from 'react'
|
2019-06-17 20:31:14 +02:00
|
|
|
import { OceanPlatformTechStatus } from '@oceanprotocol/squid'
|
|
|
|
import { VersionNumbersState } from '.'
|
2019-06-07 20:47:34 +02:00
|
|
|
import styles from './VersionTable.module.scss'
|
|
|
|
import slugify from '@sindresorhus/slugify'
|
|
|
|
|
|
|
|
const VersionTableContracts = ({
|
|
|
|
contracts,
|
|
|
|
network
|
|
|
|
}: {
|
2019-06-17 20:31:14 +02:00
|
|
|
contracts: {
|
|
|
|
[contractName: string]: string
|
|
|
|
}
|
2019-06-07 20:47:34 +02:00
|
|
|
network: string
|
|
|
|
}) => (
|
|
|
|
<table>
|
|
|
|
<tbody>
|
2019-06-11 20:27:02 +02:00
|
|
|
{contracts &&
|
2019-06-13 16:43:47 +02:00
|
|
|
Object.keys(contracts).map(key => {
|
|
|
|
const submarineLink = `https://submarine${
|
|
|
|
network === 'duero'
|
|
|
|
? '.duero'
|
|
|
|
: network === 'pacific'
|
|
|
|
? '.pacific'
|
|
|
|
: ''
|
|
|
|
}.dev-ocean.com/address/${contracts[key]}`
|
|
|
|
|
|
|
|
return (
|
|
|
|
<tr key={key}>
|
|
|
|
<td>
|
|
|
|
<span className={styles.label}>{key}</span>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<a href={submarineLink}>
|
|
|
|
<code>{contracts[key]}</code>
|
|
|
|
</a>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
)
|
|
|
|
})}
|
2019-06-07 20:47:34 +02:00
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
)
|
|
|
|
|
2019-06-14 12:31:29 +02:00
|
|
|
const VersionNumber = ({
|
2019-06-17 20:31:14 +02:00
|
|
|
name,
|
2019-06-14 12:31:29 +02:00
|
|
|
version,
|
2019-06-17 20:31:14 +02:00
|
|
|
network,
|
|
|
|
status
|
2019-06-14 12:31:29 +02:00
|
|
|
}: {
|
2019-06-17 20:31:14 +02:00
|
|
|
name: string
|
|
|
|
version?: string
|
|
|
|
network?: string
|
|
|
|
status: OceanPlatformTechStatus
|
2019-06-14 12:31:29 +02:00
|
|
|
}) =>
|
2019-06-17 20:31:14 +02:00
|
|
|
version ? (
|
2019-06-14 12:31:29 +02:00
|
|
|
<>
|
|
|
|
<a
|
|
|
|
href={`https://github.com/oceanprotocol/${slugify(
|
2019-06-17 20:31:14 +02:00
|
|
|
name
|
2019-06-14 12:31:29 +02:00
|
|
|
)}/releases/tag/v${version}`}
|
|
|
|
>
|
|
|
|
<code>v{version}</code>
|
|
|
|
</a>
|
|
|
|
{network && `(${network})`}
|
|
|
|
</>
|
|
|
|
) : (
|
2019-06-17 20:31:14 +02:00
|
|
|
<span>{status || 'Could not get version'}</span>
|
2019-06-14 12:31:29 +02:00
|
|
|
)
|
|
|
|
|
2019-06-17 20:31:14 +02:00
|
|
|
const VersionTable = ({ data }: { data: VersionNumbersState }) => (
|
2019-06-07 20:47:34 +02:00
|
|
|
<div className={styles.tableWrap}>
|
|
|
|
<table className={styles.table}>
|
|
|
|
<tbody>
|
|
|
|
{Object.entries(data).map(([key, value]) => (
|
|
|
|
<Fragment key={key}>
|
2019-06-17 20:31:14 +02:00
|
|
|
<tr>
|
2019-06-07 20:47:34 +02:00
|
|
|
<td>
|
|
|
|
<a
|
2019-06-11 20:27:02 +02:00
|
|
|
href={
|
2019-06-17 20:31:14 +02:00
|
|
|
value.name &&
|
2019-06-11 20:27:02 +02:00
|
|
|
`https://github.com/oceanprotocol/${slugify(
|
2019-06-17 20:31:14 +02:00
|
|
|
value.name
|
2019-06-11 20:27:02 +02:00
|
|
|
)}`
|
|
|
|
}
|
2019-06-07 20:47:34 +02:00
|
|
|
>
|
2019-06-17 20:31:14 +02:00
|
|
|
<strong>{value.name}</strong>
|
2019-06-07 20:47:34 +02:00
|
|
|
</a>
|
|
|
|
</td>
|
|
|
|
<td>
|
2019-06-14 12:31:29 +02:00
|
|
|
<VersionNumber
|
2019-06-17 20:31:14 +02:00
|
|
|
name={value.name}
|
2019-06-14 12:31:29 +02:00
|
|
|
version={value.version}
|
2019-06-17 20:31:14 +02:00
|
|
|
status={value.status}
|
|
|
|
// network={value.network}
|
2019-06-14 12:31:29 +02:00
|
|
|
/>
|
2019-06-07 20:47:34 +02:00
|
|
|
</td>
|
|
|
|
</tr>
|
2019-06-17 20:31:14 +02:00
|
|
|
{/* {value.contracts && (
|
2019-06-07 20:47:34 +02:00
|
|
|
<tr>
|
|
|
|
<td colSpan={2}>
|
|
|
|
<VersionTableContracts
|
2019-06-17 20:31:14 +02:00
|
|
|
contracts={value.contracts}
|
|
|
|
network={value.network || ''}
|
2019-06-07 20:47:34 +02:00
|
|
|
/>
|
|
|
|
</td>
|
|
|
|
</tr>
|
2019-06-17 20:31:14 +02:00
|
|
|
)} */}
|
2019-06-07 20:47:34 +02:00
|
|
|
</Fragment>
|
|
|
|
))}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
)
|
|
|
|
|
|
|
|
export default VersionTable
|