From 481ef923d3101f0016822cf14b4f89a4f41f478c Mon Sep 17 00:00:00 2001 From: Steve Date: Mon, 8 Jul 2019 13:50:29 +0100 Subject: [PATCH 1/2] Prevented loading when server side rendering --- src/DefaultPlayer/DefaultPlayer.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/DefaultPlayer/DefaultPlayer.js b/src/DefaultPlayer/DefaultPlayer.js index 2ff074c..a3df59e 100644 --- a/src/DefaultPlayer/DefaultPlayer.js +++ b/src/DefaultPlayer/DefaultPlayer.js @@ -122,6 +122,10 @@ DefaultPlayer.propTypes = { video: PropTypes.object.isRequired }; +// Check if we're on the server side. +// This is because otherwise accessing things like navigator or window may break the app when the app has server side rendering. +const isServerSide = () => !(typeof window !== 'undefined' && window !== null); + const connectedPlayer = videoConnect( DefaultPlayer, ({ networkState, readyState, error, ...restState }) => ({ @@ -132,7 +136,8 @@ const connectedPlayer = videoConnect( // TODO: This is not pretty. Doing device detection to remove // spinner on iOS devices for a quick and dirty win. We should see if // we can use the same readyState check safely across all browsers. - loading: readyState < (/iPad|iPhone|iPod/.test(navigator.userAgent) ? 1 : 4), + // Added ! not server side redener check + loading: readyState < (!isServerSide() && /iPad|iPhone|iPod/.test(navigator.userAgent) ? 1 : 4), percentagePlayed: getPercentagePlayed(restState), percentageBuffered: getPercentageBuffered(restState), ...restState From 16413200978ea2688d31242ebaddde7d525d25d2 Mon Sep 17 00:00:00 2001 From: Steve Date: Mon, 8 Jul 2019 14:00:01 +0100 Subject: [PATCH 2/2] Added build to enable install from Github repo via npm --- .gitignore | 1 - dist/index.js | 3643 +++++++++++++++++++++++++++++++++++++++++++++ dist/styles.css | 312 ++++ package-lock.json | 3410 +++++++++++++++++++++--------------------- 4 files changed, 5680 insertions(+), 1686 deletions(-) create mode 100644 dist/index.js create mode 100644 dist/styles.css diff --git a/.gitignore b/.gitignore index 44b5048..b0e3907 100755 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ node_modules npm-debug.log .DS_Store -dist diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..89fcb38 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,3643 @@ +module.exports = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.Overlay = exports.Fullscreen = exports.PlayPause = exports.Captions = exports.Volume = exports.Seek = exports.Time = exports.DefaultPlayer = exports.apiHelpers = exports.default = undefined; + + var _video = __webpack_require__(2); + + var _video2 = _interopRequireDefault(_video); + + var _api = __webpack_require__(96); + + var apiHelpers = _interopRequireWildcard(_api); + + var _DefaultPlayer = __webpack_require__(107); + + var _DefaultPlayer2 = _interopRequireDefault(_DefaultPlayer); + + 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 }; } + + exports.default = _video2.default; + exports.apiHelpers = apiHelpers; + exports.DefaultPlayer = _DefaultPlayer2.default; + exports.Time = _DefaultPlayer.Time; + exports.Seek = _DefaultPlayer.Seek; + exports.Volume = _DefaultPlayer.Volume; + exports.Captions = _DefaultPlayer.Captions; + exports.PlayPause = _DefaultPlayer.PlayPause; + exports.Fullscreen = _DefaultPlayer.Fullscreen; + exports.Overlay = _DefaultPlayer.Overlay; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _getPrototypeOf = __webpack_require__(3); + + var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + + var _classCallCheck2 = __webpack_require__(29); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _createClass2 = __webpack_require__(30); + + var _createClass3 = _interopRequireDefault(_createClass2); + + var _possibleConstructorReturn2 = __webpack_require__(34); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(80); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _extends2 = __webpack_require__(88); + + var _extends3 = _interopRequireDefault(_extends2); + + var _assign = __webpack_require__(89); + + var _assign2 = _interopRequireDefault(_assign); + + var _react = __webpack_require__(93); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(94); + + var _constants = __webpack_require__(95); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var defaultMapStateToProps = function defaultMapStateToProps() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return (0, _assign2.default)({ + video: (0, _extends3.default)({}, state) + }); + }; /** + * This is a HoC that finds a single + *