UNPKG

2.51 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5// SPDX-License-Identifier: Apache-2.0
6var core_1 = require("@aws-amplify/core");
7var logger = new core_1.ConsoleLogger('urlListener');
8var handler;
9exports.default = (function (callback) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
10 var Linking, AppState, subscription;
11 var _a;
12 var _b;
13 return tslib_1.__generator(this, function (_c) {
14 if (handler) {
15 return [2 /*return*/];
16 }
17 try {
18 (_a = require('react-native'), Linking = _a.Linking, AppState = _a.AppState);
19 }
20 catch (error) {
21 /* Keep webpack happy */
22 }
23 handler =
24 handler ||
25 (function (_a) {
26 var url = _a.url, rest = tslib_1.__rest(_a, ["url"]);
27 logger.debug('urlListener', tslib_1.__assign({ url: url }, rest));
28 callback({ url: url });
29 });
30 // Handles backward compatibility. removeEventListener is only available on RN versions before 0.65.
31 if (Linking.removeEventListener === typeof 'function') {
32 Linking.removeEventListener('url', handler);
33 Linking.addEventListener('url', handler);
34 }
35 else {
36 // remove() method is only available on RN v0.65+.
37 (_b = subscription === null || subscription === void 0 ? void 0 : subscription.remove) === null || _b === void 0 ? void 0 : _b.call(subscription);
38 subscription = Linking.addEventListener('url', handler);
39 }
40 AppState.addEventListener('change', function (newAppState) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
41 var initialUrl;
42 return tslib_1.__generator(this, function (_a) {
43 switch (_a.label) {
44 case 0:
45 if (!(newAppState === 'active')) return [3 /*break*/, 2];
46 return [4 /*yield*/, Linking.getInitialURL()];
47 case 1:
48 initialUrl = _a.sent();
49 handler({ url: initialUrl });
50 _a.label = 2;
51 case 2: return [2 /*return*/];
52 }
53 });
54 }); });
55 return [2 /*return*/];
56 });
57}); });
58//# sourceMappingURL=urlListener.native.js.map
\No newline at end of file