X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/0a97d1cc5eedb11445af4b675c57b8cbdb4f1af3..215d0b7a7e1f69765c5f2a1139e52d8c427066eb:/src/views-components/side-panel/side-panel.tsx diff --git a/src/views-components/side-panel/side-panel.tsx b/src/views-components/side-panel/side-panel.tsx index fffe3344..b4caef23 100644 --- a/src/views-components/side-panel/side-panel.tsx +++ b/src/views-components/side-panel/side-panel.tsx @@ -2,17 +2,19 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles'; -import { ArvadosTheme } from '~/common/custom-theme'; -import { SidePanelTree, SidePanelTreeProps } from '~/views-components/side-panel-tree/side-panel-tree'; -import { compose, Dispatch } from 'redux'; +import { ArvadosTheme } from 'common/custom-theme'; +import { SidePanelTree, SidePanelTreeProps } from 'views-components/side-panel-tree/side-panel-tree'; +import { Dispatch } from 'redux'; import { connect } from 'react-redux'; -import { navigateFromSidePanel } from '../../store/side-panel/side-panel-action'; -import { Grid } from '@material-ui/core'; -import { SidePanelButton } from '~/views-components/side-panel-button/side-panel-button'; +import { navigateFromSidePanel } from 'store/side-panel/side-panel-action'; +import { Grid, Tooltip, IconButton } from '@material-ui/core'; +import { SidePanelButton } from 'views-components/side-panel-button/side-panel-button'; +import { RootState } from 'store/store'; +import MenuIcon from "@material-ui/icons/Menu"; -const DRAWER_WITDH = 240; +const DRAWER_WIDTH = 240; type CssRules = 'root'; @@ -22,7 +24,7 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ borderRight: `1px solid ${theme.palette.divider}`, height: '100%', overflowX: 'auto', - width: DRAWER_WITDH, + width: DRAWER_WIDTH, } }); @@ -32,11 +34,36 @@ const mapDispatchToProps = (dispatch: Dispatch): SidePanelTreeProps => ({ } }); -export const SidePanel = compose( - withStyles(styles), - connect(undefined, mapDispatchToProps) -)(({ classes, ...props }: WithStyles & SidePanelTreeProps) => - - - - ); \ No newline at end of file +const mapStateToProps = ({ router }: RootState) => ({ + currentRoute: router.location ? router.location.pathname : '', +}); + +export const SidePanel = withStyles(styles)( + connect(mapStateToProps, mapDispatchToProps)( + ({ classes, ...props }: WithStyles & SidePanelTreeProps & { currentRoute: string }) => + + + + + )); + +type collapseButtonIconProps = { + sidePanelIsCollapsed: boolean; + toggleSidePanel: (collapsedState: boolean) => void +} + +const collapseButtonIconStyles = { + menuIcon: { + height: '4rem', + width: '4rem', + paddingBottom: '0.25rem' + } +} + +export const CollapseLeftPanelTrigger = (props: collapseButtonIconProps) =>{ + return + {props.toggleSidePanel(props.sidePanelIsCollapsed)}}> + + + + }; \ No newline at end of file