import React from 'react'; import ReactDOM from 'react-dom'; import * as serviceWorker from './serviceWorker'; import { withStyles, MuiThemeProvider } from '@material-ui/core/styles'; import Button from '@material-ui/core/Button'; import IconButton from '@material-ui/core/IconButton'; import RefreshIcon from '@material-ui/icons/Refresh'; import Logo from './Logo'; import Typography from '@material-ui/core/Typography'; import theme from './theme'; import CssBaseline from '@material-ui/core/CssBaseline'; import { PatternEntry } from './pattern'; import { Duration } from './duration'; import { msgType, MsgClient } from './msg'; import { StyledPatternPieChart } from './Chart'; import Divider from '@material-ui/core/Divider'; import moment from 'moment'; function openOptions() { chrome.tabs.create({ url: "index.html" }); } const styles = theme => ({ content: { padding: theme.spacing.unit * 1, overflow: 'auto', }, buttons: { height: 48, lineHeight: '48px' }, buttonSpacer: { marginBottom: theme.spacing.unit * 2, }, }); class Popup extends React.Component { state = { patternGraphData: [], loading: false, }; constructor(props) { super(props); this.msgClient = new MsgClient('main'); this.loading = true; this.loadGraphData(false).then(() => this.setState({ loading: false })); } loadGraphData(sync) { return this.msgClient.sendMsg({ type: msgType.getGraphData, data: { sync } }).then(msg => { this.setState({ patternGraphData: msg.data.map(d => ({ name: d.name, data: d.data, start: new Date(d.start), end: new Date(d.end) }))}); }); } render() { let { classes } = this.props; let data = this.state.patternGraphData; return (
( new Promise(resolver => ( this.setState({ loading: true }, resolver))) .then(() => this.loadGraphData(true)) .then(() => this.setState({ loading: false })) )}>
{ data.map((d, idx) => (
{d.name} {`${moment(d.start).format('ddd, MMM Do, YYYY')} - ${moment(d.end).format('ddd, MMM Do, YYYY')}`} {(d.data.some(dd => dd.value > 1e-3) && ) || No data available } {idx + 1 < data.length && }
)) }
); } } const StyledPopup = withStyles(styles)(Popup); ReactDOM.render(, document.getElementById('root')); // If you want your app to work offline and load faster, you can change // unregister() to register() below. Note this comes with some pitfalls. // Learn more about service workers: http://bit.ly/CRA-PWA serviceWorker.unregister();