1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 |
|
5 |
|
6 | var core_1 = require("@aws-amplify/core");
|
7 | var logger = new core_1.ConsoleLogger('urlListener');
|
8 | var handler;
|
9 | exports.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 ];
|
16 | }
|
17 | try {
|
18 | (_a = require('react-native'), Linking = _a.Linking, AppState = _a.AppState);
|
19 | }
|
20 | catch (error) {
|
21 |
|
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 |
|
31 | if (Linking.removeEventListener === typeof 'function') {
|
32 | Linking.removeEventListener('url', handler);
|
33 | Linking.addEventListener('url', handler);
|
34 | }
|
35 | else {
|
36 |
|
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 , 2];
|
46 | return [4 , Linking.getInitialURL()];
|
47 | case 1:
|
48 | initialUrl = _a.sent();
|
49 | handler({ url: initialUrl });
|
50 | _a.label = 2;
|
51 | case 2: return [2 ];
|
52 | }
|
53 | });
|
54 | }); });
|
55 | return [2 ];
|
56 | });
|
57 | }); });
|
58 |
|
\ | No newline at end of file |