aboutsummaryrefslogtreecommitdiff
path: root/src/CustomAnalyzer.js
diff options
context:
space:
mode:
authorDeterminant <ted.sybil@gmail.com>2019-02-06 21:13:23 -0500
committerDeterminant <ted.sybil@gmail.com>2019-02-06 21:13:23 -0500
commitd88b873c63d8ad5b5336b509f8a4ee35a583e279 (patch)
tree787ac45d6cc5cac30b7939314a37c283ba161c34 /src/CustomAnalyzer.js
parenta8b8cd7d51cafea253f3e7b2e3d1e76054d97135 (diff)
add snackbar and dialog
Diffstat (limited to 'src/CustomAnalyzer.js')
-rw-r--r--src/CustomAnalyzer.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/CustomAnalyzer.js b/src/CustomAnalyzer.js
index f140151..62a8e39 100644
--- a/src/CustomAnalyzer.js
+++ b/src/CustomAnalyzer.js
@@ -18,6 +18,7 @@ import { msgType, MsgClient } from './msg';
import { Pattern, PatternEntry } from './pattern';
import PieChart from './Chart';
import PatternTable from './PatternTable';
+import Snackbar from './Snackbar';
const default_chart_data = [
{name: 'Work', value: 10, color: cyan[300]},
@@ -43,6 +44,9 @@ class CustomAnalyzer extends React.Component {
endDate: null,
patternGraphData: default_chart_data,
calendarGraphData: default_chart_data,
+ snackBarOpen: false,
+ snackBarMsg: 'unknown',
+ snackBarVariant: 'error'
};
constructor(props) {
@@ -57,6 +61,8 @@ class CustomAnalyzer extends React.Component {
this.msgClient.sendMsg({ type: msgType.getCalendars, data: { enabledOnly: true }}).then(msg => {
this.setState({ calendars: msg.data });
});
+ gapi.getLoggedIn().then(b => !b &&
+ this.handleSnackbarOpen('Not logged in. Operating in offline mode.', 'warning'));
}
updatePattern = (field, idx, value) => {
@@ -171,11 +177,25 @@ class CustomAnalyzer extends React.Component {
this.setState({ startDate: null, endDate: null });
}
+ handleSnackbarClose = (event, reason) => {
+ if (reason === 'clickaway') return;
+ this.setState({ snackBarOpen: false });
+ }
+
+ handleSnackbarOpen = (msg, variant) => {
+ this.setState({ snackBarOpen: true, snackBarMsg: msg, snackBarVariant: variant });
+ }
+
render() {
const { classes } = this.props;
return (
<Grid container spacing={16}>
+ <Snackbar
+ message={this.state.snackBarMsg}
+ open={this.state.snackBarOpen}
+ variant={this.state.snackBarVariant}
+ onClose={this.handleSnackbarClose}/>
<Grid item md={6} xs={12}>
<FormControl fullWidth={true}>
<FormGroup>