summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--animism-align/frontend/app/views/viewer/player/player.container.js41
-rw-r--r--animism-align/frontend/app/views/viewer/viewer.container.js32
2 files changed, 40 insertions, 33 deletions
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 a2f999d..f783b9b 100644
--- a/animism-align/frontend/app/views/viewer/player/player.container.js
+++ b/animism-align/frontend/app/views/viewer/player/player.container.js
@@ -2,16 +2,55 @@ import React, { Component } from 'react'
import { connect } from 'react-redux'
import actions from 'app/actions'
-import { floatInRange } from 'app/utils'
+import { floatInRange, clamp } from 'app/utils'
import PlayerTranscript from './player.transcript'
import PlayerFullscreen from './player.fullscreen'
class PlayerContainer extends Component {
+ constructor(props) {
+ super(props)
+ this.handleKeyDown = this.handleKeyDown.bind(this)
+ }
componentDidMount() {
// console.log(this.props.sections)
const { sections } = this.props
actions.viewer.setCurrentSection(sections[0], sections[1])
+ document.addEventListener('keydown', this.handleKeyDown)
+ }
+ componentWillUnmount() {
+ document.removeEventListener('keydown', this.handleKeyDown)
+ }
+
+ handleKeyDown(e) {
+ if (document.activeElement !== document.body) {
+ return
+ }
+ const { currentSection, audio } = this.props
+ const { play_ts } = audio
+ let start_ts = 0
+ let end_ts = 0
+ if (currentSection) {
+ start_ts = currentSection.start_ts
+ end_ts = currentSection.end_ts
+ }
+ // console.log(e.keyCode)
+ switch (e.keyCode) {
+ case 32: // spacebar
+ e.preventDefault()
+ actions.audio.toggle()
+ break
+ case 37: // left
+ case 38: // up
+ e.preventDefault()
+ actions.audio.seek(clamp(play_ts - 5.0, start_ts, end_ts))
+ break
+ case 39: // right
+ case 40: // down
+ e.preventDefault()
+ actions.audio.seek(clamp(play_ts + 5.0, start_ts, end_ts))
+ break
+ }
}
componentDidUpdate(prevProps) {
diff --git a/animism-align/frontend/app/views/viewer/viewer.container.js b/animism-align/frontend/app/views/viewer/viewer.container.js
index 522f8bc..f91adb3 100644
--- a/animism-align/frontend/app/views/viewer/viewer.container.js
+++ b/animism-align/frontend/app/views/viewer/viewer.container.js
@@ -29,38 +29,6 @@ import Checklist from './checklist/checklist.container'
import VitrineModal from './modals/modals.vitrine'
class ViewerContainer extends Component {
- constructor(props) {
- super(props)
- this.handleKeyDown = this.handleKeyDown.bind(this)
- }
- componentDidMount() {
- document.addEventListener('keydown', this.handleKeyDown)
- }
- componentWillUnmount() {
- document.removeEventListener('keydown', this.handleKeyDown)
- }
- handleKeyDown(e) {
- if (document.activeElement !== document.body) {
- return
- }
- // console.log(e.keyCode)
- switch (e.keyCode) {
- case 32: // spacebar
- e.preventDefault()
- actions.audio.toggle()
- break
- case 37: // left
- case 38: // up
- e.preventDefault()
- actions.audio.jump(-5.0)
- break
- case 39: // right
- case 40: // down
- e.preventDefault()
- actions.audio.jump(5.0)
- break
- }
- }
render() {
const { loaded, viewer } = this.props
if (!loaded) {