@playkit-js/playkit-js-ui
Version:
[](https://github.com/kaltura/playkit-js-ui/actions/workflows/run_canary_full_flow.yaml) [ • 1.72 kB
text/typescript
/* eslint-disable @typescript-eslint/explicit-function-return-type */
import {SettingsState} from '../types/reducers/settings';
export const types = {
UPDATE_QUALITY: 'settings/UPDATE_QUALITY',
UPDATE_SPEED: 'settings/UPDATE_SPEED',
UPDATE_AUDIO: 'settings/UPDATE_AUDIO',
UPDATE_ADVANCED_AUDIO_DESC: 'settings/UPDATE_ADVANCED_AUDIO_DESC',
UPDATE_IS_CAPTIONS_ENABLED: 'settings/UPDATE_IS_CAPTIONS_ENABLED'
};
export const initialState = {
quality: 1,
speed: 2,
advancedAudioDesc: false,
isCaptionsEnabled: false
};
export default (state: SettingsState = initialState, action: any) => {
switch (action.type) {
case types.UPDATE_QUALITY:
return {
...state,
quality: action.quality
};
case types.UPDATE_SPEED:
return {
...state,
speed: action.speed
};
case types.UPDATE_AUDIO:
return {
...state,
audio: action.audio
};
case types.UPDATE_ADVANCED_AUDIO_DESC:
return {
...state,
advancedAudioDesc: action.isChecked
};
case types.UPDATE_IS_CAPTIONS_ENABLED:
return {
...state,
isCaptionsEnabled: action.isCaptionsEnabled
};
default:
return state;
}
};
export const actions = {
updateQuality: (quality: string) => ({type: types.UPDATE_QUALITY, quality}),
updateSpeed: (speed: string) => ({type: types.UPDATE_SPEED, speed}),
updateAudio: (audio: string) => ({type: types.UPDATE_AUDIO, audio}),
updateAdvancedAudioDesc: (isChecked: boolean) => ({type: types.UPDATE_ADVANCED_AUDIO_DESC, isChecked}),
updateIsCaptionsEnabled: (isCaptionsEnabled: boolean) => ({type: types.UPDATE_IS_CAPTIONS_ENABLED, isCaptionsEnabled})
};