summaryrefslogtreecommitdiff
path: root/frontend/site/viewer/viewer.container.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2021-03-23 16:20:09 +0100
committerJules Laplace <julescarbon@gmail.com>2021-03-23 16:20:09 +0100
commit3b1d8d3416b27744287c7dc85ceede31e56e4dce (patch)
treecb771e213986b925d607add2275e3526a0208310 /frontend/site/viewer/viewer.container.js
parentfb82ff9fa188769f7cf7bb02c1c574201cbe9f85 (diff)
hide on click
Diffstat (limited to 'frontend/site/viewer/viewer.container.js')
-rw-r--r--frontend/site/viewer/viewer.container.js20
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