UNPKG

@playkit-js/playkit-js-ui

Version:

[![Build Status](https://github.com/kaltura/playkit-js-ui/actions/workflows/run_canary_full_flow.yaml/badge.svg)](https://github.com/kaltura/playkit-js-ui/actions/workflows/run_canary_full_flow.yaml) [![code style: prettier](https://img.shields.io/badge/c

111 lines (105 loc) 3.99 kB
/* eslint-disable @typescript-eslint/explicit-function-return-type */ import {AUDIO_DESCRIPTION_TYPE, AudioDescriptionState} from '../types/reducers/audio-description'; export const types = { UPDATE_AUDIO_DESCRIPTION_LANGUAGES: 'audio-description/UPDATE_AUDIO_DESCRIPTION_LANGUAGES', UPDATE_EXTENDED_AUDIO_DESCRIPTION_LANGUAGES: 'audio-description/UPDATE_EXTENDED_AUDIO_DESCRIPTION_LANGUAGES', UPDATE_AUDIO_DESCRIPTION_ENABLED: 'audio-description/UPDATE_AUDIO_DESCRIPTION', UPDATE_AUDIO_DESCRIPTION_TYPE: 'audio-description/UPDATE_AUDIO_DESCRIPTION_TYPE', UPDATE_SELECTION_BY_LANGUAGE: 'audio-description/UPDATE_SELECTION_BY_LANGUAGE', RESET_SELECTION_BY_LANGUAGE: 'audio-description/RESET_SELECTION_BY_LANGUAGE', UPDATE_DEFAULT_VALUE_SET: 'audio-description/UPDATE_DEFAULT_VALUE_SET', UPDATE_SELECTED_AUDIO_LANGUAGE: 'audio-description/UPDATE_SELECTED_AUDIO_LANGUAGE' }; export const initialState = { audioDescriptionLanguages: [], advancedAudioDescriptionLanguages: [], isEnabled: false, selectedType: AUDIO_DESCRIPTION_TYPE.AUDIO_DESCRIPTION, selectionByLanguage: new Map<string, [boolean, AUDIO_DESCRIPTION_TYPE]>(), isDefaultValueSet: false, selectedAudioLanguage: null }; export default (state: AudioDescriptionState = initialState, action: any) => { switch (action.type) { case types.UPDATE_AUDIO_DESCRIPTION_LANGUAGES: return { ...state, audioDescriptionLanguages: action.audioDescriptionLanguages }; case types.UPDATE_EXTENDED_AUDIO_DESCRIPTION_LANGUAGES: return { ...state, advancedAudioDescriptionLanguages: action.advancedAudioDescriptionLanguages }; case types.UPDATE_AUDIO_DESCRIPTION_ENABLED: return { ...state, isEnabled: action.isEnabled }; case types.UPDATE_AUDIO_DESCRIPTION_TYPE: return { ...state, selectedType: action.selectedType }; case types.UPDATE_SELECTION_BY_LANGUAGE: const language = action.language; const isEnabled = action.isEnabled; const selectedType = action.selectedType; return { ...state, selectionByLanguage: new Map(state.selectionByLanguage).set(language, [isEnabled, selectedType]) }; case types.RESET_SELECTION_BY_LANGUAGE: return { ...state, selectionByLanguage: new Map<string, [boolean, AUDIO_DESCRIPTION_TYPE]>() }; case types.UPDATE_DEFAULT_VALUE_SET: return { ...state, isDefaultValueSet: action.isDefaultValueSet }; case types.UPDATE_SELECTED_AUDIO_LANGUAGE: return { ...state, selectedAudioLanguage: action.selectedAudioLanguage }; default: return state; } }; export const actions = { updateAudioDescriptionLanguages: (audioDescriptionLanguages: string[]) => ({ type: types.UPDATE_AUDIO_DESCRIPTION_LANGUAGES, audioDescriptionLanguages }), updateAdvancedAudioDescriptionLanguages: (advancedAudioDescriptionLanguages: string[]) => ({ type: types.UPDATE_EXTENDED_AUDIO_DESCRIPTION_LANGUAGES, advancedAudioDescriptionLanguages }), updateAudioDescriptionEnabled: (isEnabled: boolean) => ({ type: types.UPDATE_AUDIO_DESCRIPTION_ENABLED, isEnabled }), updateAudioDescriptionType: (selectedType: AUDIO_DESCRIPTION_TYPE) => ({ type: types.UPDATE_AUDIO_DESCRIPTION_TYPE, selectedType }), updateSelectionByLanguage: (language: string, isEnabled: boolean, selectedType: AUDIO_DESCRIPTION_TYPE) => ({ type: types.UPDATE_SELECTION_BY_LANGUAGE, language, isEnabled, selectedType }), resetSelectionByLanguage: () => ({ type: types.RESET_SELECTION_BY_LANGUAGE }), updateDefaultValueSet: (isDefaultValueSet: boolean) => ({ type: types.UPDATE_DEFAULT_VALUE_SET, isDefaultValueSet }), updateSelectedAudioLanguage: (selectedAudioLanguage: string | null) => ({ type: types.UPDATE_SELECTED_AUDIO_LANGUAGE, selectedAudioLanguage }) };