import React, { Component } from 'react' import { useKeenSlider } from "keen-slider/react" import "keen-slider/keen-slider.min.css" import { MediaCitation } from './media.citation' import { Arrow } from 'app/views/viewer/nav/viewer.icons' export const Carousel = ({ media }) => { const { image_order, image_lookup, display_lookup, thumbnail_lookup, caption_lookup } = media.settings const [currentSlide, setCurrentSlide] = React.useState(0) const [currentCaption, setCurrentCaption] = React.useState(caption_lookup[image_order[0]]) const [sliderRef, slider] = useKeenSlider({ slidesPerView: 2, mode: "free-snap", spacing: 15, centered: true, loop: false, slideChanged: slider => { const currentSlideIndex = slider.details().relativeSlide const currentImageId = image_order[currentSlideIndex] const currentCaption = caption_lookup[currentImageId] setCurrentSlide(currentSlideIndex) setCurrentCaption(currentCaption) } }) // console.log(display_lookup) // console.log(width) return [
{image_order.map(id => { const image = display_lookup[id] // console.log(image) return ( ) })}
, , { slider.prev() }} onNext={() => { slider.next() }} onPick={index => { slider.moveToSlideRelative(index) }} /> ] } const CarouselNav = ({ currentSlide, slides, onPrev, onNext, onPick }) => { return (
{ e.stopPropagation() onPrev() }} >
{ e.stopPropagation() onNext() }} >
{[...slides.keys()].map(idx => { return (
{ onPick(idx) }} className={"dot-item" + (currentSlide === idx ? " active" : "")} >
) })}
) } const CarouselItem = ({ image }) => { return (
) }