From 9ed29c74de68a335e85cc589983d30950a0ba044 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 14 Oct 2020 19:38:27 +0200 Subject: credits in columns --- .../views/viewer/checklist/credits.components.js | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 animism-align/frontend/app/views/viewer/checklist/credits.components.js (limited to 'animism-align/frontend/app/views/viewer/checklist/credits.components.js') diff --git a/animism-align/frontend/app/views/viewer/checklist/credits.components.js b/animism-align/frontend/app/views/viewer/checklist/credits.components.js new file mode 100644 index 0000000..6063843 --- /dev/null +++ b/animism-align/frontend/app/views/viewer/checklist/credits.components.js @@ -0,0 +1,112 @@ +import React from 'react' +import { connect } from 'react-redux' +import { Arrow } from '../nav/viewer.icons' +import { parseCredits } from 'app/utils/viewer.utils' + +const VenuesComponent = ({ venues }) => { + // const [ open, setOpen ] = React.useState(-1) + return ( +
+
+ Previous venues +
+ {venues.order.map(id => ( + + ))} +
+ ) +} + +const mapStateToProps = state => ({ + episodes: state.episode.index, + venues: state.venue.index, +}) + +export const Venues = connect(mapStateToProps)(VenuesComponent) + +export const CreditsColumns = ({ lines }) => { + const creditSections = parseCredits(lines) + return ( +
+ {creditSections.map(section => ( +
+
+ {section.title} +
+
+ {section.lines.map((line, j) => ( +
+ ))} +
+
+ ))} +
+ ) +} + +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) => ( +
+ ))} +
+
+ )} +
+ )} +
+ ) +} -- cgit v1.2.3-70-g09d2