From 6f9ee63cf71505ad64465a5e91ad19b5b0708b78 Mon Sep 17 00:00:00 2001 From: Anthony Geourjon <anthony.geourjon@tetras-libre.fr> Date: Wed, 8 Mar 2023 11:58:22 +0100 Subject: [PATCH] Revert "WIP thumbnail on accordion." This reverts commit 08624ec6018c88c97aa16c99341a695a535eac21. --- .../AnnotationManifestsAccordion.js | 48 +++++++++++-------- .../AnnotationManifestsAccordion.js | 30 ++---------- 2 files changed, 32 insertions(+), 46 deletions(-) diff --git a/src/components/AnnotationManifestsAccordion.js b/src/components/AnnotationManifestsAccordion.js index cf76c6a91..749330b99 100644 --- a/src/components/AnnotationManifestsAccordion.js +++ b/src/components/AnnotationManifestsAccordion.js @@ -22,6 +22,26 @@ export class AnnotationManifestsAccordion extends Component { super(props); this.handleOpenManifestSideToSide = this.handleOpenManifestSideToSide.bind(this); this.handleOpenAccordion = this.handleOpenAccordion.bind(this); + + /** Search if the annotation is a manifest. URL must be resolvable for the annotation. So the manifest url is added at the end of the id */ + function searchManifestInID(id) { + const match = id.match( + /((http|https)\:\/\/[a-z0-9\/:%_+.,#?!@&=-]+)#((http|https)\:\/\/[a-z0-9\/:%_+.,#?!@&=-]+)/gi, + ); + + return match ? match[0].split('#').slice(-1) : null; + } + + const { annotation } = this.props; + + annotation.manifests = searchManifestInID(annotation.id); + if (annotation.manifests) { + annotation.manifests = annotation.manifests.map(id => ({ id })); + } else { + annotation.manifests = []; + } + + this.state = { annotation }; } @@ -37,7 +57,7 @@ export class AnnotationManifestsAccordion extends Component { handleOpenAccordion(e) { const { annotation } = this.state; /** */ - /* async function load(manifests) { + async function load(manifests) { return Promise.all(manifests.map((manifest) => fetch(manifest.id) .then((response) => response.json()) .then((data) => { @@ -55,27 +75,20 @@ export class AnnotationManifestsAccordion extends Component { this.setState({ annotation }); } }); - e.stopPropagation(); */ - - // We work onlu on the first manifest - - /* const { - fetchManifest - } = this.props; - fetchManifest(annotation.manifests[0]); */ - + e.stopPropagation(); } /** */ render() { const { - classes, t, i18n, manifests + classes, t, i18n, } = this.props; const language = i18n.language; + const { annotation } = this.state; - if (manifests === null || manifests.length === 0) { + if (annotation.manifests === null || annotation.manifests.length === 0) { return null; } @@ -89,8 +102,8 @@ export class AnnotationManifestsAccordion extends Component { <Typography className={classes.heading}>{t('manifestFound')}</Typography> </AccordionSummary> <AccordionDetails className={classes.manifestContainer}> - {manifests.map(manifest => ( - <Typography> + {annotation.manifests.map(manifest => ( + <Typography > <Card className={classes.root}> <CardActionArea> <CardContent> @@ -129,20 +142,15 @@ AnnotationManifestsAccordion.propsTypes = { { content: PropTypes.string, id: PropTypes.string, - + manifests: PropTypes.arrayOf(PropTypes.string), }, ), classes: PropTypes.objectOf(PropTypes.string), - fetchManifest: PropTypes.func.isRequired, - manifests: PropTypes.arrayOf(PropTypes.string), t: PropTypes.func.isRequired, - thumbnail: PropTypes.string, - title: PropTypes.string, }; AnnotationManifestsAccordion.defaultProps = { classes: {}, htmlSanitizationRuleSet: 'iiif', listContainerComponent: 'li', - manifests: [], }; diff --git a/src/containers/AnnotationManifestsAccordion.js b/src/containers/AnnotationManifestsAccordion.js index fa5da4364..257810aa2 100644 --- a/src/containers/AnnotationManifestsAccordion.js +++ b/src/containers/AnnotationManifestsAccordion.js @@ -5,33 +5,12 @@ import { withStyles } from '@material-ui/core/styles'; import { withPlugins } from '../extend/withPlugins'; import { AnnotationManifestsAccordion } from '../components/AnnotationManifestsAccordion'; import * as actions from '../state/actions'; -import { - getConfig, getManifest, - getManifestTitle, getManifestThumbnail, getCanvases, - getManifestLogo, getManifestProvider, getWindowManifests, - getManifestoInstance, getSequenceBehaviors, getManifestDescription, -} from '../state/selectors'; - -/** Search if the annotation is a manifest. URL must be resolvable for the annotation. So the manifest url is added at the end of the id */ -function searchManifestInID(id) { - const match = id.match( - /((http|https)\:\/\/[a-z0-9\/:%_+.,#?!@&=-]+)#((http|https)\:\/\/[a-z0-9\/:%_+.,#?!@&=-]+)/gi, - ); - - return match ? match[0].split('#').slice(-1) : null; -} +import { getConfig } from '../state/selectors'; /** For connect */ -const mapStateToProps = (state, { annotation }) => { - const manifestId = searchManifestInID(annotation.id); - - return { - htmlSanitizationRuleSet: getConfig(state).annotations.htmlSanitizationRuleSet, - manifests: new Array(manifestId), - thumbnail: getManifestThumbnail(state, { manifestId }), - title: getManifestTitle(state, { manifestId }), - }; -}; +const mapStateToProps = (state, { canvasId, windowId }) => ({ + htmlSanitizationRuleSet: getConfig(state).annotations.htmlSanitizationRuleSet, +}); /** * mapDispatchToProps - to hook up connect @@ -41,7 +20,6 @@ const mapStateToProps = (state, { annotation }) => { const mapDispatchToProps = { addResource: actions.addResource, addWindow: actions.addWindow, - }; /** For withStyles */ -- GitLab