X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/cee5fc55b8b13217ac9aa540d74375a59afbb49a..31e84a9315728c2f58a26bf0e9e1d2b38326fb86:/src/views-components/main-app-bar/main-app-bar.tsx diff --git a/src/views-components/main-app-bar/main-app-bar.tsx b/src/views-components/main-app-bar/main-app-bar.tsx index 63bdd8bf..44cbe20d 100644 --- a/src/views-components/main-app-bar/main-app-bar.tsx +++ b/src/views-components/main-app-bar/main-app-bar.tsx @@ -3,99 +3,83 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from "react"; -import { AppBar, Toolbar, Typography, Grid, IconButton, Badge, Button, MenuItem, Tooltip } from "@material-ui/core"; +import { AppBar, Toolbar, Typography, Grid } from "@material-ui/core"; import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles'; -import { ArvadosTheme } from '~/common/custom-theme'; import { Link } from "react-router-dom"; -import { User, getUserFullname } from "~/models/user"; -import { SearchBar } from "~/components/search-bar/search-bar"; -import { DropdownMenu } from "~/components/dropdown-menu/dropdown-menu"; -import { DetailsIcon, NotificationIcon, UserPanelIcon, HelpIcon } from "~/components/icon/icon"; +import { User } from "~/models/user"; +import { SearchBar } from "~/views-components/search-bar/search-bar"; import { Routes } from '~/routes/routes'; import { NotificationsMenu } from "~/views-components/main-app-bar/notifications-menu"; import { AccountMenu } from "~/views-components/main-app-bar/account-menu"; -import { AnonymousMenu } from "~/views-components/main-app-bar/anonymous-menu"; +import { HelpMenu } from '~/views-components/main-app-bar/help-menu'; +import { ReactNode } from "react"; +import { AdminMenu } from "~/views-components/main-app-bar/admin-menu"; +import { pluginConfig } from '~/plugins'; -type CssRules = 'link'; +type CssRules = 'toolbar' | 'link'; -const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ +const styles: StyleRulesCallback = () => ({ link: { textDecoration: 'none', color: 'inherit' + }, + toolbar: { + height: '56px' } }); -export interface MainAppBarMenuItem { - label: string; -} - -export interface MainAppBarMenuItems { - accountMenu: MainAppBarMenuItem[]; - helpMenu: MainAppBarMenuItem[]; - anonymousMenu: MainAppBarMenuItem[]; -} - interface MainAppBarDataProps { - searchText: string; - searchDebounce?: number; - breadcrumbs: React.ComponentType; user?: User; - menuItems: MainAppBarMenuItems; - buildInfo: string; + buildInfo?: string; + children?: ReactNode; + uuidPrefix: string; + siteBanner: string; } -export interface MainAppBarActionProps { - onSearch: (searchText: string) => void; - onMenuItemClick: (menuItem: MainAppBarMenuItem) => void; - onDetailsPanelToggle: () => void; -} - -export type MainAppBarProps = MainAppBarDataProps & MainAppBarActionProps & WithStyles; +export type MainAppBarProps = MainAppBarDataProps & WithStyles; export const MainAppBar = withStyles(styles)( (props: MainAppBarProps) => { - return - + return + - - + {pluginConfig.appBarLeft || + - arvados workbench - + ({props.uuidPrefix}) + - {/* - {props.buildInfo} - */} - - - { - props.user && - } + {props.buildInfo} + } + + {pluginConfig.appBarMiddle || (props.user && props.user.isActive && )} - - { - props.user - ? <> - - - - : + + {props.user ? <> + + + {pluginConfig.appBarRight || + <> + {props.user.isAdmin && } + + } + : + pluginConfig.appBarRight || } - {/* - {props.user && } - {props.user && - - - - } - */} + {props.children} ; } );