import AppBar from '@material-ui/core/AppBar'; import Button from '@material-ui/core/Button'; import IconButton from '@material-ui/core/IconButton'; import {Theme, WithStyles, withStyles} from '@material-ui/core/styles'; import Toolbar from '@material-ui/core/Toolbar'; import Typography from '@material-ui/core/Typography'; import AccountCircle from '@material-ui/icons/AccountCircle'; import Chat from '@material-ui/icons/Chat'; import DevicesOther from '@material-ui/icons/DevicesOther'; import ExitToApp from '@material-ui/icons/ExitToApp'; import Highlight from '@material-ui/icons/Highlight'; import SupervisorAccount from '@material-ui/icons/SupervisorAccount'; import React, {Component} from 'react'; import {Link} from 'react-router-dom'; import {observer} from 'mobx-react'; const styles = (theme: Theme) => ({ appBar: { zIndex: theme.zIndex.drawer + 1, }, title: { flex: 1, display: 'flex', alignItems: 'center', }, titleName: { paddingRight: 10, }, link: { color: 'inherit', textDecoration: 'none', }, }); type Styles = WithStyles<'link' | 'titleName' | 'title' | 'appBar'>; interface IProps { loggedIn: boolean; name: string; admin: boolean; version: string; toggleTheme: VoidFunction; showSettings: VoidFunction; logout: VoidFunction; } @observer class Header extends Component { public render() { const {classes, version, name, loggedIn, admin, toggleTheme, logout} = this.props; return (
Gotify @{version}
{loggedIn && this.renderButtons(name, admin, logout)}
); } private renderButtons(name: string, admin: boolean, logout: VoidFunction) { const {classes, showSettings} = this.props; return (
{admin ? ( ) : ( '' )}
); } } export default withStyles(styles, {withTheme: true})(Header);