Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge dev into master to release 1.6.0 #146

Merged
merged 42 commits into from Sep 14, 2019
Merged
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
e670c98
fix: plugin refactor v1 (#121)
marcgarreau Aug 2, 2019
fb64311
fix: refactor plugin actions and service (#122)
marcgarreau Aug 2, 2019
85a5090
fix: plugin name refactor v3 (#123)
marcgarreau Aug 2, 2019
8c34def
chore: Renames `ClientConfig` and inside `client` references to `Plug…
ryanio Aug 4, 2019
64917e3
chore: refactor client PluginService funcs into ClientService (#125)
ryanio Aug 5, 2019
983dde1
chore: refactor service to plugin (#127)
marcgarreau Aug 7, 2019
a96ce02
chore: update README with latest links/screenshot (#128)
marcgarreau Aug 7, 2019
32f5518
fix: disable FlagPreview on running (#129)
ryanio Aug 16, 2019
7765008
chore: remove stale files (#130)
marcgarreau Aug 17, 2019
d68188e
feat: Reinstate Node Info (#126)
ryanio Aug 17, 2019
8c37676
feat: About tab (#132)
ryanio Aug 22, 2019
57b29e6
fix: remove popup cruft (#135)
marcgarreau Aug 28, 2019
4cb660b
feat: omits required settings from form UI (#136)
marcgarreau Aug 29, 2019
a367063
chore: bump grid-ui version (#134)
ryanio Aug 30, 2019
981f971
fix: excess width in metadata (#138)
marcgarreau Aug 30, 2019
7ebecd2
feat: App Badges (#141)
ryanio Sep 4, 2019
3a01b15
fix: show 404 on app load fail (#104)
ryanio Sep 4, 2019
724a6fd
UI Improvements (#142)
PhilippLgh Sep 4, 2019
892bb92
bump version
PhilippLgh Sep 4, 2019
fbbbc28
fix: window height
PhilippLgh Sep 4, 2019
87fb134
fix: adjust width
PhilippLgh Sep 4, 2019
52f64c3
fix: node info position (#143)
ryanio Sep 4, 2019
333fde0
fix: pulse on new block (#140)
ryanio Sep 4, 2019
189760e
feat: dispatch `clearPluginErrors` for nano on Terminal tab click or …
ryanio Sep 4, 2019
bfc30b2
Merge branch 'master' into dev
PhilippLgh Sep 5, 2019
1222a51
fix: uncleared peer and sync intervals (#145)
marcgarreau Sep 5, 2019
45e58cc
fix: backwards compatible
PhilippLgh Sep 10, 2019
d0f5c24
feat: use notistack (#147)
ryanio Sep 10, 2019
d51c9f1
fix: start arg order
PhilippLgh Sep 12, 2019
27e74a0
Merge branch 'dev' of https://github.com/ethereum/grid-ui into dev
PhilippLgh Sep 12, 2019
7df9ead
feat: show "install dependency" button if needed
PhilippLgh Sep 12, 2019
3beea6b
ci: only pack if not on master or dev
evertonfraga Sep 13, 2019
5dc6a38
ci: only pack if not on master or dev
evertonfraga Sep 13, 2019
afb803d
fix: refresh button (#150)
ryanio Sep 13, 2019
e260a1f
feat: display `setup-event` status (#149)
ryanio Sep 13, 2019
544da06
ci: fix syntax
evertonfraga Sep 14, 2019
d80a8af
ci: fix syntax
evertonfraga Sep 14, 2019
5eff316
ci: fix syntax
evertonfraga Sep 14, 2019
6853fb4
ci: fix syntax
evertonfraga Sep 14, 2019
f0e31d6
ci: fix syntax
evertonfraga Sep 14, 2019
02fc70a
ci: fix syntax
evertonfraga Sep 14, 2019
ec96e31
Merge branch 'dev' of github.com:ethereum/grid-ui into dev
evertonfraga Sep 14, 2019
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

@@ -16,8 +16,15 @@ jobs:

- run: yarn test --verbose --coverage

- run: CI=false yarn deploy $CIRCLE_BRANCH

- run:
name: "Building and deploying"
command: |
if [[ "${CIRCLE_BRANCH}" == 'master' ]] || [[ "${CIRCLE_BRANCH}" == 'dev' ]]; then
CI=false yarn deploy $CIRCLE_BRANCH;
else
CI=false yarn package alpha;
fi;
- store_artifacts:
path: build/grid-ui*.zip

@@ -1,6 +1,6 @@
{
"name": "grid-ui",
"version": "0.1.30",
"version": "1.6.0",
"private": true,
"main": "./app/shell-electron.js",
"homepage": "./",
@@ -33,10 +33,12 @@
"ethereum-react-components": "^1.13.11",
"lodash": "^4.17.13",
"moment": "^2.24.0",
"notistack": "^0.9.0",
"numeral": "^2.0.6",
"prop-types": "^15.6.2",
"react": "^16.4.1",
"react-codemirror2": "^6.0.0",
"react-desktop": "^0.3.9",
"react-dom": "^16.4.1",
"react-md-spinner": "^0.3.0",
"react-minimal-pie-chart": "^3.5.0",
@@ -1,11 +1,12 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { MuiThemeProvider } from '@material-ui/core/styles'
import { SnackbarProvider } from 'notistack'
import CssBaseline from '@material-ui/core/CssBaseline'
import NavTabs from './NavTabs'
import { darkTheme, lightTheme } from '../theme'
import HelpFab from './shared/HelpFab'
import ErrorBoundary from './GenericErrorBoundary'
import Plugins from './Plugins'

export default class NewApp extends Component {
static displayName = 'App'
@@ -18,11 +19,20 @@ export default class NewApp extends Component {
const { themeMode } = this.props
return (
<MuiThemeProvider theme={themeMode === 'light' ? lightTheme : darkTheme}>
<CssBaseline />
<HelpFab />
<ErrorBoundary>
<NavTabs />
</ErrorBoundary>
<SnackbarProvider
maxSnack={10}
anchorOrigin={{
vertical: 'bottom',
horizontal: 'right'
}}
autoHideDuration={null}
>
<CssBaseline />
<HelpFab />
<ErrorBoundary>
<Plugins />
</ErrorBoundary>
</SnackbarProvider>
</MuiThemeProvider>
)
}
@@ -6,14 +6,14 @@ import CardHeader from '@material-ui/core/CardHeader'
import CardContent from '@material-ui/core/CardContent'
import CardMedia from '@material-ui/core/CardMedia'
import CardActions from '@material-ui/core/CardActions'
import Badge from '@material-ui/core/Badge'
import Typography from '@material-ui/core/Typography'
import moment from 'moment'
import Button from '../shared/Button'
import Grid from '../../API/Grid'

const styles = {
card: {
minWidth: 275,
background: '#222428'
},
media: {
@@ -28,7 +28,12 @@ const styles = {
class AppItem extends React.Component {
static propTypes = {
classes: PropTypes.object.isRequired,
app: PropTypes.object
app: PropTypes.object,
badge: PropTypes.number
}

static defaultProps = {
badge: 0
}

state = {}
@@ -39,7 +44,7 @@ class AppItem extends React.Component {
}

render() {
const { classes, app } = this.props
const { classes, app, badge } = this.props

const { name, lastUpdated, description, screenshot } = app

@@ -56,7 +61,9 @@ class AppItem extends React.Component {
<Typography component="p">{description}</Typography>
</CardContent>
<CardActions>
<Button onClick={this.handleAppLaunch}>Launch</Button>
<Badge color="secondary" badgeContent={badge}>
<Button onClick={this.handleAppLaunch}>Launch</Button>
</Badge>
</CardActions>
</Card>
)
@@ -13,7 +13,7 @@ class AppsOverview extends React.Component {

return (
<MuiThemeProvider theme={darkTheme}>
<div style={{ width: '100%', paddingBottom: '64px' }}>
<div style={{ margin: '24px' }}>
<Grid container spacing={24}>
{apps.length ? (
apps.map(app => (
@@ -207,7 +207,7 @@ export default NodeInfoBox
const StyledSubmenuContainer = styled.div`
width: 220px;
border-radius: 5px;
z-index: 1000;
z-index: 10000;
cursor: default;
transition: 150ms linear all, 1ms linear top;
@@ -225,8 +225,8 @@ const StyledSubmenuContainer = styled.div`
/* Apply css arrow to topLeft of box */
position: absolute;
left: 85px;
top: 6px;
left: 354px;
top: 38px;
&::before {
content: '';
@@ -24,8 +24,9 @@ class NodeInfoDot extends Component {

componentDidUpdate(prevProps) {
const { plugin } = this.props

if ((prevProps.plugin.blockNumber || 0) !== (plugin.blockNumber || 0)) {
const { blockNumber: oldBlockNumber } = prevProps.plugin.active
const { blockNumber: newBlockNumber } = plugin.active
if ((Number(newBlockNumber) || 0) > (Number(oldBlockNumber) || 0)) {
this.pulseForNewBlock()
}
}
@@ -28,6 +28,10 @@ class NodeInfo extends Component {
}, 1000)
}

componentWillUnmount() {
clearInterval(this.diffInterval)
}

render() {
const { pluginState, selectedPlugin } = this.props
const plugin = pluginState[selectedPlugin]
@@ -1,11 +1,12 @@
import React, { Component } from 'react'
import React, { Component, Fragment } from 'react'
import { connect } from 'react-redux'
import PropTypes from 'prop-types'
import { withStyles } from '@material-ui/core/styles'
import Typography from '@material-ui/core/Typography'
import Grid from '@material-ui/core/Grid'
import GridAPI from '../../../API/Grid'
import AppItem from '../../Apps/AppItem'
import DependencyCard from './DependencyCard'

const styles = {
spacing: {
@@ -27,6 +28,7 @@ const styles = {
class AboutPlugin extends Component {
static propTypes = {
plugin: PropTypes.object.isRequired,
pluginState: PropTypes.object.isRequired,
classes: PropTypes.object.isRequired
}

@@ -48,13 +50,13 @@ class AboutPlugin extends Component {

const renderList = links.map(link => (
<a href={link.url} className={classes.link} key={link.name}>
<Typography variant="body1">{link.name}</Typography>
<Typography variant="body2">{link.name}</Typography>
</a>
))

return (
<div>
<Typography variant="body1" className={classes.headerText}>
<Typography variant="h6" className={classes.headerText}>
{name}
</Typography>
{renderList}
@@ -63,16 +65,15 @@ class AboutPlugin extends Component {
}

renderApps() {
const { plugin, classes } = this.props
const { plugin, classes, pluginState } = this.props
const { gridApps } = this.state
const { apps } = plugin.about

if (!apps || !gridApps) {
return null
}

const renderList = (
<Grid container spacing={24} style={{ marginTop: 0 }}>
<Grid container spacing={16} style={{ marginTop: 0 }}>
{apps.map(app => {
const gridApp = gridApps.find(thisApp => thisApp.url === app.url)
if (gridApp) {
@@ -82,9 +83,13 @@ class AboutPlugin extends Component {
if (app.dependencies) {
finalApp.dependencies = app.dependencies
}
let badge = 0
if (pluginState[plugin.name].appBadges[gridApp.id]) {
badge = pluginState[plugin.name].appBadges[gridApp.id]
}
return (
<Grid item xs={6} key={gridApp.name}>
<AppItem app={finalApp} />
<Grid item xs={4} key={gridApp.name}>
<AppItem app={finalApp} badge={badge} />
</Grid>
)
}
@@ -96,7 +101,7 @@ class AboutPlugin extends Component {
return (
<div>
<Typography
variant="body1"
variant="h6"
className={classes.headerText}
style={{ marginTop: 30 }}
>
@@ -107,9 +112,32 @@ class AboutPlugin extends Component {
)
}

renderDependencies = dependencies => {
const { classes } = this.props
const { runtime: runtimeDependencies } = dependencies
return (
<Fragment>
<Typography
variant="h6"
style={{ marginTop: 30 }}
className={classes.headerText}
>
Dependencies
</Typography>
<Grid container spacing={24} style={{ marginTop: 30 }}>
<Grid item xs={4}>
{runtimeDependencies.map(dependency => (
<DependencyCard dependency={dependency} key={dependency.name} />
))}
</Grid>
</Grid>
</Fragment>
)
}

render() {
const { plugin, classes } = this.props
const { about } = plugin
const { about, dependencies } = plugin

if (!about) return <p>Plugin has no about data.</p>

@@ -120,15 +148,15 @@ class AboutPlugin extends Component {
<div>
<div>
<Typography
variant="body1"
variant="h6"
className={classes.headerText}
style={{ marginTop: 30 }}
>
Description
</Typography>
</div>
<div>
<Typography variant="body1">{description}</Typography>
<Typography variant="body2">{description}</Typography>
</div>
</div>
)}
@@ -143,14 +171,17 @@ class AboutPlugin extends Component {
{this.renderLinks(community, 'Community')}
</Grid>
</Grid>
{dependencies && this.renderDependencies(dependencies)}
{this.renderApps()}
</div>
)
}
}

function mapStateToProps() {
return {}
function mapStateToProps(state) {
return {
pluginState: state.plugin
}
}

export default connect(mapStateToProps)(withStyles(styles)(AboutPlugin))
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.