summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-11-05 20:03:24 +0100
committerJules Laplace <julescarbon@gmail.com>2020-11-05 20:03:24 +0100
commitd5d6b6c5cff095fb39bf2fff24445451b25bd53b (patch)
tree9391a269c1d169e1132738fb410e1119c0212a2d
parent0387bd453274e0bfd7d085a4fae26b5260a9f823 (diff)
read the transcript at end of first section
-rw-r--r--animism-align/frontend/app/types.js2
-rw-r--r--animism-align/frontend/app/views/viewer/nav/eflux.chrome.js6
-rw-r--r--animism-align/frontend/app/views/viewer/viewer.actions.js8
-rw-r--r--animism-align/frontend/app/views/viewer/viewer.reducer.js7
4 files changed, 18 insertions, 5 deletions
diff --git a/animism-align/frontend/app/types.js b/animism-align/frontend/app/types.js
index d2b08b8..d55e27c 100644
--- a/animism-align/frontend/app/types.js
+++ b/animism-align/frontend/app/types.js
@@ -29,7 +29,7 @@ export const audio = with_type('audio', [
export const viewer = with_type('viewer', [
'load_sections', 'toggle_component', 'toggle_nav_component',
'set_current_section', 'reached_end_of_section',
- 'set_nav_style', 'set_media_title',
+ 'set_nav_style', 'set_media_title', 'set_value',
'open_vitrine_modal', 'close_vitrine_modal', 'set_vitrine_index',
'open_growl', 'close_growl',
'open_footnote',
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 283f3cb..cdfc5dc 100644
--- a/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js
+++ b/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js
@@ -47,7 +47,7 @@ class EfluxChrome extends Component {
}
}
render() {
- const { navStyle, playing, transcriptOpen, growlOpen, growlMessage } = this.props
+ const { navStyle, playing, transcriptOpen, growlOpen, growlMessage, atEndOfSection, currentSection } = this.props
return (
<div className={"eflux-header " + navStyle + (transcriptOpen ? ' transcript-open' : '')}>
<div className="eflux-logo">
@@ -84,7 +84,7 @@ class EfluxChrome extends Component {
<div className={this.state.play ? "growl-tooltip tooltip-play hover" : "growl-tooltip tooltip-play"}>
{this.state.playMessage}
</div>
- <div className={this.state.transcript ? "growl-tooltip tooltip-transcript hover" : "growl-tooltip tooltip-transcript"}>
+ <div className={((atEndOfSection && currentSection.index === 0) || this.state.transcript) ? "growl-tooltip tooltip-transcript hover" : "growl-tooltip tooltip-transcript"}>
{'Read the Transcript'}
</div>
</div>
@@ -98,6 +98,8 @@ const mapStateToProps = state => ({
transcriptOpen: state.viewer.transcript,
growlOpen: state.viewer.growlOpen,
growlMessage: state.viewer.growlMessage,
+ atEndOfSection: state.viewer.atEndOfSection,
+ currentSection: state.viewer.currentSection,
})
export default connect(mapStateToProps)(EfluxChrome)
diff --git a/animism-align/frontend/app/views/viewer/viewer.actions.js b/animism-align/frontend/app/views/viewer/viewer.actions.js
index 449d224..e35567d 100644
--- a/animism-align/frontend/app/views/viewer/viewer.actions.js
+++ b/animism-align/frontend/app/views/viewer/viewer.actions.js
@@ -293,8 +293,12 @@ export const showCredits = () => dispatch => {
export const reachedEndOfSection = currentSection => dispatch => {
actions.audio.pause()
dispatch({ type: types.viewer.reached_end_of_section })
- if (currentSection && currentSection.index === 0) {
- actions.viewer.openGrowl(GROWL.REACHED_END_OF_FIRST_SECTION)
+ if (currentSection) {
+ // reached end of first section
+ if (currentSection.index === 0) {
+ actions.viewer.openGrowl(GROWL.REACHED_END_OF_FIRST_SECTION)
+ }
+ // reached end of last section
}
}
diff --git a/animism-align/frontend/app/views/viewer/viewer.reducer.js b/animism-align/frontend/app/views/viewer/viewer.reducer.js
index 587ae0f..e1a0167 100644
--- a/animism-align/frontend/app/views/viewer/viewer.reducer.js
+++ b/animism-align/frontend/app/views/viewer/viewer.reducer.js
@@ -36,6 +36,7 @@ const initialState = {
/* growl message at top */
growlOpen: true,
growlMessage: GROWL.OPENING_MESSAGE,
+ growlTranscriptOpen: false,
/* vitrine */
vitrineModal: {
@@ -50,6 +51,12 @@ const initialState = {
export default function viewerReducer(state = initialState, action) {
// console.log(action.type, action)
switch (action.type) {
+ case types.viewer.set_value:
+ return {
+ ...state,
+ [action.key]: action.value,
+ }
+
case types.viewer.toggle_component:
return {
...state,