diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2021-03-23 16:20:09 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2021-03-23 16:20:09 +0100 |
| commit | 3b1d8d3416b27744287c7dc85ceede31e56e4dce (patch) | |
| tree | cb771e213986b925d607add2275e3526a0208310 /frontend/site/viewer/viewer.container.js | |
| parent | fb82ff9fa188769f7cf7bb02c1c574201cbe9f85 (diff) | |
hide on click
Diffstat (limited to 'frontend/site/viewer/viewer.container.js')
| -rw-r--r-- | frontend/site/viewer/viewer.container.js | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/frontend/site/viewer/viewer.container.js b/frontend/site/viewer/viewer.container.js index f68a1d3..9bf4442 100644 --- a/frontend/site/viewer/viewer.container.js +++ b/frontend/site/viewer/viewer.container.js @@ -16,6 +16,7 @@ class ViewerContainer extends Component { bounds: { width: window.innerWidth, height: window.innerHeight }, roadblock: false, popups: {}, + hidden: {}, time: 0, maxDeferTime: 0, } @@ -48,9 +49,9 @@ class ViewerContainer extends Component { const { pages, home_page } = this.props.graph const page = pages[page_path] || pages[home_page] if (!this.props.interactive && hasAutoplay(page)) { - this.setState({ page, popups: {}, roadblock: true }) + this.setState({ page, popups: {}, hidden: {}, roadblock: true }) } else { - this.setState({ page, popups: {}, roadblock: false }) + this.setState({ page, popups: {}, hidden: {}, roadblock: false }) actions.site.interact() this.props.audio.player.playPage(page) this.resetTimer(page) @@ -94,7 +95,7 @@ class ViewerContainer extends Component { popups: { ...this.state.popups, [tile.settings.target_popup]: true, - } + }, }) } else if (tile.href === '__close_popup') { @@ -102,7 +103,7 @@ class ViewerContainer extends Component { popups: { ...this.state.popups, [tile.settings.target_popup]: false, - } + }, }) } else if (!tile.settings.navigate_when_audio_finishes) { @@ -115,6 +116,14 @@ class ViewerContainer extends Component { tile, }) } + if (tile.settings.hide_on_click) { + this.setState({ + hidden: { + ...this.state.hidden, + [tile.id]: true, + } + }) + } } handlePlaybackEnded(tile) { @@ -124,7 +133,7 @@ class ViewerContainer extends Component { } render() { - const { page, audio, popups, time } = this.state + const { page, audio, popups, hidden, time } = this.state if (this.state.roadblock) { return this.renderRoadblock() } @@ -152,6 +161,7 @@ class ViewerContainer extends Component { {page.tiles.map(tile => { if (tile.settings.is_popup && !popups[tile.settings.popup_group]) return if (tile.settings.appear_after && time < tile.settings.appear_after) return + if (tile.settings.hide_on_click && hidden[tile.id]) return return ( <TileHandle viewing |
