X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/80e9a9f467827453339ddf581584762afd1748b0..e7f606daa03a0f441aad0bc9fef05c4107634421:/src/views-components/main-content-bar/main-content-bar.tsx diff --git a/src/views-components/main-content-bar/main-content-bar.tsx b/src/views-components/main-content-bar/main-content-bar.tsx index ae86fe52..6b84bde2 100644 --- a/src/views-components/main-content-bar/main-content-bar.tsx +++ b/src/views-components/main-content-bar/main-content-bar.tsx @@ -6,27 +6,56 @@ import * as React from "react"; import { Toolbar, IconButton, Tooltip, Grid } from "@material-ui/core"; import { DetailsIcon } from "~/components/icon/icon"; import { Breadcrumbs } from "~/views-components/breadcrumbs/breadcrumbs"; -import { detailsPanelActions } from "~/store/details-panel/details-panel-action"; import { connect } from 'react-redux'; +import { RootState } from '~/store/store'; +import { matchWorkflowRoute, matchSshKeysRoute, matchRepositoriesRoute, matchVirtualMachineRoute } from '~/routes/routes'; +import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action'; interface MainContentBarProps { onDetailsPanelToggle: () => void; + buttonVisible: boolean; } -export const MainContentBar = connect(undefined, { - onDetailsPanelToggle: detailsPanelActions.TOGGLE_DETAILS_PANEL -})((props: MainContentBarProps) => - - - - - - - - - - - +const isWorkflowPath = ({ router }: RootState) => { + const pathname = router.location ? router.location.pathname : ''; + const match = matchWorkflowRoute(pathname); + return !!match; +}; + +const isVirtualMachinePath = ({ router }: RootState) => { + const pathname = router.location ? router.location.pathname : ''; + const match = matchVirtualMachineRoute(pathname); + return !!match; +}; + +const isRepositoriesPath = ({ router }: RootState) => { + const pathname = router.location ? router.location.pathname : ''; + const match = matchRepositoriesRoute(pathname); + return !!match; +}; + +const isSshKeysPath = ({ router }: RootState) => { + const pathname = router.location ? router.location.pathname : ''; + const match = matchSshKeysRoute(pathname); + return !!match; +}; + +export const MainContentBar = connect((state: RootState) => ({ + buttonVisible: !isWorkflowPath(state) && !isSshKeysPath(state) && !isRepositoriesPath(state) && !isVirtualMachinePath(state) +}), { + onDetailsPanelToggle: toggleDetailsPanel + })((props: MainContentBarProps) => + + + + + + + {props.buttonVisible && + + + + } + - - ); + );