12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import { ReducerRegistry } from '../base/redux';
-
- import {
- REMOVE_TRANSCRIPT_MESSAGE, TOGGLE_REQUESTING_SUBTITLES,
- UPDATE_TRANSCRIPT_MESSAGE
- } from './actionTypes';
-
- /**
- * Default State for 'features/transcription' feature
- */
- const defaultState = {
- _transcriptMessages: new Map(),
- _requestingSubtitles: false
- };
-
- /**
- * Listen for actions for the transcription feature to be used by the actions
- * to update the rendered transcription subtitles.
- */
- ReducerRegistry.register('features/subtitles', (
- state = defaultState, action) => {
- switch (action.type) {
- case REMOVE_TRANSCRIPT_MESSAGE:
- return _removeTranscriptMessage(state, action);
- case UPDATE_TRANSCRIPT_MESSAGE:
- return _updateTranscriptMessage(state, action);
-
- case TOGGLE_REQUESTING_SUBTITLES:
- return {
- ...state,
- _requestingSubtitles: !state._requestingSubtitles
- };
- }
-
- return state;
- });
-
- /**
- * Reduces a specific Redux action REMOVE_TRANSCRIPT_MESSAGE of the feature
- * transcription.
- *
- * @param {Object} state - The Redux state of the feature transcription.
- * @param {Action} action -The Redux action REMOVE_TRANSCRIPT_MESSAGE to reduce.
- * @returns {Object} The new state of the feature transcription after the
- * reduction of the specified action.
- */
- function _removeTranscriptMessage(state, { transcriptMessageID }) {
- const newTranscriptMessages = new Map(state._transcriptMessages);
-
- // Deletes the key from Map once a final message arrives.
- newTranscriptMessages.delete(transcriptMessageID);
-
- return {
- ...state,
- _transcriptMessages: newTranscriptMessages
- };
- }
-
- /**
- * Reduces a specific Redux action UPDATE_TRANSCRIPT_MESSAGE of the feature
- * transcription.
- *
- * @param {Object} state - The Redux state of the feature transcription.
- * @param {Action} action -The Redux action UPDATE_TRANSCRIPT_MESSAGE to reduce.
- * @returns {Object} The new state of the feature transcription after the
- * reduction of the specified action.
- */
- function _updateTranscriptMessage(state,
- { transcriptMessageID, newTranscriptMessage }) {
- const newTranscriptMessages = new Map(state._transcriptMessages);
-
- // Updates the new message for the given key in the Map.
- newTranscriptMessages.set(transcriptMessageID, newTranscriptMessage);
-
- return {
- ...state,
- _transcriptMessages: newTranscriptMessages
- };
- }
|