2020-03-25 21:40:51 +01:00
|
|
|
import { fromJS } from 'immutable';
|
|
|
|
|
|
|
|
const initialState = fromJS({
|
|
|
|
dataLoaded: false,
|
|
|
|
duration: 0,
|
2020-03-26 11:44:38 +01:00
|
|
|
isHover: false,
|
2020-03-25 21:40:51 +01:00
|
|
|
metadataLoaded: false,
|
|
|
|
seeked: false,
|
|
|
|
snapshot: false,
|
|
|
|
});
|
|
|
|
|
|
|
|
const videoReducer = (state, action) => {
|
|
|
|
switch (action.type) {
|
|
|
|
case 'DATA_LOADED':
|
|
|
|
return state.update('dataLoaded', () => true).update('duration', () => action.duration);
|
|
|
|
case 'METADATA_LOADED':
|
|
|
|
return state.update('metadataLoaded', () => true);
|
|
|
|
case 'SEEKED':
|
|
|
|
return state.update('seeked', () => true);
|
2020-03-26 11:44:38 +01:00
|
|
|
case 'SET_IS_HOVER':
|
|
|
|
return state.update('isHover', isHover => !isHover);
|
2020-03-25 21:40:51 +01:00
|
|
|
case 'SET_SNAPSHOT':
|
|
|
|
return state.update('snapshot', () => action.snapshot);
|
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
export default videoReducer;
|
|
|
|
export { initialState };
|