import React from 'react'; import { action, observable } from 'mobx'; import { observer } from 'mobx-react'; import { bindAll } from 'lodash'; import { BrowserRouter as Router, Route, } from 'react-router-dom'; import App from 'grommet/components/App'; import Sidebar from 'react-sidebar'; import 'hippo/config-data'; import 'hippo/screen-definitions'; import Menu from './menu'; import Screen from './screen'; import LoginDialog from '../access/login-dialog'; import './styles.scss'; const DOCKED_WIDTH_BREAKPOINT = 950; function NoMatch() { return (

Not Found

); } @observer class Workspace extends React.Component { @observable sidebarOpen = true; @observable sidebarDocked = false; constructor() { super(); bindAll(this, 'onMediaQueryChanged', 'onSetSidebarOpen'); this.mql = window.matchMedia(`(min-width: ${DOCKED_WIDTH_BREAKPOINT}px)`); this.mql.addListener(this.onMediaQueryChanged); this.onMediaQueryChanged(); } componentWillUnmount() { this.mql.removeListener(this.onMediaQueryChanged); } @action onMediaQueryChanged() { this.sidebarDocked = this.mql.matches; } @action onSetSidebarOpen(open) { this.sidebarOpen = open; } render() { return ( } open={this.sidebarOpen} docked={this.sidebarDocked} onSetOpen={this.onSetSidebarOpen} > ); } } export default function WorkspaceRoot() { return ( ); }