Skip to content
Snippets Groups Projects
Select Git revision
  • e96d01be54c613c61eefc94f98d006173648e09f
  • 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

AnnotationManifestsAccordion.js

Blame
  • AnnotationManifestsAccordion.js 3.94 KiB
    import React, { Component } from 'react';
    import Accordion from '@material-ui/core/Accordion';
    import AccordionSummary from '@material-ui/core/AccordionSummary';
    import ExpandMoreIcon from '@material-ui/icons/ExpandMoreSharp';
    import Typography from '@material-ui/core/Typography';
    import AccordionDetails from '@material-ui/core/AccordionDetails';
    import PlaylistAddIcon from '@material-ui/icons/PlaylistAdd';
    import PropTypes from 'prop-types';
    import { Card, CardActionArea, CardActions, CardContent, CardMedia, Fab } from '@material-ui/core';
    import Button from '@material-ui/core/Button';
    
    /**
     * AnnotationManifestsAccordion
     */
    export class AnnotationManifestsAccordion extends Component {
      /**
       * constructor
       */
      constructor(props) {
        super(props);
        this.handleOpenManifestSideToSide = this.handleOpenManifestSideToSide.bind(this);
        this.handleOpenAccordion = this.handleOpenAccordion.bind(this);
      }
    
      /** */
      handleOpenManifestSideToSide(e, manifestId) {
        const { addResource, addWindow } = this.props;
        addResource(manifestId);
        addWindow({ manifestId });
      }
    
      /** */
      // eslint-disable-next-line class-methods-use-this,require-jsdoc
      handleOpenAccordion(e) {
        e.stopPropagation();
      }
    
      /** */
      render() {
        const {
          classes, annotation, t,
        } = this.props;
    
        /** */
        function searchManifest(text) {
          return text.match(
            /((http|https)\:\/\/[a-z0-9\/:%_+.,#?!@&=-]+)#manifest/g,
          );
        }
    
        annotation.manifests = searchManifest(annotation.content.concat(annotation.id));
    
        if (annotation.manifests === null) {
          return null;
        }
    
        return (
            <div>
              <Accordion>
                <AccordionSummary
                  expandIcon={<ExpandMoreIcon />}
                  onClick={(e) => this.handleOpenAccordion(e)}
                >
                  <Typography className={classes.heading}>Manifests found :</Typography>
                </AccordionSummary>
                <AccordionDetails>
                  <Typography>
                    {annotation.manifests.map(manifestId => (
                      <Card className={classes.root}>
                        <CardActionArea>