From 6e5132d735d4a5508e8f20534a87f125d3c23ee5 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 2 Apr 2021 20:07:46 +0200 Subject: artists/credits/essay/nav css and functionality --- frontend/site/projects/museum/views/artists.js | 74 +++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 6 deletions(-) (limited to 'frontend/site/projects/museum/views/artists.js') diff --git a/frontend/site/projects/museum/views/artists.js b/frontend/site/projects/museum/views/artists.js index 8677d0c..989d3f7 100644 --- a/frontend/site/projects/museum/views/artists.js +++ b/frontend/site/projects/museum/views/artists.js @@ -3,26 +3,88 @@ import actions from 'site/actions' import "./artists.css" +import { ARTISTS, ARTIST_ORDER } from "site/projects/museum/constants" +import { ArrowLeft, ArrowRight } from "site/projects/museum/icons" + export default class Artists extends Component { + state = { + currentIndex: 0, + detail: true, + } + constructor(props) { super(props) - this.handleClick = this.handleClick.bind(this) - this.state = { - } + this.showArtist = this.showArtist.bind(this) + this.previousArtist = this.previousArtist.bind(this) + this.nextArtist = this.nextArtist.bind(this) } componentDidMount() { actions.site.interact() } - handleClick(e) { - e && e.preventDefault() + showArtist(currentIndex) { + this.setState({ detail: true, currentIndex }) + } + + previousArtist() { + this.go(-1) + } + + nextArtist() { + this.go(1) + } + + go(step) { + const currentIndex = (this.state.currentIndex + step + ARTIST_ORDER.length) % ARTIST_ORDER.length + this.setState({ currentIndex }) } render() { + const { currentIndex, detail } = this.state return ( -
+
+
+
ARTISTS
+ {ARTIST_ORDER.map((key, index) => { + const artist = ARTISTS[key] + return ( +
this.showArtist(currentIndex)}> + {artist.name} +
+ ) + })} +
+
+ {ARTIST_ORDER.map((key, index) => ( + + ))} +
{ArrowLeft}
+
{ArrowRight}
+
) } } + +const ArtistDetail = ({ artist, index, isCurrent }) => { + return ( +
+
+
+
+ +
+
+
+ {artist.name} +
+
{artist.location}
+
+ ) +} -- cgit v1.2.3-70-g09d2