import React from 'react'; import ReactDOM from 'react-dom'; import ClientDataStore from '../../stores/ClientDataStore'; import EventTypes from '../../constants/EventTypes'; import format from '../../util/formatData'; import Icon from '../icons/Icon'; import LineChart from './LineChart'; const METHODS_TO_BIND = [ 'onTransferDataRequestError', 'onTransferDataRequestSuccess' ]; class ClientStats extends React.Component { constructor() { super(); this.state = { sidebarWidth: 0, transferDataRequestError: false, transferDataRequestSuccess: false }; METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } componentDidMount() { this.setState({ sidebarWidth: ReactDOM.findDOMNode(this).offsetWidth }); ClientDataStore.listen( EventTypes.CLIENT_TRANSFER_DATA_REQUEST_SUCCESS, this.onTransferDataRequestSuccess ); ClientDataStore.fetchTransferData(); } componentWillUnmount() { ClientDataStore.unlisten( EventTypes.CLIENT_TRANSFER_DATA_REQUEST_SUCCESS, this.onTransferDataRequestSuccess ); } onTransferDataRequestError() { this.setState({ transferDataRequestError: true, transferDataRequestSuccess: false }); } onTransferDataRequestSuccess() { this.setState({ transferDataRequestError: false, transferDataRequestSuccess: true }); } render() { if (this.state.transferDataRequestError) { return