clientjs/packages/dashboard-components/src/ui/DocumentAnnotations.jsx
changeset 0 5f4fcbc80b37
equal deleted inserted replaced
-1:000000000000 0:5f4fcbc80b37
       
     1 import React from 'react';
       
     2 import PropTypes from 'prop-types';
       
     3 
       
     4 import DocumentAnnotation from './DocumentAnnotation';
       
     5 
       
     6 const AnnotationsList = ({ document, metacategories, categories }) => {
       
     7   const { annotations } = document;
       
     8 
       
     9   return annotations.map(
       
    10     annotation => (
       
    11       <DocumentAnnotation
       
    12         key={annotation.id}
       
    13         annotation={annotation}
       
    14         metacategories={metacategories}
       
    15         categories={categories}
       
    16       />
       
    17     ),
       
    18   );
       
    19 };
       
    20 
       
    21 AnnotationsList.propTypes = {
       
    22   document: PropTypes.object.isRequired,
       
    23   metacategories: PropTypes.arrayOf(PropTypes.object).isRequired,
       
    24   categories: PropTypes.arrayOf(PropTypes.string).isRequired,
       
    25 };
       
    26 
       
    27 
       
    28 const DocumentAnnotations = ({
       
    29   document,
       
    30   metacategories,
       
    31   categories,
       
    32   viaBaseUrl,
       
    33 }) => (
       
    34   <div className="card">
       
    35     <div className="card-header">
       
    36       <a href={viaBaseUrl + document.uri} target="_blank" rel="noopener noreferrer">{ document.title }</a>
       
    37     </div>
       
    38 
       
    39     <ul className="list-group list-group-flush small">
       
    40       <AnnotationsList
       
    41         document={document}
       
    42         metacategories={metacategories}
       
    43         categories={categories}
       
    44       />
       
    45     </ul>
       
    46   </div>
       
    47 );
       
    48 
       
    49 DocumentAnnotations.propTypes = {
       
    50   document: PropTypes.object.isRequired,
       
    51   metacategories: PropTypes.arrayOf(PropTypes.object).isRequired,
       
    52   categories: PropTypes.arrayOf(PropTypes.string).isRequired,
       
    53   viaBaseUrl: PropTypes.string.isRequired,
       
    54 };
       
    55 
       
    56 export default DocumentAnnotations;