import React, {Component} from 'react'; import WantToSwapMy from './components/wantToSwapMy'; import CurrentRates from './components/currentRates'; import {connect} from 'react-redux'; import { SWAP_DESTINATION_AMOUNT_TO, SWAP_DESTINATION_KIND_TO, SWAP_ORIGIN_AMOUNT_TO, SWAP_ORIGIN_KIND_AND_DESTINATION_KIND_AND_DESTINATION_OPTIONS_TO, SWAP_ORIGIN_KIND_TO, SWAP_UPDATE_BITY_RATES_TO } from 'actions/swap'; import PropTypes from 'prop-types'; import Bity from 'api/bity'; class Swap extends Component { constructor(props) { super(props); this.bity = new Bity(); } static propTypes = { bityRates: PropTypes.any, originAmount: PropTypes.any, destinationAmount: PropTypes.any, originKind: PropTypes.string, destinationKind: PropTypes.string, destinationKindOptions: PropTypes.array, originKindOptions: PropTypes.array, swapOriginKindTo: PropTypes.func, swapDestinationKindTo: PropTypes.func, swapOriginAmountTo: PropTypes.func, swapDestinationAmountTo: PropTypes.func, swapUpdateBityRatesTo: PropTypes.func, swapOriginKindAndDestinationKindAndDestinationOptionsTo: PropTypes.func }; componentDidMount() { let {bityRates} = this.props; if (!bityRates.ETHBTC || !bityRates.ETHREP || !bityRates.BTCETH || !bityRates.BTCREP) { this.bity.getAllRates() .then((data) => { this.props.swapUpdateBityRatesTo(data); }) } } render() { let { bityRates, originAmount, destinationAmount, originKind, destinationKind, destinationKindOptions, originKindOptions, swapOriginKindTo, swapDestinationKindTo, swapOriginAmountTo, swapDestinationAmountTo, swapOriginKindAndDestinationKindAndDestinationOptionsTo } = this.props; let wantToSwapMyProps = { bityRates, originAmount, destinationAmount, originKind, destinationKind, destinationKindOptions, originKindOptions, swapOriginKindTo, swapDestinationKindTo, swapOriginAmountTo, swapDestinationAmountTo, swapOriginKindAndDestinationKindAndDestinationOptionsTo }; return (
) } } function mapStateToProps(state) { return { originAmount: state.swap.originAmount, destinationAmount: state.swap.destinationAmount, originKind: state.swap.originKind, destinationKind: state.swap.destinationKind, destinationKindOptions: state.swap.destinationKindOptions, originKindOptions: state.swap.originKindOptions, bityRates: state.swap.bityRates } } function mapDispatchToProps(dispatch) { return { swapOriginKindTo: (originValue) => { dispatch(SWAP_ORIGIN_KIND_TO(originValue)) }, swapDestinationKindTo: (destinationValue) => { dispatch(SWAP_DESTINATION_KIND_TO(destinationValue)) }, swapOriginAmountTo: (originAmount) => { dispatch(SWAP_ORIGIN_AMOUNT_TO(originAmount)) }, swapDestinationAmountTo: (destinationValue) => { dispatch(SWAP_DESTINATION_AMOUNT_TO(destinationValue)) }, swapUpdateBityRatesTo: (bityRates) => { dispatch(SWAP_UPDATE_BITY_RATES_TO(bityRates)) }, swapOriginKindAndDestinationKindAndDestinationOptionsTo: (originKind, destinationKind) => { dispatch(SWAP_ORIGIN_KIND_AND_DESTINATION_KIND_AND_DESTINATION_OPTIONS_TO(originKind, destinationKind)) } } } export default connect(mapStateToProps, mapDispatchToProps)(Swap)