import React, { Component } from 'react'
import { connect } from 'react-redux'
import { useKeenSlider } from "app/utils/vendor/keen-slider/react"
import "keen-slider/keen-slider.min.css"
import actions from 'app/actions'
import { SpeakerIcon } from 'app/views/viewer/nav/viewer.icons'
import { MediaCitation } from './media.citation'
import { Arrow } from 'app/views/viewer/nav/viewer.icons'
const SPACING = 15
const SLIDES_PER_VIEW = 2
// obnoxious i have to do this but the slideChanged function would be "different" otherwise
let slideChangedHook = slider => console.log(slider)
let slideChanged = slider => slideChangedHook(slider)
const CarouselContainer = ({ element, media, cues, play_ts, withMouseWheel }) => {
const { image_order, caption_lookup } = media.settings
const [currentSlide, setCurrentSlide] = React.useState(0)
const [sliderRef, slider] = useKeenSlider({
slidesPerView: SLIDES_PER_VIEW,
mode: "free",
spacing: SPACING,
centered: true,
loop: false,
slideChanged: slideChanged,
withMouseWheel: withMouseWheel,
})
slideChangedHook = s => {
setCurrentSlide(s.details().relativeSlide)
}
// step thru this carousel's timeline, which is ordered in reverse BTW
if (element) {
element.timeline.some(cue => {
if (cue.start_ts < play_ts && (play_ts - cue.start_ts) < 0.5) {
let slide_index = cue.settings.seek_index
if (currentSlide < slide_index) {
setCurrentSlide(slide_index)
slider.moveToSlideRelative(slide_index)
}
return true
}
return false
})
}
const currentCaption = caption_lookup[image_order[Math.round(currentSlide)]]
return (