UNPKG

@flexis/ui

Version:

Styleless React Components

57 lines 3.81 kB
import { __decorate } from "tslib"; import { Component } from 'react'; import PropTypes from 'prop-types'; import { Bind, subscribeEvent } from '../../helpers'; let Offline = /** @class */ (() => { class Offline extends Component { constructor() { super(...arguments); this.unsubscribeOnlineEvent = null; this.unsubscribeOfflineEvent = null; } render() { const { children } = this.props; return typeof children === 'function' ? children(typeof navigator !== 'undefined' && !navigator.onLine) : null; } componentDidMount() { if (!navigator.onLine) { this.onChange(); } this.addEffects(); } componentWillUnmount() { this.removeEffects(); } onChange(event) { const { onChange } = this.props; if (event) { this.forceUpdate(); } if (typeof onChange === 'function') { onChange(!navigator.onLine); } } addEffects() { this.unsubscribeOnlineEvent = subscribeEvent(window, 'online', this.onChange); this.unsubscribeOfflineEvent = subscribeEvent(window, 'offline', this.onChange); } removeEffects() { this.unsubscribeOnlineEvent(); this.unsubscribeOnlineEvent = null; this.unsubscribeOfflineEvent(); this.unsubscribeOfflineEvent = null; } } Offline.propTypes = { children: PropTypes.func, onChange: PropTypes.func }; __decorate([ Bind() ], Offline.prototype, "onChange", null); return Offline; })(); export default Offline; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmbGluZS5qc3giLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9PZmZsaW5lL09mZmxpbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRU4sU0FBUyxFQUNULE1BQU0sT0FBTyxDQUFDO0FBQ2YsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sRUFDTixJQUFJLEVBQ0osY0FBYyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBT3ZCO0lBQUEsTUFBcUIsT0FBUSxTQUFRLFNBQWlCO1FBQXREOztZQU9TLDJCQUFzQixHQUFlLElBQUksQ0FBQztZQUMxQyw0QkFBdUIsR0FBZSxJQUFJLENBQUM7UUE2RHBELENBQUM7UUEzREEsTUFBTTtZQUVMLE1BQU0sRUFDTCxRQUFRLEVBQ1IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBRWYsT0FBTyxPQUFPLFFBQVEsS0FBSyxVQUFVO2dCQUNwQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pFLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDVCxDQUFDO1FBRUQsaUJBQWlCO1lBRWhCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUN0QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDaEI7WUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsQ0FBQztRQUVELG9CQUFvQjtZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUdPLFFBQVEsQ0FBQyxLQUFhO1lBRTdCLE1BQU0sRUFDTCxRQUFRLEVBQ1IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBRWYsSUFBSSxLQUFLLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ25CO1lBRUQsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLEVBQUU7Z0JBQ25DLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM1QjtRQUNGLENBQUM7UUFFTyxVQUFVO1lBQ2pCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxjQUFjLENBQzNDLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FDYixDQUFDO1lBQ0YsSUFBSSxDQUFDLHVCQUF1QixHQUFHLGNBQWMsQ0FDNUMsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLENBQUMsUUFBUSxDQUNiLENBQUM7UUFDSCxDQUFDO1FBRU8sYUFBYTtZQUNwQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDckMsQ0FBQzs7SUFsRU0saUJBQVMsR0FBRztRQUNsQixRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUk7UUFDeEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJO0tBQ3hCLENBQUM7SUE4QkY7UUFEQyxJQUFJLEVBQUU7MkNBY047SUFxQkYsY0FBQztLQUFBO2VBckVvQixPQUFPIn0=