ElectronicBabylonianLiterature/ebl-frontend

View on GitHub
src/bibliography/ui/ReferenceList.tsx

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import React from 'react'
import _ from 'lodash'
import Reference, { groupReferences } from 'bibliography/domain/Reference'
import Citation from './Citation'

import './ReferenceList.css'

function ReferenceGroup({
  references,
}: {
  references: ReadonlyArray<Reference>
}): JSX.Element {
  return (
    <ol className="ReferenceList__list">
      {references.map((reference, index) => (
        <li key={index}>
          <Citation reference={reference} />
        </li>
      ))}
    </ol>
  )
}

export default function ReferenceList({
  references,
}: {
  references: ReadonlyArray<Reference>
}): JSX.Element {
  return (
    <>
      {_.isEmpty(references) ? (
        <p>No references</p>
      ) : (
        groupReferences(references).map(([type, group]) => (
          <ReferenceGroup key={type} references={group} />
        ))
      )}
    </>
  )
}