import Api from './api.js'; import React from 'react'; import {PFBalance, Assets} from './balance.js'; class PoloniexController extends React.Component { constructor(props) { super(props); this.state = {'flag': 'loading', 'periodStart': null, 'variationP': null, 'balance': null, 'balances': null}; } testCredentials = () => { Api.Call('MARKET_TEST_CREDENTIALS', {'name': 'poloniex'}, function(err, status, data) { if (err) { console.error(err, data); if (err.code === 'invalid_market_credentials') { this.setState({'flag': 'invalidCredentials', 'variationP': null, 'balance': null, 'balances': null, 'periodStart': null}); } else if (err.code === 'ip_restricted_api_key') { this.setState({'flag': 'ipRestricted', 'variationP': null, 'balance': null, 'balances': null, 'periodStart': null}); } else if (err.code === 'market_credentials_not_configured') { this.setState({'flag': 'emptyCredentials'}); } return; } this.loadPortfolio(); }.bind(this)); } loadPortfolio = () => { Api.Call('MARKET_GET_PORTFOLIO', {'name': 'poloniex'}, function(err, status, data) { if (err) { console.error(err, data); if (err.code === 'not_found') { this.setState({'flag': 'noReport', 'variationP': null, 'balance': null, 'balances': null, 'periodStart': null}); } return; } this.setState({'flag': 'ok', 'variationP': data.performance.variationP, 'balance': data.value, 'balances': data.balances, 'periodStart': data.periodStart}); }.bind(this)); } componentDidMount = () => { this.testCredentials(); } render = () => { var displayText = null; switch (this.state.flag) { case 'loading': displayText = 'Loading data from poloniex...'; break; case 'noReport': displayText = 'Your account is setup ! Reporting will start next Monday !'; break; case 'invalidCredentials': case 'ipRestricted': case 'emptyCredentials': displayText =
Please provide poloniex credentials in Account page.
; break; default: displayText = null; } return (
); } } class Panel extends React.Component { render = () => { if (this.props.component === null) { return
; } return (
{this.props.title}

{this.props.component}
); } } class PoloniexBalance extends React.Component { render = () => { var balancePanel = null; var assetsPanel = null; var messagePanel = null; if (this.props.variationP !== null) { balancePanel =
; assetsPanel = ; } else { messagePanel =
{this.props.displayText}
; } return ( ); } } export default PoloniexController;