From d351d8dd915c5075983eaa5cac6f0d5a1b99a877 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 18 Nov 2020 15:37:42 +0100 Subject: staggered, cancellable preloading of all section image assets, as soon as the section loads --- .../frontend/app/views/viewer/player/player.container.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'animism-align/frontend/app/views/viewer/player/player.container.js') diff --git a/animism-align/frontend/app/views/viewer/player/player.container.js b/animism-align/frontend/app/views/viewer/player/player.container.js index 87a325b..8602284 100644 --- a/animism-align/frontend/app/views/viewer/player/player.container.js +++ b/animism-align/frontend/app/views/viewer/player/player.container.js @@ -2,7 +2,8 @@ import React, { Component } from 'react' import { connect } from 'react-redux' import actions from 'app/actions' -import { floatEQ, floatInRange, clamp } from 'app/utils' +import { floatInRange, clamp } from 'app/utils' +import { preloadSectionImages } from 'app/utils/image.utils' import PlayerTranscript from './player.transcript' import PlayerFullscreen from './player.fullscreen' @@ -70,8 +71,13 @@ class PlayerContainer extends Component { } componentDidUpdate(prevProps) { - if (this.props.audio.play_ts === prevProps.audio.play_ts) return - this.handleTimeUpdate() + if (this.props.audio.play_ts !== prevProps.audio.play_ts) { + this.handleTimeUpdate() + } + if (this.props.currentSection !== prevProps.currentSection) { + this.preloader && this.preloader.cancel() + this.preloader = preloadSectionImages(this.props.currentSection, this.props.mediaLookup) + } } handleTimeUpdate() { @@ -114,6 +120,7 @@ class PlayerContainer extends Component { const mapStateToProps = state => ({ viewer: state.viewer, audio: state.audio, + mediaLookup: state.media.index.lookup, sections: state.viewer.sections, currentSection: state.viewer.currentSection, autoAdvance: state.viewer.autoAdvance, -- cgit v1.2.3-70-g09d2