import Card from '@material-ui/core/Card'
import CardContent from '@material-ui/core/CardContent'
import Divider from '@material-ui/core/Divider'
import Grid from '@material-ui/core/Grid'
import Typography from '@material-ui/core/Typography'
import { fetchBridgeSpec } from 'actionCreators'
import BaseLink from 'components/BaseLink'
import Button from 'components/Button'
import Content from 'components/Content'
import { AppState } from 'src/reducers'
import { BridgeType } from 'operator_ui'
import React, { useEffect } from 'react'
import { connect } from 'react-redux'
import bridgeSelector from 'selectors/bridge'
import matchRouteAndMapDispatchToProps from 'utils/matchRouteAndMapDispatchToProps'
const Loading = () =>
Loading...
interface LoadedProps {
bridge: BridgeType
}
const fields: [string, string][] = [
['name', 'Name'],
['url', 'URL'],
['confirmations', 'Confirmations'],
['minimumContractPayment', 'Minimum Contract Payment'],
['outgoingToken', 'Outgoing Token'],
]
const Loaded = ({ bridge }: LoadedProps) => (
{fields.map(([k, t]) => {
return (
{t}
{bridge[k as keyof typeof bridge]}
)
})}
)
interface Props {
match: {
params: {
bridgeId: string
}
}
fetchBridgeSpec: (name: string) => Promise
bridge?: BridgeType
}
export const Show: React.FC = ({ bridge, fetchBridgeSpec, match }) => {
useEffect(() => {
document.title = 'Show Bridge'
fetchBridgeSpec(match.params.bridgeId)
}, [fetchBridgeSpec, match])
return (
Bridge Info
{bridge && (
)}
{bridge ? : }
)
}
const mapStateToProps = (state: AppState, ownProps: Props) => ({
bridge: bridgeSelector(state, ownProps.match.params.bridgeId),
})
export const ConnectedShow = connect(
mapStateToProps,
matchRouteAndMapDispatchToProps({ fetchBridgeSpec }),
)(Show)
export default ConnectedShow