From d88b873c63d8ad5b5336b509f8a4ee35a583e279 Mon Sep 17 00:00:00 2001 From: Determinant Date: Wed, 6 Feb 2019 21:13:23 -0500 Subject: add snackbar and dialog --- src/CustomAnalyzer.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/CustomAnalyzer.js') 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 ( + -- cgit v1.2.3