UNPKG

d2-ui

Version:
102 lines (93 loc) 3.13 kB
import React from 'react'; import ReactDOM from 'react-dom'; import PropTypes from 'prop-types'; import log from 'loglevel'; import getMuiTheme from 'material-ui/styles/getMuiTheme'; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; import RaisedButton from 'material-ui/RaisedButton'; import Snackbar from 'material-ui/Snackbar'; import d2Lib from 'd2/lib/d2'; import FavoritesDialog from '../../packages/favorites/src/FavoritesDialog'; class FavoritesDialogExample extends React.Component { state = { favoritesDialog: { open: false, type: 'chart', }, snackbar: { open: false, message: '', }, }; toggleDialog = type => () => { this.setState({ favoritesDialog: { type, open: !this.state.favoritesDialog.open, }, }); }; onFavoriteSelect = id => { this.setState({ snackbar: { open: true, message: `Selected favorite ID: ${id}`, }, }); }; onSnackbarClose = () => { this.setState({ snackbar: { open: false, message: '', }, }); }; render = () => ( <MuiThemeProvider muiTheme={getMuiTheme()}> <div> <div style={{ padding: 16 }}> <RaisedButton onClick={this.toggleDialog('chart')} label="Open charts favorites" /> </div> <div style={{ padding: 16 }}> <RaisedButton onClick={this.toggleDialog('pivot')} label="Open pivot table favorites" /> </div> <div style={{ padding: 16 }}> <RaisedButton onClick={this.toggleDialog('map')} label="Open maps favorites" /> </div> <FavoritesDialog open={this.state.favoritesDialog.open} type={this.state.favoritesDialog.type} onRequestClose={this.toggleDialog(this.state.type)} onFavoriteSelect={this.onFavoriteSelect} d2={this.props.d2} /> <Snackbar open={this.state.snackbar.open} message={this.state.snackbar.message} autoHideDuration={4000} onRequestClose={this.onSnackbarClose} /> </div> </MuiThemeProvider> ); } const el = document.getElementById('favoritesDialog'); const dhisDevConfig = DHIS_CONFIG; const baseUrl = `${dhisDevConfig.baseUrl}/api`; d2Lib.config.baseUrl = baseUrl; d2Lib .init({ baseUrl }) .then(d2 => { ReactDOM.render(<FavoritesDialogExample d2={d2}/>, el); }) .catch(error => { log.error('Failed to initialize d2', error); ReactDOM.render(<div>Failed to initialise d2: {error}</div>, el); });