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)