UNPKG

@flexis/ui

Version:

Styleless React Components

92 lines (79 loc) 4.64 kB
import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck"; import _createClass from "@babel/runtime-corejs3/helpers/createClass"; import _possibleConstructorReturn from "@babel/runtime-corejs3/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime-corejs3/helpers/getPrototypeOf"; import _inherits from "@babel/runtime-corejs3/helpers/inherits"; import { __decorate } from "tslib"; import _React from 'react'; var Component = _React.Component; import PropTypes from 'prop-types'; import { Bind, subscribeEvent } from '../../helpers'; var Offline = /** @class */ function () { var Offline = /*#__PURE__*/function (_Component) { _inherits(Offline, _Component); function Offline() { var _this; _classCallCheck(this, Offline); _this = _possibleConstructorReturn(this, _getPrototypeOf(Offline).apply(this, arguments)); _this.unsubscribeOnlineEvent = null; _this.unsubscribeOfflineEvent = null; return _this; } _createClass(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 = subscribeEvent(window, 'online', this.onChange); this.unsubscribeOfflineEvent = 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.func, onChange: PropTypes.func } : void 0; __decorate([Bind()], Offline.prototype, "onChange", null); return Offline; }(); export default Offline; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL09mZmxpbmUvT2ZmbGluZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUJBR08sT0FIUDs7QUFJQSxPQUFPLFNBQVAsTUFBc0IsWUFBdEI7QUFDQSxTQUNDLElBREQsRUFFQyxjQUZELFFBR08sZUFIUDs7QUFVQSxJQUFBLE9BQUE7QUFBQTtBQUFBLFlBQUE7QUFBQSxNQUFxQixPQUFyQjtBQUFBOztBQUFBLHVCQUFBO0FBQUE7O0FBQUE7OztBQU9TLFlBQUEsc0JBQUEsR0FBcUMsSUFBckM7QUFDQSxZQUFBLHVCQUFBLEdBQXNDLElBQXRDO0FBUlQ7QUFxRUM7O0FBckVEO0FBQUE7QUFBQSwrQkFVTztBQUFBLFlBR0osUUFISSxHQUlELEtBQUssS0FKSixDQUdKLFFBSEk7QUFNTCxlQUFPLE9BQU8sUUFBUCxLQUFvQixVQUFwQixHQUNKLFFBQVEsQ0FBQyxPQUFPLFNBQVAsS0FBcUIsV0FBckIsSUFBb0MsQ0FBQyxTQUFTLENBQUMsTUFBaEQsQ0FESixHQUVKLElBRkg7QUFHQTtBQW5CRjtBQUFBO0FBQUEsMENBcUJrQjtBQUVoQixZQUFJLENBQUMsU0FBUyxDQUFDLE1BQWYsRUFBdUI7QUFDdEIsZUFBSyxRQUFMO0FBQ0E7O0FBRUQsYUFBSyxVQUFMO0FBQ0E7QUE1QkY7QUFBQTtBQUFBLDZDQThCcUI7QUFDbkIsYUFBSyxhQUFMO0FBQ0E7QUFoQ0Y7QUFBQTtBQUFBLCtCQW1Da0IsS0FuQ2xCLEVBbUMrQjtBQUFBLFlBRzVCLFFBSDRCLEdBSXpCLEtBQUssS0FKb0IsQ0FHNUIsUUFINEI7O0FBTTdCLFlBQUksS0FBSixFQUFXO0FBQ1YsZUFBSyxXQUFMO0FBQ0E7O0FBRUQsWUFBSSxPQUFPLFFBQVAsS0FBb0IsVUFBeEIsRUFBb0M7QUFDbkMsVUFBQSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBWixDQUFSO0FBQ0E7QUFDRDtBQWhERjtBQUFBO0FBQUEsbUNBa0RtQjtBQUNqQixhQUFLLHNCQUFMLEdBQThCLGNBQWMsQ0FDM0MsTUFEMkMsRUFFM0MsUUFGMkMsRUFHM0MsS0FBSyxRQUhzQyxDQUE1QztBQUtBLGFBQUssdUJBQUwsR0FBK0IsY0FBYyxDQUM1QyxNQUQ0QyxFQUU1QyxTQUY0QyxFQUc1QyxLQUFLLFFBSHVDLENBQTdDO0FBS0E7QUE3REY7QUFBQTtBQUFBLHNDQStEc0I7QUFDcEIsYUFBSyxzQkFBTDtBQUNBLGFBQUssc0JBQUwsR0FBOEIsSUFBOUI7QUFDQSxhQUFLLHVCQUFMO0FBQ0EsYUFBSyx1QkFBTCxHQUErQixJQUEvQjtBQUNBO0FBcEVGOztBQUFBO0FBQUEsSUFBcUMsU0FBckM7O0FBRVEsMENBQUEsT0FBQSxDQUFBLFNBQUEsR0FBWTtBQUNsQixJQUFBLFFBQVEsRUFBRSxTQUFTLENBQUMsSUFERjtBQUVsQixJQUFBLFFBQVEsRUFBRSxTQUFTLENBQUM7QUFGRixHQUFaOztBQWlDUCxFQUFBLFVBQUEsQ0FBQSxDQURDLElBQUksRUFDTCxDQUFBLEUsaUJBQUEsRSxVQUFBLEVBYUMsSUFiRCxDQUFBOztBQWtDRCxTQUFBLE9BQUE7QUFBQyxDQXJFRCxFQUFBOztlQUFxQixPIiwic291cmNlUm9vdCI6IiJ9