Use constants for middleware

This commit is contained in:
Jordan Eldredge 2017-01-03 21:09:11 -08:00
parent d4f70c0a01
commit 89adb9783f
2 changed files with 28 additions and 10 deletions

View file

@ -1,5 +1,9 @@
export const CLOSE_CONTEXT_MENU = 'CLOSE_CONTEXT_MENU';
export const CLOSE_WINAMP = 'CLOSE_WINAMP';
export const IS_PLAYING = 'IS_PLAYING';
export const IS_STOPPED = 'IS_STOPPED';
export const PAUSE = 'PAUSE';
export const PLAY = 'PLAY';
export const SET_BALANCE = 'SET_BALANCE';
export const SET_BAND_VALUE = 'SET_BAND_VALUE';
export const SET_FOCUS = 'SET_FOCUS';
@ -11,6 +15,7 @@ export const SET_VOLUME = 'SET_VOLUME';
export const START_LOADING = 'START_LOADING';
export const START_WORKING = 'START_WORKING';
export const STEP_MARQUEE = 'STEP_MARQUEE';
export const STOP = 'STOP';
export const STOP_WORKING = 'STOP_WORKING';
export const TOGGLE_CONTEXT_MENU = 'TOGGLE_CONTEXT_MENU';
export const TOGGLE_DOUBLESIZE_MODE = 'TOGGLE_DOUBLESIZE_MODE';

View file

@ -1,40 +1,53 @@
import {
IS_PLAYING,
IS_STOPPED,
PAUSE,
PLAY,
SET_BALANCE,
SET_VOLUME,
START_WORKING,
STOP,
STOP_WORKING,
UPDATE_TIME_ELAPSED
} from './actionTypes';
export default (media) => (
(store) => {
media.addEventListener('timeupdate', () => {
store.dispatch({type: 'UPDATE_TIME_ELAPSED', elapsed: media.timeElapsed()});
store.dispatch({type: UPDATE_TIME_ELAPSED, elapsed: media.timeElapsed()});
});
media.addEventListener('ended', () => {
store.dispatch({type: 'IS_STOPPED'});
store.dispatch({type: IS_STOPPED});
});
media.addEventListener('playing', () => {
store.dispatch({type: 'IS_PLAYING'});
store.dispatch({type: IS_PLAYING});
});
media.addEventListener('waiting', () => {
store.dispatch({type: 'START_WORKING'});
store.dispatch({type: START_WORKING});
});
media.addEventListener('stopWaiting', () => {
store.dispatch({type: 'STOP_WORKING'});
store.dispatch({type: STOP_WORKING});
});
return (next) => (action) => {
switch (action.type) {
case 'PLAY':
case PLAY:
media.play();
break;
case 'PAUSE':
case PAUSE:
media.pause();
break;
case 'STOP':
case STOP:
media.stop();
break;
case 'SET_VOLUME':
case SET_VOLUME:
media.setVolume(action.volume);
break;
case 'SET_BALANCE':
case SET_BALANCE:
media.setBalance(action.balance);
break;
}