import React from 'react'; import Parser from 'html-react-parser'; import Slider from 'react-slick'; import Modal from '../modal'; import WordCloud from '../wordCloud'; import Data from '../../data/resources/wordclouds'; import './style.scss'; class Resources extends React.Component { constructor(props) { super(props); this.state = { isWordCloudModalOpen: false, activeSlide: 0, }; this.openWordCloudModal = this.openWordCloudModal.bind(this); this.closeWordCloudModal = this.closeWordCloudModal.bind(this); } openWordCloudModal(event) { /* * Check if clicked element is a child and doesn't have a data-index, * then go get data-index from the parentNode */ let clickedElement = event.target; while (clickedElement.dataset.index === undefined) { clickedElement = clickedElement.parentNode; } const clickedIndex = clickedElement.dataset.index; this.slider.slickGoTo(clickedIndex); this.setState({ isWordCloudModalOpen: true, activeSlide: clickedIndex, }); } closeWordCloudModal() { this.setState({ isWordCloudModalOpen: false }); } render() { const { isWordCloudModalOpen, activeSlide } = this.state; const settings = { infinite: true, speed: 500, slidesToShow: 1, slidesToScroll: 1, initialSlide: activeSlide, className: 'resources-content-slider', arrows: false, }; return (

Resources

{ Data.map((wordCloud, index) => ()) }
(this.slider = slider)} {...settings}> {/* eslint-disable-line */} { Data.map((slide, index, array) => { const prevItemIndex = index - 1 === -1 ? array.length - 1 : index - 1; const nextItemIndex = index + 1 === array.length ? 0 : index + 1; return (
this.slider.slickGoTo(prevItemIndex)}> {/* eslint-disable-line */} < { array[prevItemIndex].title }

{ slide.title }

this.slider.slickGoTo(nextItemIndex)}> {/* eslint-disable-line */} { array[nextItemIndex].title } >
{ Parser(slide.slideContent) }
); }) }
); } } export default Resources;