UNPKG

@flexis/ui

Version:

Styleless React Components

110 lines (87 loc) 5.21 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property"); _Object$defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits")); var _tslib = require("tslib"); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _helpers = require("../../helpers"); var Component = _react.default.Component; var Offline = /** @class */ function () { var Offline = /*#__PURE__*/function (_Component) { (0, _inherits2.default)(Offline, _Component); function Offline() { var _this; (0, _classCallCheck2.default)(this, Offline); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Offline).apply(this, arguments)); _this.unsubscribeOnlineEvent = null; _this.unsubscribeOfflineEvent = null; return _this; } (0, _createClass2.default)(Offline, [{ key: "render", value: function render() { var children = this.props.children; return typeof children === 'function' ? children(typeof navigator !== 'undefined' && !navigator.onLine) : null; } }, { key: "componentDidMount", value: function componentDidMount() { if (!navigator.onLine) { this.onChange(); } this.addEffects(); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.removeEffects(); } }, { key: "onChange", value: function onChange(event) { var onChange = this.props.onChange; if (event) { this.forceUpdate(); } if (typeof onChange === 'function') { onChange(!navigator.onLine); } } }, { key: "addEffects", value: function addEffects() { this.unsubscribeOnlineEvent = (0, _helpers.subscribeEvent)(window, 'online', this.onChange); this.unsubscribeOfflineEvent = (0, _helpers.subscribeEvent)(window, 'offline', this.onChange); } }, { key: "removeEffects", value: function removeEffects() { this.unsubscribeOnlineEvent(); this.unsubscribeOnlineEvent = null; this.unsubscribeOfflineEvent(); this.unsubscribeOfflineEvent = null; } }]); return Offline; }(Component); process.env.NODE_ENV !== "production" ? Offline.propTypes = { children: _propTypes.default.func, onChange: _propTypes.default.func } : void 0; (0, _tslib.__decorate)([(0, _helpers.Bind)()], Offline.prototype, "onChange", null); return Offline; }(); var _default = Offline; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL09mZmxpbmUvT2ZmbGluZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBSUE7O0FBQ0E7Ozs7QUFVQSxJQUFBLE9BQUE7QUFBQTtBQUFBLFlBQUE7QUFBQSxNQUFxQixPQUFyQjtBQUFBOztBQUFBLHVCQUFBO0FBQUE7O0FBQUE7O0FBT1MsWUFBQSxzQkFBQSxHQUFxQyxJQUFyQztBQUNBLFlBQUEsdUJBQUEsR0FBc0MsSUFBdEM7QUFSVDtBQXFFQzs7QUFyRUQ7QUFBQTtBQUFBLCtCQVVPO0FBQUEsWUFHSixRQUhJLEdBSUQsS0FBSyxLQUpKLENBR0osUUFISTtBQU1MLGVBQU8sT0FBTyxRQUFQLEtBQW9CLFVBQXBCLEdBQ0osUUFBUSxDQUFDLE9BQU8sU0FBUCxLQUFxQixXQUFyQixJQUFvQyxDQUFDLFNBQVMsQ0FBQyxNQUFoRCxDQURKLEdBRUosSUFGSDtBQUdBO0FBbkJGO0FBQUE7QUFBQSwwQ0FxQmtCO0FBRWhCLFlBQUksQ0FBQyxTQUFTLENBQUMsTUFBZixFQUF1QjtBQUN0QixlQUFLLFFBQUw7QUFDQTs7QUFFRCxhQUFLLFVBQUw7QUFDQTtBQTVCRjtBQUFBO0FBQUEsNkNBOEJxQjtBQUNuQixhQUFLLGFBQUw7QUFDQTtBQWhDRjtBQUFBO0FBQUEsK0JBbUNrQixLQW5DbEIsRUFtQytCO0FBQUEsWUFHNUIsUUFINEIsR0FJekIsS0FBSyxLQUpvQixDQUc1QixRQUg0Qjs7QUFNN0IsWUFBSSxLQUFKLEVBQVc7QUFDVixlQUFLLFdBQUw7QUFDQTs7QUFFRCxZQUFJLE9BQU8sUUFBUCxLQUFvQixVQUF4QixFQUFvQztBQUNuQyxVQUFBLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFaLENBQVI7QUFDQTtBQUNEO0FBaERGO0FBQUE7QUFBQSxtQ0FrRG1CO0FBQ2pCLGFBQUssc0JBQUwsR0FBOEIsNkJBQzdCLE1BRDZCLEVBRTdCLFFBRjZCLEVBRzdCLEtBQUssUUFId0IsQ0FBOUI7QUFLQSxhQUFLLHVCQUFMLEdBQStCLDZCQUM5QixNQUQ4QixFQUU5QixTQUY4QixFQUc5QixLQUFLLFFBSHlCLENBQS9CO0FBS0E7QUE3REY7QUFBQTtBQUFBLHNDQStEc0I7QUFDcEIsYUFBSyxzQkFBTDtBQUNBLGFBQUssc0JBQUwsR0FBOEIsSUFBOUI7QUFDQSxhQUFLLHVCQUFMO0FBQ0EsYUFBSyx1QkFBTCxHQUErQixJQUEvQjtBQUNBO0FBcEVGO0FBQUE7QUFBQSxJQUFxQyxTQUFyQzs7QUFFUSwwQ0FBQSxPQUFBLENBQUEsU0FBQSxHQUFZO0FBQ2xCLElBQUEsUUFBUSxFQUFFLG1CQUFVLElBREY7QUFFbEIsSUFBQSxRQUFRLEVBQUUsbUJBQVU7QUFGRixHQUFaO0FBaUNQLHlCQUFBLENBREMsb0JBQ0QsQ0FBQSxFLGlCQUFBLEUsVUFBQSxFQWFDLElBYkQ7QUFrQ0QsU0FBQSxPQUFBO0FBQUMsQ0FyRUQsRUFBQTs7ZUFBcUIsTyIsInNvdXJjZVJvb3QiOiIifQ==