import React, { Component } from 'react' import { connect } from 'react-redux' import { TransitionGroup, CSSTransition } from 'react-transition-group' import actions from 'app/actions' import { floatInRange, floatLT } from 'app/utils' import { fullscreenComponents } from './components.fullscreen' class PlayerFullscreen extends Component { state = { elements: [], } componentDidMount() { this.setCurrentElements() } componentDidUpdate(prevProps) { if (this.props.audio.play_ts === prevProps.audio.play_ts) return this.setCurrentElements() } setCurrentElements() { const { audio, timeline, currentSection, media } = this.props const { play_ts } = audio let elements = timeline.filter(element => ( floatInRange(element.start_ts, play_ts, element.fade_out_start_ts + 0.1) )) if (elements.length && !audio.playing && elements[0].type === 'curtain') { elements.shift() } if (elements.length > 1) { elements = elements.map((e, i) => [(e.type === 'curtain' ? i + 100 : i), e]) .sort((a,b) => a[0] - b[0]) .map(p => p[1]) } // console.log(elements) if (elements.length) { const lastElement = elements[elements.length - 1] if (lastElement.color && lastElement.color.textColor === '#ffffff') { actions.viewer.setNavStyle('black') } else { actions.viewer.setNavStyle('white') } if (lastElement.type === 'video') { const item = media.lookup[lastElement.settings.media_id] actions.viewer.setMediaTitle(item.title) } else { actions.viewer.setMediaTitle(null) } } else { actions.viewer.setNavStyle(currentSection.color) actions.viewer.setMediaTitle(null) } // elements.reverse() this.setState({ elements }) } render() { const { audio, media } = this.props const { play_ts } = audio const { elements } = this.state const className = elements.length ? "viewer-fullscreen active" : "viewer-fullscreen" // console.log(elements, play_ts) return (