// Copyright 2015-2017 Parity Technologies (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . import { observer } from 'mobx-react'; import React, { Component, PropTypes } from 'react'; import { FormattedMessage } from 'react-intl'; import shapeshiftLogo from '~/../assets/images/shapeshift-logo.png'; import { Button, IdentityIcon, Modal } from '~/ui'; import { CancelIcon, DoneIcon } from '~/ui/Icons'; import AwaitingDepositStep from './AwaitingDepositStep'; import AwaitingExchangeStep from './AwaitingExchangeStep'; import CompletedStep from './CompletedStep'; import ErrorStep from './ErrorStep'; import OptionsStep from './OptionsStep'; import Store, { STAGE_COMPLETED, STAGE_OPTIONS, STAGE_WAIT_DEPOSIT, STAGE_WAIT_EXCHANGE } from './store'; import styles from './shapeshift.css'; const STAGE_TITLES = [ , , , ]; const ERROR_TITLE = ( ); @observer export default class Shapeshift extends Component { static contextTypes = { store: PropTypes.object.isRequired } static propTypes = { address: PropTypes.string.isRequired, onClose: PropTypes.func } store = new Store(this.props.address); componentDidMount () { this.store.retrieveCoins(); } componentWillUnmount () { this.store.unsubscribe(); } render () { const { error, stage } = this.store; return ( { this.renderPage() } ); } renderDialogActions () { const { address } = this.props; const { coins, error, hasAcceptedTerms, stage } = this.store; const logo = ( ); const cancelBtn = (