UNPKG

@itwin/presentation-frontend

Version:

Frontend of iModel.js Presentation library

53 lines 2.35 kB
"use strict"; /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ /** @packageDocumentation * @module Core */ Object.defineProperty(exports, "__esModule", { value: true }); exports.ConnectivityInformationProvider = void 0; const core_bentley_1 = require("@itwin/core-bentley"); const core_common_1 = require("@itwin/core-common"); const core_frontend_1 = require("@itwin/core-frontend"); /** * A helper that wraps connectivity-related APIs in NativeApp * to give a unified information for interested parties in presentation. * * @internal */ class ConnectivityInformationProvider { _currentStatus; _unsubscribeFromInternetConnectivityChangedEvent; onInternetConnectivityChanged = new core_bentley_1.BeEvent(); constructor() { if (core_frontend_1.NativeApp.isValid) { this._unsubscribeFromInternetConnectivityChangedEvent = core_frontend_1.NativeApp.onInternetConnectivityChanged.addListener(this.onNativeAppInternetConnectivityChanged); // eslint-disable-next-line @typescript-eslint/no-floating-promises core_frontend_1.NativeApp.checkInternetConnectivity().then((status) => { if (undefined === this._currentStatus) { this._currentStatus = status; } }); } else { this._currentStatus = core_common_1.InternetConnectivityStatus.Online; } } [Symbol.dispose]() { this._unsubscribeFromInternetConnectivityChangedEvent && this._unsubscribeFromInternetConnectivityChangedEvent(); } onNativeAppInternetConnectivityChanged = (status) => { if (this._currentStatus === status) { return; } this._currentStatus = status; this.onInternetConnectivityChanged.raiseEvent({ status }); }; get status() { return this._currentStatus ?? core_common_1.InternetConnectivityStatus.Offline; } } exports.ConnectivityInformationProvider = ConnectivityInformationProvider; //# sourceMappingURL=ConnectivityInformationProvider.js.map