// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from "react"; import { Toolbar, StyleRulesCallback, IconButton, Tooltip, Grid, WithStyles, withStyles } from "@material-ui/core"; import { DetailsIcon } from "~/components/icon/icon"; import { Breadcrumbs } from "~/views-components/breadcrumbs/breadcrumbs"; import { connect } from 'react-redux'; import { RootState } from '~/store/store'; import * as Routes from '~/routes/routes'; import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action'; import RefreshButton from "~/components/refresh-button/refresh-button"; type CssRules = "infoTooltip"; const styles: StyleRulesCallback = theme => ({ infoTooltip: { marginTop: '-10px', marginLeft: '10px', } }); interface MainContentBarProps { onRefreshPage: () => void; onDetailsPanelToggle: () => void; buttonVisible: boolean; } const isButtonVisible = ({ router }: RootState) => { const pathname = router.location ? router.location.pathname : ''; return !Routes.matchWorkflowRoute(pathname) && !Routes.matchUserVirtualMachineRoute(pathname) && !Routes.matchAdminVirtualMachineRoute(pathname) && !Routes.matchRepositoriesRoute(pathname) && !Routes.matchSshKeysAdminRoute(pathname) && !Routes.matchSshKeysUserRoute(pathname) && !Routes.matchSiteManagerRoute(pathname) && !Routes.matchKeepServicesRoute(pathname) && !Routes.matchComputeNodesRoute(pathname) && !Routes.matchApiClientAuthorizationsRoute(pathname) && !Routes.matchUsersRoute(pathname) && !Routes.matchMyAccountRoute(pathname) && !Routes.matchLinksRoute(pathname); }; export const MainContentBar = connect((state: RootState) => ({ buttonVisible: isButtonVisible(state) }), { onDetailsPanelToggle: toggleDetailsPanel, })( withStyles(styles)( (props: MainContentBarProps & WithStyles & any) => {props.buttonVisible && } ) );