import React, { Component } from 'react'
import { connect } from 'react-redux'
import { MediaCitation } from '../components.media'
import { Arrow } from '../../nav/viewer.icons'
export const Intro = ({ paragraph, media, onAnnotationClick }) => {
const annotation = paragraph.annotations[0]
const item = media.lookup[annotation.settings.media_id]
// console.log(item)
const style = {
backgroundImage: 'url(' + item.settings.file.url + ')',
}
let lines = []
if (annotation.settings.title) {
lines = lines.concat(annotation.settings.title.split(/
]*>/))
}
if (annotation.settings.subtitle) {
lines = lines.concat(annotation.settings.subtitle.split(/
]*>/))
}
return (
{lines.map((line, i) => (
))}
)
}
const ScheduleComponent = ({ episodes }) => {
const currentEpisode = episodes.lookup[episodes.order[0]].settings
return (
{'Animism on e-flux.com is the ninth iteration of the exhibition and overall '}
{'research project presented at Extra City and MuHKA, Antwerp, 2010; Kunsthalle '}
{'Bern, 2010; Generali Foundation, Vienna, 2011; the Haus der Kulturen der Welt, '}
{'Berlin, 2012; e-flux, New York, 2012; OCAT Shenzhen, 2013; Times Museum Seoul, '}
{'2013; and Ashkal Alwan, Beirut, 2014. Presented here in its digital iteration, '}
{'the exhibition will be released in four episodes starting October 2020.'}
Schedule
{episodes.order.map(id => {
const episode = episodes.lookup[id]
return (
{episode.release_date}
{'Episode '}{episode.episode_number}{': '}
{episode.title}
)
})}
Curator
{currentEpisode.curator}
Author
{currentEpisode.author}
Artists
{currentEpisode.artists}
)
}
const CreditsComponent = ({ episodes, venues }) => {
const currentEpisode = episodes.lookup[episodes.order[0]].settings
// const [ open, setOpen ] = React.useState(-1)
const lines = currentEpisode.credits.split("\n").map((s, i) => {
if (s[0] === "#") {
return (
{s.replace("#", "").trim()}
)
}
return (
)
})
return (
{lines}
Previous venues
{venues.order.map(id => (
))}
)
}
const CreditsVenue = ({ venue }) => {
const [ open, setOpen ] = React.useState(-1)
const isOpen = open === venue.id
const curators = venue.settings.curator.trim().split('\n')
const artists = venue.settings.artists.trim().split('\n')
const publication_heading = venue.settings.publication_heading
const publication = venue.settings.publication.trim().split('\n')
return (
setOpen(isOpen ? -1 : venue.id)}>
{venue.title}
{venue.date}
{isOpen && (
{curators.length > 1 ? 'Curators' : 'Curator'}
{curators.map((line, i) => (
{line}
))}
Artists
{artists.map((line, i) => (
{line}
))}
{publication.length > 1 && (
{publication_heading}
{publication.map((line, i) => (
))}
)}
)}
)
}
const mapStateToProps = state => ({
episodes: state.episode.index,
venues: state.venue.index,
})
export const Schedule = connect(mapStateToProps)(ScheduleComponent)
export const Credits = connect(mapStateToProps)(CreditsComponent)