import React, { Component } from 'react' import { Link } from 'react-router-dom' import { connect } from 'react-redux' import { formatDateTime } from 'app/utils' import { MenuButton, SmallMenuButton, Loader } from 'app/common' import actions from 'app/actions' import { thumbnailURL } from 'app/utils/annotation.utils' import MediaIndexOptions from '../components/media.indexOptions' import MediaMenu from '../components/media.menu' // const { result, collectionLookup } = this.props class MediaIndex extends Component { componentDidMount() { // this.fetch(false) } componentDidUpdate(prevProps) { if (this.props.media.options.sort !== prevProps.media.options.sort) { this.fetch(false) } } fetch(load_more) { const { options } = this.props.media const [ sort, order ] = options.sort.split('-') actions.media.index({ episode_id: this.props.episode_id, sort, order, }) } render() { const { options } = this.props.media const { loading, lookup, order } = this.props.media.index if (loading) { return (
{order && !!order.length &&
{order.map(id => )}
}
) } if (!lookup || !order.length) { return (

{"No media"}

) } return (

Images

{order.filter(id => lookup[id].type === 'image').map(id => )}

Galleries

{order.filter(id => lookup[id].type === 'gallery').map(id => )}

Videos

{order.filter(id => lookup[id].type === 'video' && !lookup[id].medium.match(/book/i)).map(id => )}

Books

{order.filter(id => lookup[id].type === 'video' && lookup[id].medium.match(/book/i)).map(id => )}

Files

{order.filter(id => lookup[id].type === 'file').map(id => )}
) } } const MediaItem = ({ data }) => { // console.log(data) return (
{data.title}
{data.title}
{data.author}
{data.date}
) } const GalleryItem = ({ data }) => { // console.log(data) return (
{data.title}
{data.title}
{data.author}
{data.date}
) } const FileItem = ({ data }) => { // console.log(data) return (
{data.title}
{data.settings.file.url}
) } const mapStateToProps = state => ({ media: state.media, episode_id: state.site.episode.id, }) export default connect(mapStateToProps)(MediaIndex)