import {ReducerAction} from '../../global-types'; type StateProps = { isPaused: boolean; duration: number; progress?: number; progressLayout: any; fullScreenMode?: boolean; }; export function videoPlayerReducer( state: StateProps, action: ReducerAction< | 'play' | 'pause' | 'loaded' | 'progress' | 'set-progress-layout' | 'switch-screen-mode' >, ): StateProps { switch (action.type) { case 'play': { return { ...state, isPaused: false, }; } case 'pause': { return { ...state, isPaused: true, }; } case 'loaded': { return { ...state, duration: action.payload.duration, }; } case 'progress': { return { ...state, progress: action.payload.progress, }; } case 'set-progress-layout': { return { ...state, progressLayout: action.payload.layout, }; } case 'switch-screen-mode': { return { ...state, fullScreenMode: !state.fullScreenMode, }; } default: { return state; } } }