|
|
|
@ -1,4 +1,5 @@ |
|
|
|
import React, { useEffect, useMemo, useState } from 'react'; |
|
|
|
import React, { useEffect, useMemo, useState } from 'react'; |
|
|
|
|
|
|
|
import { useSelector } from 'react-redux'; |
|
|
|
import { |
|
|
|
import { |
|
|
|
ConnectedCompanionWindow as CompanionWindow, |
|
|
|
ConnectedCompanionWindow as CompanionWindow, |
|
|
|
OSDReferences, |
|
|
|
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; |
|
|
|
AllAnnotationsButton.value = PANEL_KEY; |
|
|
|
|
|
|
|
|
|
|
|
const allAnnotationsButtonPlugin = { |
|
|
|
const allAnnotationsButtonPlugin = { |
|
|
|
@ -590,3 +619,4 @@ const allAnnotationsButtonPlugin = { |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
export { allAnnotationsPanelPlugin, allAnnotationsButtonPlugin }; |
|
|
|
export { allAnnotationsPanelPlugin, allAnnotationsButtonPlugin }; |
|
|
|
|
|
|
|
|
|
|
|
|