@flexis/ui
Version:
Styleless React Components
110 lines (87 loc) • 5.21 kB
JavaScript
;
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==