Skip to content
Snippets Groups Projects
Select Git revision
  • 794bad3b336298e543b9b1c6ac6b7017b8701542
  • mui5-annotation-on-video-stable default
  • get_setter_canvasSizeInformations
  • fix-error-div-into-p
  • annotation-on-video-v2
  • detached
  • annotation-on-video-r17
  • mui5
  • mui5-react-18
  • jacob-test
  • annotation-on-video protected
  • master
  • test-antoinev1
  • 20-fetch-thumbnail-on-annotation
  • add-research-field
  • Save
  • add-plugin
  • 14-wip-no-seek-to
  • 14-bug-on-video-time-control
  • 9_wip_videotests
  • _upgrade_material_ui
  • latest-tetras-16
  • v3.3.0
  • v3.2.0
  • v3.1.1
  • v3.1.0
  • v3.0.0
  • v3.0.0-rc.7
  • v3.0.0-rc.6
  • v3.0.0-rc.5
  • v3.0.0-rc.4
  • v3.0.0-rc.3
  • v3.0.0-rc.2
  • v3.0.0-rc.1
  • v3.0.0-beta.10
  • v3.0.0-beta.9
  • v3.0.0-beta.8
  • v3.0.0-beta.7
  • v3.0.0-beta.6
  • v3.0.0-beta.5
  • v3.0.0-beta.3
41 results

ThumbnailCanvasGrouping.test.js

Blame
  • AnnotationSettings.js 2.20 KiB
    import React, { Component } from 'react';
    import PropTypes from 'prop-types';
    import SyncIcon from '@material-ui/icons/Sync';
    import SyncDisabledIcon from '@material-ui/icons/SyncDisabled';
    import VisibilityIcon from '@material-ui/icons/VisibilitySharp';
    import VisibilityOffIcon from '@material-ui/icons/VisibilityOffSharp';
    import MiradorMenuButton from '../containers/MiradorMenuButton';
    import { VideoViewersReferences } from '../plugins/VideoViewersReferences';
    
    /**
     * AnnotationSettings is a component to handle various annotation
     * display settings in the Annotation companion window
    */
    export class AnnotationSettings extends Component {
      /**
       * Returns the rendered component
      */
      render() {
        const {
          windowId, autoScroll, autoScrollDisabled,
          displayAll, displayAllDisabled, t, toggleAnnotationAutoScroll, toggleAnnotationDisplay,
        } = this.props;
    
        const mediaIsVideo = typeof VideoViewersReferences.get(windowId) !== 'undefined';
    
        return (
          <>
            <MiradorMenuButton
              aria-label={t(displayAll ? 'displayNoAnnotations' : 'highlightAllAnnotations')}
              onClick={toggleAnnotationDisplay}
              disabled={displayAllDisabled}
              size="small"
            >
              { displayAll ? <VisibilityIcon /> : <VisibilityOffIcon /> }
            </MiradorMenuButton>
            { mediaIsVideo && (
            <MiradorMenuButton
              aria-label={autoScroll ? 'Disable auto scroll' : 'Enable auto scroll'}
              onClick={toggleAnnotationAutoScroll}
              disabled={autoScrollDisabled}
              size="small"
            >
              { autoScroll ? <SyncIcon /> : <SyncDisabledIcon /> }
            </MiradorMenuButton>
            )}
          </>
        );
      }
    }
    
    AnnotationSettings.defaultProps = {
      autoScroll: true,
      autoScrollDisabled: true,
      toggleAnnotationAutoScroll: () => {},
    };
    AnnotationSettings.propTypes = {
      autoScroll: PropTypes.bool,
      autoScrollDisabled: PropTypes.bool,
      displayAll: PropTypes.bool.isRequired,
      displayAllDisabled: PropTypes.bool.isRequired,
      t: PropTypes.func.isRequired,
      toggleAnnotationAutoScroll: PropTypes.func,
      toggleAnnotationDisplay: PropTypes.func.isRequired,
      windowId: PropTypes.string.isRequired, // eslint-disable-line react/no-unused-prop-types
    };