UNPKG

wotnot-video-react

Version:

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

117 lines (88 loc) 4.13 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _redux = require("redux"); var _reducers = _interopRequireDefault(require("./reducers")); var playerActions = _interopRequireWildcard(require("./actions/player")); var videoActions = _interopRequireWildcard(require("./actions/video")); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var Manager = /*#__PURE__*/function () { function Manager(store) { (0, _classCallCheck2["default"])(this, Manager); this.store = store || (0, _redux.createStore)(_reducers["default"]); this.video = null; this.rootElement = null; } (0, _createClass2["default"])(Manager, [{ key: "getActions", value: function getActions() { var manager = this; var dispatch = this.store.dispatch; var actions = _objectSpread(_objectSpread({}, 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 Object.keys(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;