Browse Source

added filter for single canvas

main
astanley 2 weeks ago
parent
commit
aa59116710
  1. 32
      build/src/AllAnnotationsPanel.jsx
  2. 4
      dist/main.js
  3. 2
      islandora_mirador_annotations.libraries.yml
  4. 1
      islandora_mirador_annotations.module

32
build/src/AllAnnotationsPanel.jsx

@ -1,4 +1,5 @@
import React, { useEffect, useMemo, useState } from 'react';
import { useSelector } from 'react-redux';
import {
ConnectedCompanionWindow as CompanionWindow,
OSDReferences,
@ -578,7 +579,35 @@ const allAnnotationsPanelPlugin = {
}),
};
const AllAnnotationsButton = () => <AllAnnotationsIcon fontSize="small" />;
const AllAnnotationsButton = () => {
const canvasCount = useSelector((state) => {
// Islandora's Mirador viewer normally contains a single Mirador window.
const windowId = Object.keys(state?.windows || {})[0];
if (!windowId) return 0;
const manifestId = state.windows?.[windowId]?.manifestId;
const manifest = state.manifests?.[manifestId]?.json;
if (Array.isArray(manifest?.items)) {
return manifest.items.filter(
(item) => item?.type === 'Canvas'
).length;
}
if (Array.isArray(manifest?.sequences?.[0]?.canvases)) {
return manifest.sequences[0].canvases.length;
}
return 0;
});
if (canvasCount <= 1) {
return null;
}
return <AllAnnotationsIcon fontSize="small" />;
};
AllAnnotationsButton.value = PANEL_KEY;
const allAnnotationsButtonPlugin = {
@ -590,3 +619,4 @@ const allAnnotationsButtonPlugin = {
};
export { allAnnotationsPanelPlugin, allAnnotationsButtonPlugin };

4
dist/main.js vendored

File diff suppressed because one or more lines are too long

2
islandora_mirador_annotations.libraries.yml

@ -1,5 +1,5 @@
annotated_mirador:
version: 0.2.5
version: 0.2.8
js:
dist/main.js: { minified: true, preprocess: false }
css:

1
islandora_mirador_annotations.module

@ -70,6 +70,7 @@ function islandora_mirador_annotations_js_settings_alter(array &$settings, Attac
// Core otherwise only draws annotations while the stock annotations companion window is open.
$viewer['window']['forceDrawAnnotations'] = TRUE;
$viewer['window']['panels'] = $viewer['window']['panels'] ?? [];
$viewer['window']['panels']['annotations'] = TRUE;
$viewer['window']['panels']['allAnnotations'] = TRUE;
$viewer['translations'] = $viewer['translations'] ?? [];

Loading…
Cancel
Save