codevise/pageflow

View on GitHub
entry_types/scrolled/package/src/frontend/MediaPlayer/playerActions.js

Summary

Maintainability
C
1 day
Test Coverage
import { media } from 'pageflow/frontend';

export const PLAY = 'MEDIA_PLAY';
export const PLAYING = 'MEDIA_PLAYING';
export const PLAY_FAILED = 'MEDIA_PLAY_FAILED';
export const PAUSE = 'MEDIA_PAUSE';
export const PAUSED = 'MEDIA_PAUSED';

export const PLAY_AND_FADE_IN = 'MEDIA_PLAY_AND_FADE_IN';
export const FADE_OUT_AND_PAUSE = 'MEDIA_FADE_OUT_AND_PAUSE';

export const CHANGE_VOLUME_FACTOR = 'CHANGE_VOLUME_FACTOR';

export const META_DATA_LOADED = 'MEDIA_META_DATA_LOADED';
export const DATA_LOADED = 'MEDIA_DATA_LOADED';
export const PROGRESS = 'MEDIA_PROGRESS';
export const TIME_UPDATE = 'MEDIA_TIME_UPDATE';
export const ENDED = 'MEDIA_ENDED';

export const SCRUB_TO = 'MEDIA_SCRUB_TO';
export const SEEK_TO = 'MEDIA_SEEK_TO';

export const SEEKING = 'MEDIA_SEEKING';
export const SEEKED = 'MEDIA_SEEKED';
export const WAITING = 'MEDIA_WAITING';

export const PREBUFFER = 'MEDIA_PREBUFFER';
export const PREBUFFERED = 'MEDIA_PREBUFFERED';

export const BUFFER_UNDERRUN = 'MEDIA_BUFFER_UNDERRUN';
export const BUFFER_UNDERRUN_CONTINUE = 'MEDIA_BUFFER_UNDERRUN_CONTINUE';

export const MOUSE_ENTERED = 'MEDIA_MOUSE_ENTERED';
export const MOUSE_LEFT = 'MEDIA_MOUSE_LEFT';
export const MOUSE_ENTERED_CONTROLS = 'MEDIA_MOUSE_ENTERED_CONTROLS';
export const MOUSE_LEFT_CONTROLS = 'MEDIA_MOUSE_LEFT_CONTROLS';
export const FOCUS_ENTERED_CONTROLS = 'MEDIA_FOCUS_ENTERED_CONTROLS';
export const FOCUS_LEFT_CONTROLS = 'MEDIA_FOCUS_LEFT_CONTROLS';
export const USER_INTERACTION = 'MEDIA_USER_INTERACTION';
export const USER_IDLE = 'MEDIA_USER_IDLE';

export const SAVE_MEDIA_ELEMENT_ID = 'MEDIA_SAVE_MEDIA_ELEMENT_ID';
export const DISCARD_MEDIA_ELEMENT_ID = 'MEDIA_DISCARD_MEDIA_ELEMENT_ID';

export function createActions(dispatch){
  return {
    playBlessed({via} = {}){
      media.mute(false);
      dispatch({type: PLAY, payload: {via}});
    },
    play({via} = {}){
      dispatch({type: PLAY, payload: {via}});
    },
    playing(){
      dispatch({type: PLAYING});
    },
    playFailed(){
      dispatch({type: PLAY_FAILED});
    },
    pause({via} = {}){
      dispatch({type: PAUSE, payload: {via}});
    },
    paused(){
      dispatch({type: PAUSED})
    },
    playAndFadeIn(fadeDuration, {via} = {}){
      dispatch({type: PLAY_AND_FADE_IN, payload: {fadeDuration: fadeDuration, via}});
    },
    fadeOutAndPause(fadeDuration, {via} = {}){
      dispatch({type: FADE_OUT_AND_PAUSE, payload: {fadeDuration: fadeDuration, via}});
    },
    changeVolumeFactor(volumeFactor, fadeDuration){
      dispatch({type: CHANGE_VOLUME_FACTOR, payload: {
        fadeDuration: fadeDuration,
        volumeFactor: volumeFactor
      }});
    },
    metaDataLoaded(currentTime, duration){
      dispatch({type: META_DATA_LOADED, payload: {
        currentTime: currentTime,
        duration: duration
      }});
    },
    dataLoaded(){
      dispatch({type: DATA_LOADED});
    },
    progress(bufferedEnd){
      dispatch({type: PROGRESS, payload: {
       bufferedEnd: bufferedEnd 
      }});
    },
    timeUpdate(currentTime, duration){
      dispatch({type: TIME_UPDATE, payload: {
        currentTime: currentTime,
        duration: duration
      }});
    },
    ended(){
      dispatch({type: ENDED});
    },
    scrubTo(time){
      dispatch({type: SCRUB_TO, payload: {
       time: time 
      }});
    },
    seekTo(time){
      dispatch({type: SEEK_TO, payload: {
       time: time 
      }});
    },
    seeking(){
      dispatch({type: SEEKING});
    },
    seeked(){
      dispatch({type: SEEKED});
    },
    waiting(){
      dispatch({type: WAITING});
    },
    prebuffer(){
      dispatch({type: PREBUFFER});
    },
    prebuffered(){
      dispatch({type: PREBUFFERED});
    },
    bufferUnderrun(){
      dispatch({type: BUFFER_UNDERRUN});
    },
    bufferUnderrunContinue(){
      dispatch({type: BUFFER_UNDERRUN_CONTINUE});
    },
    mouseEntered(){
      dispatch({type: MOUSE_ENTERED});
    },
    mouseLeft(){
      dispatch({type: MOUSE_LEFT});
    },
    mouseEnteredControls(){
      dispatch({type: MOUSE_ENTERED_CONTROLS});
    },
    mouseLeftControls(){
      dispatch({type: MOUSE_LEFT_CONTROLS});
    },
    userInteraction(){
      dispatch({type: USER_INTERACTION});
    },
    userIdle(){
      dispatch({type: USER_IDLE});
    },
    focusEnteredControls(){
      dispatch({type: FOCUS_ENTERED_CONTROLS});
    },
    focusLeftControls(){
      dispatch({type: FOCUS_LEFT_CONTROLS});
    },
    saveMediaElementId(id){
      dispatch({type: SAVE_MEDIA_ELEMENT_ID, payload: {
       id: id 
      }});
    },
    discardMediaElementId(){
      dispatch({type: DISCARD_MEDIA_ELEMENT_ID});
    }
  };
}