UNPKG

@lahzenegar/video-react

Version:

Video-React is a web video player built from the ground up for an HTML5 world using React library.

133 lines (96 loc) 3.66 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _redux = require('redux'); var _reducers = require('./reducers'); var _reducers2 = _interopRequireDefault(_reducers); var _player = require('./actions/player'); var playerActions = _interopRequireWildcard(_player); var _video = require('./actions/video'); var videoActions = _interopRequireWildcard(_video); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Manager = function () { function Manager(store) { (0, _classCallCheck3.default)(this, Manager); this.store = store || (0, _redux.createStore)(_reducers2.default); this.video = null; this.rootElement = null; } (0, _createClass3.default)(Manager, [{ key: 'getActions', value: function getActions() { var manager = this; var dispatch = this.store.dispatch; var actions = (0, _extends3.default)({}, playerActions, videoActions); function bindActionCreator(actionCreator) { return function bindAction() { // eslint-disable-next-line prefer-rest-params var action = actionCreator.apply(manager, arguments); if (typeof action !== 'undefined') { dispatch(action); } }; } return (0, _keys2.default)(actions).filter(function (key) { return typeof actions[key] === 'function'; }).reduce(function (boundActions, key) { boundActions[key] = bindActionCreator(actions[key]); return boundActions; }, {}); } }, { key: 'getState', value: function getState() { return this.store.getState(); } // subscribe state change }, { key: 'subscribeToStateChange', value: function subscribeToStateChange(listener, getState) { if (!getState) { getState = this.getState.bind(this); } var prevState = getState(); var handleChange = function handleChange() { var state = getState(); if (state === prevState) { return; } var prevStateCopy = prevState; prevState = state; listener(state, prevStateCopy); }; return this.store.subscribe(handleChange); } // subscribe to operation state change }, { key: 'subscribeToOperationStateChange', value: function subscribeToOperationStateChange(listener) { var _this = this; return this.subscribeToStateChange(listener, function () { return _this.getState().operation; }); } // subscribe to player state change }, { key: 'subscribeToPlayerStateChange', value: function subscribeToPlayerStateChange(listener) { var _this2 = this; return this.subscribeToStateChange(listener, function () { return _this2.getState().player; }); } }]); return Manager; }(); exports.default = Manager;