From 01f99cd2f5bd54e643ca5305eeb7e1ba61483b81 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 10 Aug 2020 17:04:04 +0200 Subject: nav moon logic --- .../frontend/app/views/viewer/nav/nav.parent.js | 45 ++++++++++++++++------ 1 file changed, 34 insertions(+), 11 deletions(-) (limited to 'animism-align/frontend/app/views/viewer/nav/nav.parent.js') diff --git a/animism-align/frontend/app/views/viewer/nav/nav.parent.js b/animism-align/frontend/app/views/viewer/nav/nav.parent.js index e242e8a..c27947b 100644 --- a/animism-align/frontend/app/views/viewer/nav/nav.parent.js +++ b/animism-align/frontend/app/views/viewer/nav/nav.parent.js @@ -9,27 +9,44 @@ import { thumbnailURL } from 'app/utils/annotation.utils' class NavParent extends Component { state = { - hovering: false, + hoveringNext: false, + hoveringNav: false, suppressHover: false, } constructor(props){ super(props) - this.handleMouseLeave = this.handleMouseLeave.bind(this) this.handleMouseEnter = this.handleMouseEnter.bind(this) + this.handleMouseLeave = this.handleMouseLeave.bind(this) + this.handleMouseEnterNext = this.handleMouseEnterNext.bind(this) + this.handleMouseLeaveNext = this.handleMouseLeaveNext.bind(this) } handleMouseEnter(){ if (this.state.suppressHover) return - this.setState({ hovering: true }) + this.setState({ hoveringNext: false, hoveringNav: true }) + } + handleMouseEnterNext(){ + if (this.state.suppressHover) return + this.setState({ hoveringNext: true, hoveringNav: false }) } handleMouseLeave(){ - this.setState({ hovering: false, suppressHover: false }) + this.setState({ hoveringNext: false, hoveringNav: false, suppressHover: false }) + } + handleMouseLeaveNext(){ + this.setState({ hoveringNext: false, suppressHover: true, }) + setTimeout(() => { + this.setState({ suppressHover: false }) + }, 50) } render() { const { viewer } = this.props + let containerClassName = "viewer-nav " + viewer.navStyle + let navClassName = 'nav-row main-nav' + if (this.state.hoveringNav) navClassName += ' hovering-nav' + if (this.state.hoveringNext) containerClassName += ' hovering-next' return ( -
-
-
+
+
+
actions.viewer.toggleComponent('nav')}> {viewer.currentSection && @@ -41,10 +58,16 @@ class NavParent extends Component { }
- -
+
+ +
+
{viewer.nextSection && - actions.viewer.seekToSection(viewer.nextSection)}> + actions.viewer.seekToSection(viewer.nextSection)} + > Next @@ -55,7 +78,7 @@ class NavParent extends Component {
{ actions.viewer.seekToSection(viewer.nextSection) - this.setState({ hovering: false, suppressHover: true }) + this.setState({ hoveringNext: false, hoveringNav: false, suppressHover: true }) }} style={{ backgroundImage: viewer.nextSection.media.length && 'url(' + thumbnailURL(viewer.nextSection.media[0].media) + ')', -- cgit v1.2.3-70-g09d2