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