diff options
Diffstat (limited to 'animism-align/frontend/app/utils')
| -rw-r--r-- | animism-align/frontend/app/utils/transcript.utils.js | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/animism-align/frontend/app/utils/transcript.utils.js b/animism-align/frontend/app/utils/transcript.utils.js index 445a255..258afa1 100644 --- a/animism-align/frontend/app/utils/transcript.utils.js +++ b/animism-align/frontend/app/utils/transcript.utils.js @@ -114,16 +114,27 @@ export const buildParagraphs = (annotationOrder, sectionCount, footnoteCount) => }) // finally, go over the paragraphs to fix some timestamps - for (let i = 0; i < (paragraphs.length - 1); i++) { + const len = paragraphs.length + paragraphs.forEach((paragraph, i) => { // update the end_ts, if none is set - if (!paragraphs[i].end_ts) { - paragraphs[i].end_ts = paragraphs[i+1].start_ts - 0.1 + if (!paragraph.end_ts) { + // successive paragraphs get it from the next paragraph + if (i < len - 1) { + paragraph.end_ts = paragraph.start_ts - 0.1 + } + // the last paragraph checks its last annotation. + else { + const { annotations } = paragraph + const lastAnnotation = annotations[annotations.length - 1] + paragraph.end_ts = lastAnnotation.end_ts || (lastAnnotation.start_ts + 0.1) + } } - // push the timestamp for media to the next paragraph - if (paragraphs[i].isMedia) { - paragraphs[i].start_ts = paragraphs[i+1].start_ts - 0.01 + // push the timestamp for media up a tick so it sorts above paragraphs + if (paragraph.isMedia) { + paragraph.start_ts = paragraph.start_ts - 0.01 } - } + }) + return { paragraphs, footnotes } } |
