UNPKG

mirador

Version:

An open-source, web-based 'multi-up' viewer that supports zoom-pan-rotate functionality, ability to display/compare simple images, and images with annotations.

66 lines (58 loc) 1.89 kB
import { useId } from 'react'; import PropTypes from 'prop-types'; import Typography from '@mui/material/Typography'; import { useTranslation } from 'react-i18next'; import CollapsibleSection from '../containers/CollapsibleSection'; import SanitizedHtml from '../containers/SanitizedHtml'; import LabelValueMetadata from '../containers/LabelValueMetadata'; import { PluginHook } from './PluginHook'; /** * ManifestInfo */ export function ManifestInfo({ manifestDescription = null, manifestLabel = null, manifestMetadata = [], manifestSummary = null, ...rest }) { const { t } = useTranslation(); const id = useId(); const pluginProps = { manifestDescription, manifestLabel, manifestMetadata, manifestSummary, ...rest, }; return ( <CollapsibleSection id={`${id}-resource`} label={t('resource')} > {manifestLabel && ( <Typography aria-labelledby={`${id}-resource ${id}-resource-heading`} id={`${id}-resource-heading`} variant="h4" component="h5" > {manifestLabel} </Typography> )} {manifestDescription && ( <Typography variant="body1"> <SanitizedHtml htmlString={manifestDescription} ruleSet="iiif" /> </Typography> )} {manifestSummary && ( <Typography variant="body1"> <SanitizedHtml htmlString={manifestSummary} ruleSet="iiif" /> </Typography> )} {manifestMetadata.length > 0 && ( <LabelValueMetadata labelValuePairs={manifestMetadata} /> )} <PluginHook targetName="ManifestInfo" {...pluginProps} /> </CollapsibleSection> ); } ManifestInfo.propTypes = { manifestDescription: PropTypes.string, manifestLabel: PropTypes.string, manifestMetadata: PropTypes.array, // eslint-disable-line react/forbid-prop-types manifestSummary: PropTypes.string, };