Skip to content
Snippets Groups Projects
Select Git revision
  • ef26ae0c256297a881111bf3d1a7578387f5248a
  • demo_ci_gitlab_pages default
  • demo_gitlab_ci
  • 5-images-in-annotations
  • 5-final-images
  • 5-chpk-images-in-annot
  • tetras-main protected
  • 5-rebase-images-in-annot
  • 5-wip-images-in-annot
  • tmp
  • 1-edit-annotations-on-videos
  • 5-old-images-in-annotations
  • old_demo_ci_gitlab_pages
  • images_annotations
  • wip
  • devsetup
  • wip-annot-video-ui
  • wip-annotations-on-videos
  • master
  • v0.4.0_react16
  • wip-debugging-annotations
21 results

annotationCreationCompanionWindow.js

Blame
  • Forked from IIIF / Mirador / Mirador annotations
    Source project has a limited visibility.
    annotationCreationCompanionWindow.js 1.71 KiB
    import * as actions from 'mirador/dist/es/src/state/actions';
    import { getCompanionWindow } from 'mirador/dist/es/src/state/selectors/companionWindows';
    import { getWindowCurrentTime, getWindowPausedStatus } from 'mirador/dist/es/src/state/selectors/window';
    import { getVisibleCanvases } from 'mirador/dist/es/src/state/selectors/canvases';
    import { getPresentAnnotationsOnSelectedCanvases } from 'mirador/dist/es/src/state/selectors/annotations';
    import AnnotationCreation from '../AnnotationCreation';
    
    /** */
    const mapDispatchToProps = (dispatch, { id, windowId }) => ({
      closeCompanionWindow: () => dispatch(
        actions.removeCompanionWindow(windowId, id),
      ),
      receiveAnnotation: (targetId, annoId, annotation) => dispatch(
        actions.receiveAnnotation(targetId, annoId, annotation),
      ),
      setCurrentTime: (...args) => dispatch(actions.setWindowCurrentTime(windowId, ...args)),
      setSeekTo: (...args) => dispatch(actions.setWindowSeekTo(windowId, ...args)),
    });
    
    /** */
    function mapStateToProps(state, { id: companionWindowId, windowId }) {
      const currentTime = getWindowCurrentTime(state, { windowId });
      const cw = getCompanionWindow(state, { companionWindowId, windowId });
      const { annotationid } = cw;
      const canvases = getVisibleCanvases(state, { windowId });
    
      const annotation = getPresentAnnotationsOnSelectedCanvases(state, { windowId })
        .flatMap((annoPage) => annoPage.json.items || [])
        .find((annot) => annot.id === annotationid);
    
      return {
        annotation,
        canvases,
        config: state.config,
        currentTime,
        paused: getWindowPausedStatus(state, { windowId }),
      };
    }
    
    export default {
      companionWindowKey: 'annotationCreation',
      component: AnnotationCreation,
      mapDispatchToProps,
      mapStateToProps,
    };