import React, { Component } from 'react' import { connect } from 'react-redux' import actions from 'app/actions' import { EfluxClose } from '../nav/eflux.icons' import { Arrow } from '../nav/viewer.icons' import { CURTAIN_COLOR_LOOKUP } from 'app/constants' class VitrineModal extends Component { render() { const { open, media, color, index } = this.props.vitrineModal if (!media) { return (
) } // console.log(color) const className = open ? 'vitrine-modal open' : 'vitrine-modal' const id = media.settings.image_order[index] const image = media.settings.display_lookup[id] || 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, color, index, direction }) => { let id, thumbnail const isPrev = direction === -1 let className = (isPrev ? 'vitrine-nav prev ' : 'vitrine-nav next ') + color.label // const targetIndex = mod(index + direction, media.settings.image_order.length) const targetIndex = index + direction const shouldClose = (targetIndex < 0) || (targetIndex === media.settings.image_order.length) if (shouldClose) { className += ' nav-close' } else { id = media.settings.image_order[targetIndex] thumbnail = media.settings.thumbnail_lookup[id] } return (
{ actions.viewer.vitrineGo(direction) }}>
{isPrev && } {shouldClose ? 'Close' : isPrev ? 'Previous' : 'Next'} {!isPrev && }
{!shouldClose && (
)}
) } 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)