// 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 React from 'react'; import { FormattedMessage } from 'react-intl'; import PropTypes from 'prop-types'; import { observer } from 'mobx-react'; import Store from './store'; import styles from './blockNumber.css'; function BlockNumber ({ className, message }, { api }) { const store = Store.get(api); if (!store.blockNumber) { return null; } if (!store.syncing) { return (
{ store.blockNumber.toFormat() }{ message }
); } if (store.syncing.warpChunksAmount && store.syncing.warpChunksProcessed && !store.syncing.warpChunksAmount.eq(store.syncing.warpChunksProcessed)) { return (
); } let syncStatus = null; let warpStatus = null; if (store.syncing.currentBlock && store.syncing.highestBlock) { syncStatus = ( ); } if (store.syncing.blockGap) { const [first, last] = store.syncing.blockGap; warpStatus = ( ); } return (
{ syncStatus } { warpStatus }
); } BlockNumber.propTypes = { className: PropTypes.string, message: PropTypes.node }; BlockNumber.contextTypes = { api: PropTypes.object.isRequired }; const ObserverComponent = observer(BlockNumber); ObserverComponent.Store = Store; export default ObserverComponent;