Pull in dapp-status (#7457)

* Remove status from tabs

* Update js-shared, add dapp-status
This commit is contained in:
Jaco Greeff 2018-01-04 17:05:10 +01:00 committed by GitHub
parent 36bb5ed795
commit 37796bdaa9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 88 additions and 56 deletions

View File

@ -18,15 +18,10 @@ import { Tab as MUITab } from 'material-ui/Tabs';
import React, { Component, PropTypes } from 'react'; import React, { Component, PropTypes } from 'react';
import { FormattedMessage } from 'react-intl'; import { FormattedMessage } from 'react-intl';
import { Badge } from '~/ui';
import styles from '../tabBar.css'; import styles from '../tabBar.css';
const SIGNER_ID = 'signer';
export default class Tab extends Component { export default class Tab extends Component {
static propTypes = { static propTypes = {
pendings: PropTypes.number,
view: PropTypes.object.isRequired view: PropTypes.object.isRequired
}; };
@ -37,9 +32,7 @@ export default class Tab extends Component {
<MUITab <MUITab
icon={ view.icon } icon={ view.icon }
label={ label={
view.id === SIGNER_ID this.renderLabel(view.id)
? this.renderSignerLabel()
: this.renderLabel(view.id)
} }
/> />
); );
@ -55,21 +48,4 @@ export default class Tab extends Component {
</div> </div>
); );
} }
renderSignerLabel () {
const { pendings } = this.props;
let bubble;
if (pendings) {
bubble = (
<Badge
color='red'
className={ styles.labelBubble }
value={ pendings }
/>
);
}
return this.renderLabel(SIGNER_ID, bubble);
}
} }

View File

@ -20,8 +20,6 @@ import { Link } from 'react-router';
import { Toolbar, ToolbarGroup } from 'material-ui/Toolbar'; import { Toolbar, ToolbarGroup } from 'material-ui/Toolbar';
import { isEqual } from 'lodash'; import { isEqual } from 'lodash';
import { StatusIndicator } from '~/ui';
import Tab from './Tab'; import Tab from './Tab';
import styles from './tabBar.css'; import styles from './tabBar.css';
@ -31,8 +29,6 @@ class TabBar extends Component {
}; };
static propTypes = { static propTypes = {
pending: PropTypes.array,
health: PropTypes.object.isRequired,
views: PropTypes.array.isRequired views: PropTypes.array.isRequired
}; };
@ -41,29 +37,12 @@ class TabBar extends Component {
}; };
render () { render () {
const { health } = this.props;
return ( return (
<Toolbar className={ styles.toolbar }> <Toolbar className={ styles.toolbar }>
<ToolbarGroup className={ styles.first }> <ToolbarGroup className={ styles.first }>
<div /> <div />
</ToolbarGroup> </ToolbarGroup>
<div className={ styles.tabs }> <div className={ styles.tabs }>
<Link
activeClassName={ styles.tabactive }
className={ `${styles.tabLink} ${styles.indicatorTab}` }
key='status'
to='/status'
>
<div className={ styles.indicator }>
<StatusIndicator
type='signal'
id='topbar.health'
status={ health.overall.status }
title={ health.overall.message }
/>
</div>
</Link>
{ this.renderTabItems() } { this.renderTabItems() }
</div> </div>
<ToolbarGroup className={ styles.last }> <ToolbarGroup className={ styles.last }>
@ -74,7 +53,7 @@ class TabBar extends Component {
} }
renderTabItems () { renderTabItems () {
const { views, pending } = this.props; const { views } = this.props;
return views.map((view, index) => { return views.map((view, index) => {
return ( return (
@ -85,7 +64,6 @@ class TabBar extends Component {
to={ view.route } to={ view.route }
> >
<Tab <Tab
pendings={ pending.length }
view={ view } view={ view }
/> />
</Link> </Link>
@ -109,7 +87,6 @@ function mapStateToProps (initState) {
return (state) => { return (state) => {
const { availability = 'unknown' } = state.nodeStatus.nodeKind || {}; const { availability = 'unknown' } = state.nodeStatus.nodeKind || {};
const { views } = state.settings; const { views } = state.settings;
const { health } = state.nodeStatus;
const viewIds = Object const viewIds = Object
.keys(views) .keys(views)
@ -123,7 +100,7 @@ function mapStateToProps (initState) {
}); });
if (isEqual(viewIds, filteredViewIds)) { if (isEqual(viewIds, filteredViewIds)) {
return { views: filteredViews, health }; return { views: filteredViews };
} }
filteredViewIds = viewIds; filteredViewIds = viewIds;
@ -132,7 +109,7 @@ function mapStateToProps (initState) {
id id
})); }));
return { views: filteredViews, health }; return { views: filteredViews };
}; };
} }

86
js/package-lock.json generated
View File

@ -197,6 +197,78 @@
"version": "github:paritytech/dapp-signaturereg#a288f69f1912970f3d1bbbe0281f87a4dc9a6743", "version": "github:paritytech/dapp-signaturereg#a288f69f1912970f3d1bbbe0281f87a4dc9a6743",
"dev": true "dev": true
}, },
"@parity/dapp-status": {
"version": "github:js-dist-paritytech/dapp-status#90c6425804800b1d3599f602cd257e8e4cfa6428",
"dev": true,
"requires": {
"@parity/api": "2.1.14",
"@parity/mobx": "1.0.5",
"@parity/ui": "3.0.22",
"format-number": "3.0.0",
"mobx": "3.4.1",
"mobx-react": "4.3.5",
"prop-types": "15.6.0",
"react": "16.2.0",
"react-dom": "16.2.0",
"react-intl": "2.4.0",
"react-scripts": "1.0.17",
"rlp": "2.0.0",
"semantic-ui-css": "2.2.12",
"semantic-ui-react": "0.77.0"
},
"dependencies": {
"@parity/mobx": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@parity/mobx/-/mobx-1.0.5.tgz",
"integrity": "sha512-tKVGP81jOPsZVBqKwULDYTXe9jaJMNVUXGYh8qsAeOj1aUE/sWxKeM+lhKUnWOhPi21qObKPzkoJ17qO+1CyWQ==",
"dev": true,
"requires": {
"@parity/ledger": "2.1.2"
}
},
"mobx": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/mobx/-/mobx-3.4.1.tgz",
"integrity": "sha1-N6vl7ogtQBgo2fJsbBovR2FLu+8=",
"dev": true
},
"prop-types": {
"version": "15.6.0",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz",
"integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=",
"dev": true,
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"object-assign": "4.1.1"
}
},
"react": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz",
"integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==",
"dev": true,
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"object-assign": "4.1.1",
"prop-types": "15.6.0"
}
},
"react-dom": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.0.tgz",
"integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==",
"dev": true,
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"object-assign": "4.1.1",
"prop-types": "15.6.0"
}
}
}
},
"@parity/dapp-tokendeploy": { "@parity/dapp-tokendeploy": {
"version": "github:paritytech/dapp-tokendeploy#3c2b03e2a8703ac29e11f36df39ee5f8028dce28", "version": "github:paritytech/dapp-tokendeploy#3c2b03e2a8703ac29e11f36df39ee5f8028dce28",
"dev": true "dev": true
@ -256,9 +328,9 @@
"version": "github:paritytech/plugin-signer-qr#c16423de5b8a8f68ebd5f1e78e084fa959329a9f" "version": "github:paritytech/plugin-signer-qr#c16423de5b8a8f68ebd5f1e78e084fa959329a9f"
}, },
"@parity/shared": { "@parity/shared": {
"version": "2.2.18", "version": "2.2.20",
"resolved": "https://registry.npmjs.org/@parity/shared/-/shared-2.2.18.tgz", "resolved": "https://registry.npmjs.org/@parity/shared/-/shared-2.2.20.tgz",
"integrity": "sha512-+PEdqdEBIDY4HtvQcYNAXoseCPVesXS+RBU1dNC2myPZkivTMfd8bFfepZT6yANJTPs6NDI9DSzwrLh9YkH1+g==", "integrity": "sha512-qOD+3TtZ9cbRSugl12VKmsjJKUfejG208Lugzfrs1irrkB3S7jHhYAYa+tkMrHafQX9MbsfpmkDT6jToh5iOIg==",
"requires": { "requires": {
"@parity/ledger": "2.1.2", "@parity/ledger": "2.1.2",
"eventemitter3": "2.0.3", "eventemitter3": "2.0.3",
@ -321,7 +393,7 @@
"@parity/api": "2.1.14", "@parity/api": "2.1.14",
"@parity/etherscan": "2.1.3", "@parity/etherscan": "2.1.3",
"@parity/mobx": "1.0.4", "@parity/mobx": "1.0.4",
"@parity/shared": "2.2.18", "@parity/shared": "2.2.20",
"babel-runtime": "6.26.0", "babel-runtime": "6.26.0",
"bignumber.js": "4.1.0", "bignumber.js": "4.1.0",
"brace": "0.11.0", "brace": "0.11.0",
@ -6061,6 +6133,12 @@
"mime-types": "2.1.17" "mime-types": "2.1.17"
} }
}, },
"format-number": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/format-number/-/format-number-3.0.0.tgz",
"integrity": "sha512-RWcbtINcRZ2DWCo4EcJgOJUYIwtsY5LKlTtL5OX1vfGsxEEK5mKaGxZC0p4Mgy63vXR12rut3lnjwCQ8YIlRMw==",
"dev": true
},
"formatio": { "formatio": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz",

View File

@ -53,6 +53,7 @@
"@parity/dapp-localtx": "paritytech/dapp-localtx", "@parity/dapp-localtx": "paritytech/dapp-localtx",
"@parity/dapp-registry": "paritytech/dapp-registry", "@parity/dapp-registry": "paritytech/dapp-registry",
"@parity/dapp-signaturereg": "paritytech/dapp-signaturereg", "@parity/dapp-signaturereg": "paritytech/dapp-signaturereg",
"@parity/dapp-status": "js-dist-paritytech/dapp-status",
"@parity/dapp-tokendeploy": "paritytech/dapp-tokendeploy", "@parity/dapp-tokendeploy": "paritytech/dapp-tokendeploy",
"@parity/dapp-tokenreg": "paritytech/dapp-tokenreg", "@parity/dapp-tokenreg": "paritytech/dapp-tokenreg",
"babel-cli": "6.26.0", "babel-cli": "6.26.0",
@ -145,7 +146,7 @@
"@parity/plugin-signer-default": "paritytech/plugin-signer-default", "@parity/plugin-signer-default": "paritytech/plugin-signer-default",
"@parity/plugin-signer-hardware": "paritytech/plugin-signer-hardware", "@parity/plugin-signer-hardware": "paritytech/plugin-signer-hardware",
"@parity/plugin-signer-qr": "paritytech/plugin-signer-qr", "@parity/plugin-signer-qr": "paritytech/plugin-signer-qr",
"@parity/shared": "2.2.18", "@parity/shared": "2.2.20",
"@parity/ui": "3.0.22", "@parity/ui": "3.0.22",
"keythereum": "1.0.2", "keythereum": "1.0.2",
"lodash.flatten": "4.4.0", "lodash.flatten": "4.4.0",