import { h, Component } from 'preact' import { connect } from 'react-redux' import { bindActionCreators } from 'redux' import util from '../util' class DashboardHeader extends Component { constructor(props){ super(props) this.handleClick = this.handleClick.bind(this) } handleClick(e){ this.props.onClick && this.props.onClick() } render() { const { site } = this.props return (

{site.name} cortex

{this.renderGPUStatus()}
) } renderGPUStatus(){ const { runner } = this.props const gpu = runner.cpu if (gpu.status === 'IDLE') { return null } const task = gpu.task const eta = task.epoch ? ((task.epochs - (task.epoch || 0)) * 1000 / 60) + " minutes" : null let activityPhrase, liveMessage if (task.activity === 'live') { return (
Currently running {task.module} live on "{task.dataset}"
) } else { return (
Currently {util.gerund(task.activity)} {task.module} on {task.dataset}
{eta && Epoch: {task.epoch} / {task.epochs}, ETA {eta}
}
Want to play live?
) } } } const mapStateToProps = state => ({ runner: state.system.runner, site: state.system.site, }) const mapDispatchToProps = (dispatch, ownProps) => ({ }) export default connect(mapStateToProps, mapDispatchToProps)(DashboardHeader)