diff options
author | Kurkó Mihály <kurkomisi@users.noreply.github.com> | 2018-01-15 17:20:00 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2018-01-15 17:20:00 +0800 |
commit | 938cf4528ab5acbb6013be79a0548956713807a8 (patch) | |
tree | f7782996f31b39539d148d5daeea9171415db87c /dashboard/assets/components/Footer.jsx | |
parent | 81ad8f665d3e7598273958d557c531f800eca50f (diff) | |
download | go-tangerine-938cf4528ab5acbb6013be79a0548956713807a8.tar go-tangerine-938cf4528ab5acbb6013be79a0548956713807a8.tar.gz go-tangerine-938cf4528ab5acbb6013be79a0548956713807a8.tar.bz2 go-tangerine-938cf4528ab5acbb6013be79a0548956713807a8.tar.lz go-tangerine-938cf4528ab5acbb6013be79a0548956713807a8.tar.xz go-tangerine-938cf4528ab5acbb6013be79a0548956713807a8.tar.zst go-tangerine-938cf4528ab5acbb6013be79a0548956713807a8.zip |
dashboard: deep state update, version in footer (#15837)
* dashboard: footer, deep state update
* dashboard: resolve asset path
* dashboard: remove bundle.js
* dashboard: prevent state update on every reconnection
* dashboard: fix linter issue
* dashboard, cmd: minor UI fix, include commit hash
* remove geth binary
* dashboard: gitCommit renamed to commit
* dashboard: move the geth version to the right, make commit optional
* dashboard: commit limited to 7 characters
* dashboard: limit commit length on client side
* dashboard: run go generate
Diffstat (limited to 'dashboard/assets/components/Footer.jsx')
-rw-r--r-- | dashboard/assets/components/Footer.jsx | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/dashboard/assets/components/Footer.jsx b/dashboard/assets/components/Footer.jsx new file mode 100644 index 000000000..7130b4e4e --- /dev/null +++ b/dashboard/assets/components/Footer.jsx @@ -0,0 +1,80 @@ +// @flow + +// Copyright 2017 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library 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 Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. + +import React, {Component} from 'react'; + +import withStyles from 'material-ui/styles/withStyles'; +import AppBar from 'material-ui/AppBar'; +import Toolbar from 'material-ui/Toolbar'; +import Typography from 'material-ui/Typography'; + +import type {General} from '../types/content'; + +// styles contains styles for the Header component. +const styles = theme => ({ + footer: { + backgroundColor: theme.palette.background.appBar, + color: theme.palette.getContrastText(theme.palette.background.appBar), + zIndex: theme.zIndex.appBar, + }, + toolbar: { + paddingLeft: theme.spacing.unit, + paddingRight: theme.spacing.unit, + display: 'flex', + justifyContent: 'flex-end', + }, + light: { + color: 'rgba(255, 255, 255, 0.54)', + }, +}); +export type Props = { + general: General, + classes: Object, +}; +// TODO (kurkomisi): If the structure is appropriate, make an abstraction of the common parts with the Header. +// Footer renders the header of the dashboard. +class Footer extends Component<Props> { + shouldComponentUpdate(nextProps) { + return typeof nextProps.shouldUpdate.logs !== 'undefined'; + } + + info = (about: string, data: string) => ( + <Typography type="caption" color="inherit"> + <span className={this.props.classes.light}>{about}</span> {data} + </Typography> + ); + + render() { + const {classes, general} = this.props; // The classes property is injected by withStyles(). + const geth = general.version ? this.info('Geth', general.version) : null; + const commit = general.commit ? this.info('Commit', general.commit.substring(0, 7)) : null; + + return ( + <AppBar position="static" className={classes.footer}> + <Toolbar className={classes.toolbar}> + <div> + {geth} + {commit} + </div> + </Toolbar> + </AppBar> + ); + } +} + +export default withStyles(styles)(Footer); |