import React, { Component } from 'react' import { connect } from 'react-redux' import actions from 'app/actions' import { mod } from 'app/utils' import { EfluxClose } from '../nav/eflux.icons' import { Arrow } from '../nav/viewer.icons' class VitrineModal extends Component { render() { const { open, media, index } = this.props.vitrineModal if (!media) { return (
) } const className = open ? 'vitrine-modal open' : 'vitrine-modal' const id = media.settings.image_order[index] const image = (media.settings.display_lookup || media.settings.image_lookup)[id] const caption = media.settings.caption_lookup[id] return (
{caption.title && }
{caption.long_caption || caption.caption}
actions.viewer.closeVitrineModal()}> {EfluxClose}
) } } const VitrineNavigation = ({ media, index, direction }) => { const isPrev = direction === -1 const className = isPrev ? 'vitrine-nav prev' : 'vitrine-nav next' const targetIndex = mod(index + direction, media.settings.image_order.length) const id = media.settings.image_order[targetIndex] const thumbnail = media.settings.thumbnail_lookup[id] return (
actions.viewer.setVitrineIndex(targetIndex)}>
{isPrev && } {isPrev ? 'Previous' : 'Next'} {!isPrev && }
) } const VitrineCaption = ({ caption }) => { return (
{caption.author && ( {caption.author} )} {caption.title && (
{caption.title}
)} {caption.date && (
{caption.date}
)}
) } const mapStateToProps = state => ({ vitrineModal: state.viewer.vitrineModal, }) export default connect(mapStateToProps)(VitrineModal)