summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/utils/annotation.utils.js
blob: 1af08a2b563be6ee546f4b1f2ba2214881a3eee9 (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
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.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
  }
}