Skip to content
Snippets Groups Projects
Select Git revision
  • 77374373830f1cda2e64408f09defbab915da111
  • annotation-on-video default protected
  • demo_ci
  • 3-upstream-01022023
  • master
  • gh3538-captions
  • 16-adapt-for-images-annot
  • 15-api-for-annotations-on-video
  • 15-annotations-on-videos
  • video_for_annotations
  • wip-1-annotations-on-videos
  • 9-videoviewer-tests
  • 9_wip_videotests
  • 6-fix-tests-and-ci
  • _fix_ci
  • wip-webpack-from-git
16 results

css.js

Blame
  • WindowSideBar.js 1.66 KiB
    import React, { Component } from 'react';
    import PropTypes from 'prop-types';
    import classNames from 'classnames';
    import Drawer from '@material-ui/core/Drawer';
    import { withStyles } from '@material-ui/core/styles';
    import List from '@material-ui/core/List';
    import WindowSideBarButtons from '../containers/WindowSideBarButtons';
    
    /**
     * WindowSideBar
     */
    class WindowSideBar extends Component {
      /**
       * render
       * @return
       */
      render() {
        const {
          windowId, classes, sideBarOpen,
        } = this.props;
    
        return (
          <Drawer
            variant="temporary"
            className={classNames(classes.drawer)}
            classes={{ paper: classNames(classes.drawer) }}
            open={sideBarOpen}
            anchor="left"
            PaperProps={{ style: { position: 'relative' } }}
            ModalProps={{
              container: document.getElementById(windowId),
              disablePortal: true,
              hideBackdrop: true,
              style: { position: 'absolute' },
            }}
          >
            <div className={classes.toolbar} />
            <List>
              <WindowSideBarButtons windowId={windowId} />
            </List>
          </Drawer>
        );
      }
    }
    
    
    WindowSideBar.propTypes = {
      windowId: PropTypes.string.isRequired,
      classes: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types,
      sideBarOpen: PropTypes.bool,
    };
    
    WindowSideBar.defaultProps = {
      sideBarOpen: false,
    };
    
    /**
     Material UI style overrides
     @private
     */
    const styles = theme => ({
      toolbar: theme.mixins.toolbar,
      drawer: {
        overflowX: 'hidden',
        left: 0,
        width: 55,
        flexShrink: 0,
        height: '100%',
      },
      grow: {
        flexGrow: 1,
      },
    });
    
    export default withStyles(styles)(WindowSideBar);