import ArrowBack from '@mui/icons-material/ArrowBack'; import MenuIcon from '@mui/icons-material/Menu'; import Box from '@mui/material/Box'; import IconButton from '@mui/material/IconButton'; import Toolbar from '@mui/material/Toolbar'; import Tooltip from '@mui/material/Tooltip'; import React, { FC, ReactNode } from 'react'; import { appRouter } from 'components/router/appRouter'; import { useApi } from 'hooks/useApi'; import globalize from 'scripts/globalize'; import UserMenuButton from './UserMenuButton'; interface AppToolbarProps { buttons?: ReactNode isDrawerAvailable: boolean isDrawerOpen: boolean onDrawerButtonClick?: (event: React.MouseEvent) => void, isUserMenuAvailable?: boolean } const onBackButtonClick = () => { appRouter.back() .catch(err => { console.error('[AppToolbar] error calling appRouter.back', err); }); }; const AppToolbar: FC = ({ buttons, children, isDrawerAvailable, isDrawerOpen, onDrawerButtonClick = () => { /* no-op */ }, isUserMenuAvailable = true }) => { const { user } = useApi(); const isUserLoggedIn = Boolean(user); const isBackButtonAvailable = appRouter.canGoBack(); return ( {isUserLoggedIn && isDrawerAvailable && ( )} {isBackButtonAvailable && ( )} {children} {buttons} {isUserLoggedIn && isUserMenuAvailable && ( )} ); }; export default AppToolbar;