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 Typography from '@mui/material/Typography'; import React, { FC, ReactNode } from 'react'; import { Link } from 'react-router-dom'; import appIcon from 'assets/img/icon-transparent.png'; 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 } const onBackButtonClick = () => { appRouter.back() .catch(err => { console.error('[AppToolbar] error calling appRouter.back', err); }); }; const AppToolbar: FC = ({ buttons, children, isDrawerAvailable, isDrawerOpen, onDrawerButtonClick }) => { const { user } = useApi(); const isUserLoggedIn = Boolean(user); const isBackButtonAvailable = appRouter.canGoBack(); return ( {isUserLoggedIn && isDrawerAvailable && ( )} {isBackButtonAvailable && ( )} Jellyfin {children} {isUserLoggedIn && ( <> {buttons} )} ); }; export default AppToolbar;