summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/utils/annotation.utils.js
blob: 89e6aeaf6194ad52e9077ab69fa5a218b9bc5306 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { timestampToSeconds } from 'app/utils'

export const annotationFadeTimings = annotation => {
  const fadeInDuration = timestampToSeconds(annotation.settings.fade_in_duration || '0') || 0.1
  const fadeOutDuration = timestampToSeconds(annotation.settings.fade_out_duration || '0') || 0.1
  const duration = timestampToSeconds(annotation.settings.duration || '0') || 0.1

  const start_ts = annotation.start_ts
  const end_ts = start_ts + duration
  const fade_in_end_ts = start_ts + fadeInDuration
  const fade_out_start_ts = end_ts - fadeOutDuration

  return {
    fadeInDuration, fadeOutDuration, duration,
    start_ts, end_ts, fade_in_end_ts, fade_out_start_ts,
  }
}

export const thumbnailURL = media => {
  // console.log(media)
  switch (media.type) {
    case 'video':
      return media.settings.video.thumbnail_url

    case 'image':
      return media.settings.thumbnail.url

    case 'gallery':
      if (media.settings.thumbnail) {
        return media.settings.thumbnail.url
      }
      if (!media.settings.image_order || !media.settings.image_order.length) {
        return null
      }
      const image_id = media.settings.image_order[0]
      return media.settings.thumbnail_lookup[image_id].url

    default:
      return null
  }
}