summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/utils
diff options
context:
space:
mode:
Diffstat (limited to 'animism-align/frontend/app/utils')
-rw-r--r--animism-align/frontend/app/utils/transcript.utils.js25
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 }
}