ElectronicBabylonianLiterature/ebl-frontend

View on GitHub
src/transliteration/ui/TransliterationNotes.tsx

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import React from 'react'
import { NoteLine } from 'transliteration/domain/note-line'
import { noteNumber } from 'transliteration/domain/text'
import { LinkToLine } from './note-links'
import Markup from './markup'

export default function TransliterationNotes({
  notes,
}: {
  notes: ReadonlyMap<number, readonly NoteLine[]>
}): JSX.Element {
  return (
    <ol className="Transliteration__notes">
      {Array.from(notes).flatMap(([lineNumber, lines]) =>
        lines.map((line, index) => {
          const number = noteNumber(notes, lineNumber, index)
          return (
            <li key={`${lineNumber}-${index}`} id={`note-${number}`}>
              <LinkToLine lineNumber={lineNumber} number={number} />
              <Markup container="span" parts={line.parts} />
            </li>
          )
        })
      )}
    </ol>
  )
}