summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-11-21 17:46:24 +0100
committerJules Laplace <julescarbon@gmail.com>2020-11-21 17:46:24 +0100
commit6adfe561f65096d4117e8daa5aeb576552b6d060 (patch)
tree7fc5529fadea6747bff414e2f572564f6758a3f3 /animism-align/frontend/app
parent7c8fa854564c602709dbc3b81636b66db9ffcd10 (diff)
close fullscreen
Diffstat (limited to 'animism-align/frontend/app')
-rw-r--r--animism-align/frontend/app/views/viewer/nav/eflux.chrome.js10
-rw-r--r--animism-align/frontend/app/views/viewer/player/player.fullscreen.css2
-rw-r--r--animism-align/frontend/app/views/viewer/player/player.fullscreen.js5
-rw-r--r--animism-align/frontend/app/views/viewer/viewer.actions.js4
-rw-r--r--animism-align/frontend/app/views/viewer/viewer.reducer.js3
5 files changed, 19 insertions, 5 deletions
diff --git a/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js b/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js
index 5775b11..e58e2e1 100644
--- a/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js
+++ b/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js
@@ -57,7 +57,8 @@ class EfluxChrome extends Component {
render() {
const {
navStyle, navGradient,
- playing, transcriptOpen, isFullscreen,
+ playing, transcriptOpen,
+ isFullscreen, fullscreenVisible,
growlOpen, growlMessage,
atEndOfSection, currentSection
} = this.props
@@ -81,11 +82,15 @@ class EfluxChrome extends Component {
{growlMessage}
</div>
<div className="eflux-nav">
- {isFullscreen &&
+ {isFullscreen && fullscreenVisible &&
<div
className="fullscreen-close"
onMouseEnter={() => this.handleMouseEnter('close')}
onMouseLeave={() => this.handleMouseLeave('close')}
+ onClick={() => {
+ actions.viewer.toggleFullscreenVisible(false)
+ this.handleMouseLeave('close')
+ }}
>
{EfluxClose}
</div>
@@ -150,6 +155,7 @@ const mapStateToProps = state => ({
atEndOfSection: state.viewer.atEndOfSection,
currentSection: state.viewer.currentSection,
isFullscreen: state.viewer.isFullscreen,
+ fullscreenVisible: state.viewer.fullscreenVisible,
})
export default connect(mapStateToProps)(EfluxChrome)
diff --git a/animism-align/frontend/app/views/viewer/player/player.fullscreen.css b/animism-align/frontend/app/views/viewer/player/player.fullscreen.css
index 6c62a40..7384d34 100644
--- a/animism-align/frontend/app/views/viewer/player/player.fullscreen.css
+++ b/animism-align/frontend/app/views/viewer/player/player.fullscreen.css
@@ -7,7 +7,7 @@
overflow: hidden;
pointer-events: none;
user-select: none;
- opacity: 1.0;
+ opacity: 0.0;
}
.viewer-fullscreen.active {
pointer-events: auto;
diff --git a/animism-align/frontend/app/views/viewer/player/player.fullscreen.js b/animism-align/frontend/app/views/viewer/player/player.fullscreen.js
index a4ea7d3..8727313 100644
--- a/animism-align/frontend/app/views/viewer/player/player.fullscreen.js
+++ b/animism-align/frontend/app/views/viewer/player/player.fullscreen.js
@@ -122,11 +122,11 @@ class PlayerFullscreen extends Component {
}
render() {
- const { audio, media, currentSection } = this.props
+ const { audio, media, currentSection, fullscreenVisible } = this.props
const { play_ts, playing } = audio
const { elements, persist } = this.state
let className = "viewer-fullscreen";
- if (elements.length) {
+ if (elements.length && fullscreenVisible) {
className += " active"
}
if (persist) {
@@ -196,6 +196,7 @@ const FirstChild = (props) => {
const mapStateToProps = state => ({
currentSection: state.viewer.currentSection,
isFullscreen: state.viewer.isFullscreen,
+ fullscreenVisible: state.viewer.fullscreenVisible,
audio: state.audio,
media: state.media.index,
timeline: state.viewer.currentSection ? state.viewer.currentSection.fullscreenTimeline : [],
diff --git a/animism-align/frontend/app/views/viewer/viewer.actions.js b/animism-align/frontend/app/views/viewer/viewer.actions.js
index c1136e7..def0e54 100644
--- a/animism-align/frontend/app/views/viewer/viewer.actions.js
+++ b/animism-align/frontend/app/views/viewer/viewer.actions.js
@@ -313,6 +313,10 @@ export const updateFullscreenStatus = (value, persist) => dispatch => {
dispatch({ type: types.viewer.toggle_component, key: 'isFullscreenPersist', value: persist })
}
+export const toggleFullscreenVisible = value => dispatch => {
+ dispatch({ type: types.viewer.toggle_component, key: 'fullscreenVisible', value: value })
+}
+
export const toggleComponent = key => dispatch => {
hideNavElementsNotMatchedBy(key)(dispatch)
const state = store.getState().viewer
diff --git a/animism-align/frontend/app/views/viewer/viewer.reducer.js b/animism-align/frontend/app/views/viewer/viewer.reducer.js
index 1011d4e..efb374f 100644
--- a/animism-align/frontend/app/views/viewer/viewer.reducer.js
+++ b/animism-align/frontend/app/views/viewer/viewer.reducer.js
@@ -26,6 +26,7 @@ const initialState = {
onlyEnableFirstSection: isHandheld,
isFullscreen: false,
isFullscreenPersist: false,
+ fullscreenVisible: true,
/* footnotes */
footnoteList: [],
@@ -79,6 +80,7 @@ export default function viewerReducer(state = initialState, action) {
return {
...state,
growlOpen: false,
+ fullscreenVisible: true,
}
case types.viewer.open_growl:
@@ -107,6 +109,7 @@ export default function viewerReducer(state = initialState, action) {
currentSection: action.currentSection,
nextSection: action.nextSection,
navStyle: action.currentSection.color,
+ fullscreenVisible: true,
atEndOfSection: false,
}