@redhat-cloud-services/chrome 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ChromeProvider/ChromeProvider.js +108 -69
- package/ChromeProvider/ChromeProvider.js.map +1 -1
- package/ChromeProvider/chromeState.js +6 -6
- package/esm/ChromeProvider/ChromeProvider.js +108 -69
- package/esm/ChromeProvider/ChromeProvider.js.map +1 -1
- package/esm/ChromeProvider/chromeState.js +6 -6
- package/package.json +1 -1
|
@@ -43,41 +43,25 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
43
43
|
var react_1 = require("react");
|
|
44
44
|
var react_core_1 = require("@scalprum/react-core");
|
|
45
45
|
var react_router_dom_1 = require("react-router-dom");
|
|
46
|
-
var debounce_1 = __importDefault(require("lodash/debounce"));
|
|
47
46
|
var ChromeContext_1 = require("../ChromeContext");
|
|
48
47
|
var chromeState_1 = __importDefault(require("./chromeState"));
|
|
49
48
|
var fetch_1 = require("../utils/fetch");
|
|
50
49
|
var getUserIdentity = function () { return (0, fetch_1.get)(fetch_1.IDENTITY_URL); };
|
|
51
|
-
var postDataDebounced = (0, debounce_1.default)(function (pathname, title, bundle) { return __awaiter(void 0, void 0, void 0, function () {
|
|
52
|
-
var data;
|
|
53
|
-
return __generator(this, function (_a) {
|
|
54
|
-
switch (_a.label) {
|
|
55
|
-
case 0: return [4, (0, fetch_1.post)(fetch_1.LAST_VISITED_URL, {
|
|
56
|
-
pathname: pathname,
|
|
57
|
-
title: title,
|
|
58
|
-
bundle: bundle,
|
|
59
|
-
})];
|
|
60
|
-
case 1:
|
|
61
|
-
data = _a.sent();
|
|
62
|
-
return [2, data];
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}); }, 5000);
|
|
66
50
|
var useLastPageVisitedUploader = function (providerState) {
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
|
|
51
|
+
var inactiveDuration = 1000 * 20;
|
|
52
|
+
var batchUpdateInterval = 1000 * 60 * 3;
|
|
53
|
+
var inactiveTimeout = (0, react_1.useRef)(undefined);
|
|
54
|
+
var postBatchData = function (recentPages) { return __awaiter(void 0, void 0, void 0, function () {
|
|
55
|
+
var error_1;
|
|
71
56
|
return __generator(this, function (_a) {
|
|
72
57
|
switch (_a.label) {
|
|
73
58
|
case 0:
|
|
74
59
|
_a.trys.push([0, 2, , 3]);
|
|
75
|
-
return [4,
|
|
60
|
+
return [4, (0, fetch_1.post)(fetch_1.LAST_VISITED_URL, {
|
|
61
|
+
pages: recentPages,
|
|
62
|
+
})];
|
|
76
63
|
case 1:
|
|
77
|
-
|
|
78
|
-
if (data) {
|
|
79
|
-
providerState.setLastVisited(data);
|
|
80
|
-
}
|
|
64
|
+
_a.sent();
|
|
81
65
|
return [3, 3];
|
|
82
66
|
case 2:
|
|
83
67
|
error_1 = _a.sent();
|
|
@@ -87,63 +71,117 @@ var useLastPageVisitedUploader = function (providerState) {
|
|
|
87
71
|
}
|
|
88
72
|
});
|
|
89
73
|
}); };
|
|
74
|
+
var sanitizeRecentPages = function (recentPages) {
|
|
75
|
+
return recentPages.map(function (_a) {
|
|
76
|
+
var pathname = _a.pathname, title = _a.title, bundle = _a.bundle;
|
|
77
|
+
return ({ pathname: pathname, title: title, bundle: bundle });
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
var clearInactiveTimeout = function () {
|
|
81
|
+
if (inactiveTimeout.current !== undefined) {
|
|
82
|
+
clearTimeout(inactiveTimeout.current);
|
|
83
|
+
inactiveTimeout.current = undefined;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
var updateMostRecentPages = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
87
|
+
var recentPages, sanitizedPages;
|
|
88
|
+
return __generator(this, function (_a) {
|
|
89
|
+
switch (_a.label) {
|
|
90
|
+
case 0:
|
|
91
|
+
recentPages = providerState.getState().lastVisitedPages;
|
|
92
|
+
sanitizedPages = sanitizeRecentPages(recentPages);
|
|
93
|
+
return [4, postBatchData(sanitizedPages)];
|
|
94
|
+
case 1:
|
|
95
|
+
_a.sent();
|
|
96
|
+
return [2];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}); };
|
|
90
100
|
(0, react_1.useEffect)(function () {
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
prevTitle = titleTarget.textContent;
|
|
96
|
-
postData(pathname, prevTitle !== null && prevTitle !== void 0 ? prevTitle : '', scalprum.api.chrome.getBundleData().bundleTitle);
|
|
97
|
-
titleObserver = new MutationObserver(function (mutations) {
|
|
98
|
-
var _a;
|
|
99
|
-
var currentTitle = (_a = mutations[0]) === null || _a === void 0 ? void 0 : _a.target.textContent;
|
|
100
|
-
if (typeof currentTitle === 'string' && currentTitle !== prevTitle) {
|
|
101
|
-
try {
|
|
102
|
-
prevTitle = currentTitle;
|
|
103
|
-
postData(pathname, currentTitle, scalprum.api.chrome.getBundleData().bundleTitle);
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
console.error('Unable to update last visited pages!', error);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
titleObserver.observe(titleTarget, {
|
|
111
|
-
childList: true,
|
|
101
|
+
var updateInterval = setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
102
|
+
return __generator(this, function (_a) {
|
|
103
|
+
updateMostRecentPages();
|
|
104
|
+
return [2];
|
|
112
105
|
});
|
|
113
|
-
}
|
|
106
|
+
}); }, batchUpdateInterval);
|
|
107
|
+
var handleVisibilityChange = function () {
|
|
108
|
+
if (document.visibilityState !== 'visible') {
|
|
109
|
+
if (inactiveTimeout.current) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
inactiveTimeout.current = setTimeout(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
113
|
+
return __generator(this, function (_a) {
|
|
114
|
+
updateMostRecentPages();
|
|
115
|
+
return [2];
|
|
116
|
+
});
|
|
117
|
+
}); }, inactiveDuration);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
clearInactiveTimeout();
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
114
124
|
return function () {
|
|
115
|
-
|
|
116
|
-
|
|
125
|
+
clearInterval(updateInterval);
|
|
126
|
+
clearInactiveTimeout();
|
|
127
|
+
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
|
117
128
|
};
|
|
118
|
-
}, [
|
|
129
|
+
}, []);
|
|
119
130
|
};
|
|
120
131
|
var LAST_VISITED_FLAG = 'chrome:lastVisited';
|
|
121
132
|
var useLastVisitedLocalStorage = function (providerState) {
|
|
122
133
|
var pathname = (0, react_router_dom_1.useLocation)().pathname;
|
|
123
134
|
var scalprum = (0, react_core_1.useScalprum)();
|
|
124
135
|
var titleTarget = document.querySelector('title');
|
|
136
|
+
var lastVisitedLocal = localStorage.getItem(LAST_VISITED_FLAG);
|
|
137
|
+
(0, react_1.useEffect)(function () {
|
|
138
|
+
var getInitialPages = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
139
|
+
var firstPages, lastVisited, error_2;
|
|
140
|
+
var _a;
|
|
141
|
+
return __generator(this, function (_b) {
|
|
142
|
+
switch (_b.label) {
|
|
143
|
+
case 0:
|
|
144
|
+
_b.trys.push([0, 4, , 5]);
|
|
145
|
+
if (!!lastVisitedLocal) return [3, 2];
|
|
146
|
+
return [4, (0, fetch_1.get)(fetch_1.LAST_VISITED_URL)];
|
|
147
|
+
case 1:
|
|
148
|
+
firstPages = _b.sent();
|
|
149
|
+
if (firstPages) {
|
|
150
|
+
providerState.setLastVisited(firstPages);
|
|
151
|
+
try {
|
|
152
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify(firstPages));
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
console.error('Unable to load initial last visited pages!', error);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return [3, 3];
|
|
159
|
+
case 2:
|
|
160
|
+
lastVisited = JSON.parse((_a = localStorage.getItem(LAST_VISITED_FLAG)) !== null && _a !== void 0 ? _a : '[]');
|
|
161
|
+
if (!Array.isArray(lastVisited)) {
|
|
162
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify([]));
|
|
163
|
+
providerState.setLastVisited([]);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
providerState.setLastVisited(lastVisited);
|
|
167
|
+
}
|
|
168
|
+
_b.label = 3;
|
|
169
|
+
case 3: return [3, 5];
|
|
170
|
+
case 4:
|
|
171
|
+
error_2 = _b.sent();
|
|
172
|
+
console.error('Unable to parse last visited pages from localStorage!', error_2);
|
|
173
|
+
providerState.setLastVisited([]);
|
|
174
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify([]));
|
|
175
|
+
return [3, 5];
|
|
176
|
+
case 5: return [2];
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
}); };
|
|
180
|
+
getInitialPages();
|
|
181
|
+
}, []);
|
|
125
182
|
(0, react_1.useEffect)(function () {
|
|
126
|
-
var _a;
|
|
127
183
|
var titleObserver;
|
|
128
184
|
var prevTitle;
|
|
129
|
-
var lastVisited = localStorage.getItem(LAST_VISITED_FLAG);
|
|
130
|
-
if (lastVisited) {
|
|
131
|
-
try {
|
|
132
|
-
var lastVisited_1 = JSON.parse((_a = localStorage.getItem(LAST_VISITED_FLAG)) !== null && _a !== void 0 ? _a : '[]');
|
|
133
|
-
if (!Array.isArray(lastVisited_1)) {
|
|
134
|
-
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify([]));
|
|
135
|
-
providerState.setLastVisited([]);
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
providerState.setLastVisited(lastVisited_1);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
console.error('Unable to parse last visited pages from localStorage!', error);
|
|
143
|
-
providerState.setLastVisited([]);
|
|
144
|
-
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify([]));
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
185
|
if (titleTarget) {
|
|
148
186
|
titleObserver = new MutationObserver(function (mutations) {
|
|
149
187
|
var _a, _b;
|
|
@@ -179,6 +217,7 @@ var ChromeProvider = function (_a) {
|
|
|
179
217
|
providerState.current = (0, chromeState_1.default)();
|
|
180
218
|
}
|
|
181
219
|
useLastVisitedLocalStorage(providerState.current);
|
|
220
|
+
useLastPageVisitedUploader(providerState.current);
|
|
182
221
|
(0, react_1.useEffect)(function () {
|
|
183
222
|
isMounted.current = true;
|
|
184
223
|
if (!initialRequest) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA2D;AAC3D,mDAAmD;
|
|
1
|
+
{"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -25,20 +25,20 @@ var chromeState = function () {
|
|
|
25
25
|
visitedBundles: {},
|
|
26
26
|
initialized: false,
|
|
27
27
|
};
|
|
28
|
-
var
|
|
28
|
+
var subscriptions = {
|
|
29
29
|
lastVisited: new Map(),
|
|
30
30
|
favoritePages: new Map(),
|
|
31
31
|
visitedBundles: new Map(),
|
|
32
32
|
};
|
|
33
33
|
function subscribe(event, onUpdate) {
|
|
34
34
|
var id = Symbol(event);
|
|
35
|
-
|
|
35
|
+
subscriptions[event].set(id, { onUpdate: onUpdate });
|
|
36
36
|
onUpdate();
|
|
37
37
|
return id;
|
|
38
38
|
}
|
|
39
39
|
function unsubscribe(id, event) {
|
|
40
|
-
if (
|
|
41
|
-
|
|
40
|
+
if (subscriptions[event].has(id)) {
|
|
41
|
+
subscriptions[event].delete(id);
|
|
42
42
|
}
|
|
43
43
|
else {
|
|
44
44
|
console.error('Trying to unsubscribe non existing client!');
|
|
@@ -46,7 +46,7 @@ var chromeState = function () {
|
|
|
46
46
|
}
|
|
47
47
|
function update(event, attributes) {
|
|
48
48
|
state = __assign(__assign({}, state), attributes);
|
|
49
|
-
var updateSubscriptions =
|
|
49
|
+
var updateSubscriptions = subscriptions[event];
|
|
50
50
|
if (updateSubscriptions.size === 0) {
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
@@ -68,7 +68,7 @@ var chromeState = function () {
|
|
|
68
68
|
}
|
|
69
69
|
function setIdentity(userIdentity) {
|
|
70
70
|
state = __assign(__assign({}, userIdentity), { initialized: true });
|
|
71
|
-
Object.values(
|
|
71
|
+
Object.values(subscriptions)
|
|
72
72
|
.flat()
|
|
73
73
|
.forEach(function (event) {
|
|
74
74
|
Array.from(event.values()).forEach(function (sub) {
|
|
@@ -38,41 +38,25 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
38
38
|
import { useEffect, useRef, useState } from 'react';
|
|
39
39
|
import { useScalprum } from '@scalprum/react-core';
|
|
40
40
|
import { useLocation } from 'react-router-dom';
|
|
41
|
-
import debounce from 'lodash/debounce';
|
|
42
41
|
import { ChromeContext } from '../ChromeContext';
|
|
43
42
|
import chromeState from './chromeState';
|
|
44
43
|
import { IDENTITY_URL, LAST_VISITED_URL, get, post } from '../utils/fetch';
|
|
45
44
|
var getUserIdentity = function () { return get(IDENTITY_URL); };
|
|
46
|
-
var postDataDebounced = debounce(function (pathname, title, bundle) { return __awaiter(void 0, void 0, void 0, function () {
|
|
47
|
-
var data;
|
|
48
|
-
return __generator(this, function (_a) {
|
|
49
|
-
switch (_a.label) {
|
|
50
|
-
case 0: return [4, post(LAST_VISITED_URL, {
|
|
51
|
-
pathname: pathname,
|
|
52
|
-
title: title,
|
|
53
|
-
bundle: bundle,
|
|
54
|
-
})];
|
|
55
|
-
case 1:
|
|
56
|
-
data = _a.sent();
|
|
57
|
-
return [2, data];
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}); }, 5000);
|
|
61
45
|
var useLastPageVisitedUploader = function (providerState) {
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
|
|
46
|
+
var inactiveDuration = 1000 * 20;
|
|
47
|
+
var batchUpdateInterval = 1000 * 60 * 3;
|
|
48
|
+
var inactiveTimeout = useRef(undefined);
|
|
49
|
+
var postBatchData = function (recentPages) { return __awaiter(void 0, void 0, void 0, function () {
|
|
50
|
+
var error_1;
|
|
66
51
|
return __generator(this, function (_a) {
|
|
67
52
|
switch (_a.label) {
|
|
68
53
|
case 0:
|
|
69
54
|
_a.trys.push([0, 2, , 3]);
|
|
70
|
-
return [4,
|
|
55
|
+
return [4, post(LAST_VISITED_URL, {
|
|
56
|
+
pages: recentPages,
|
|
57
|
+
})];
|
|
71
58
|
case 1:
|
|
72
|
-
|
|
73
|
-
if (data) {
|
|
74
|
-
providerState.setLastVisited(data);
|
|
75
|
-
}
|
|
59
|
+
_a.sent();
|
|
76
60
|
return [3, 3];
|
|
77
61
|
case 2:
|
|
78
62
|
error_1 = _a.sent();
|
|
@@ -82,63 +66,117 @@ var useLastPageVisitedUploader = function (providerState) {
|
|
|
82
66
|
}
|
|
83
67
|
});
|
|
84
68
|
}); };
|
|
69
|
+
var sanitizeRecentPages = function (recentPages) {
|
|
70
|
+
return recentPages.map(function (_a) {
|
|
71
|
+
var pathname = _a.pathname, title = _a.title, bundle = _a.bundle;
|
|
72
|
+
return ({ pathname: pathname, title: title, bundle: bundle });
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
var clearInactiveTimeout = function () {
|
|
76
|
+
if (inactiveTimeout.current !== undefined) {
|
|
77
|
+
clearTimeout(inactiveTimeout.current);
|
|
78
|
+
inactiveTimeout.current = undefined;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
var updateMostRecentPages = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
82
|
+
var recentPages, sanitizedPages;
|
|
83
|
+
return __generator(this, function (_a) {
|
|
84
|
+
switch (_a.label) {
|
|
85
|
+
case 0:
|
|
86
|
+
recentPages = providerState.getState().lastVisitedPages;
|
|
87
|
+
sanitizedPages = sanitizeRecentPages(recentPages);
|
|
88
|
+
return [4, postBatchData(sanitizedPages)];
|
|
89
|
+
case 1:
|
|
90
|
+
_a.sent();
|
|
91
|
+
return [2];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}); };
|
|
85
95
|
useEffect(function () {
|
|
86
|
-
var
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
prevTitle = titleTarget.textContent;
|
|
91
|
-
postData(pathname, prevTitle !== null && prevTitle !== void 0 ? prevTitle : '', scalprum.api.chrome.getBundleData().bundleTitle);
|
|
92
|
-
titleObserver = new MutationObserver(function (mutations) {
|
|
93
|
-
var _a;
|
|
94
|
-
var currentTitle = (_a = mutations[0]) === null || _a === void 0 ? void 0 : _a.target.textContent;
|
|
95
|
-
if (typeof currentTitle === 'string' && currentTitle !== prevTitle) {
|
|
96
|
-
try {
|
|
97
|
-
prevTitle = currentTitle;
|
|
98
|
-
postData(pathname, currentTitle, scalprum.api.chrome.getBundleData().bundleTitle);
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
console.error('Unable to update last visited pages!', error);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
titleObserver.observe(titleTarget, {
|
|
106
|
-
childList: true,
|
|
96
|
+
var updateInterval = setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
97
|
+
return __generator(this, function (_a) {
|
|
98
|
+
updateMostRecentPages();
|
|
99
|
+
return [2];
|
|
107
100
|
});
|
|
108
|
-
}
|
|
101
|
+
}); }, batchUpdateInterval);
|
|
102
|
+
var handleVisibilityChange = function () {
|
|
103
|
+
if (document.visibilityState !== 'visible') {
|
|
104
|
+
if (inactiveTimeout.current) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
inactiveTimeout.current = setTimeout(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
108
|
+
return __generator(this, function (_a) {
|
|
109
|
+
updateMostRecentPages();
|
|
110
|
+
return [2];
|
|
111
|
+
});
|
|
112
|
+
}); }, inactiveDuration);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
clearInactiveTimeout();
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
109
119
|
return function () {
|
|
110
|
-
|
|
111
|
-
|
|
120
|
+
clearInterval(updateInterval);
|
|
121
|
+
clearInactiveTimeout();
|
|
122
|
+
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
|
112
123
|
};
|
|
113
|
-
}, [
|
|
124
|
+
}, []);
|
|
114
125
|
};
|
|
115
126
|
var LAST_VISITED_FLAG = 'chrome:lastVisited';
|
|
116
127
|
var useLastVisitedLocalStorage = function (providerState) {
|
|
117
128
|
var pathname = useLocation().pathname;
|
|
118
129
|
var scalprum = useScalprum();
|
|
119
130
|
var titleTarget = document.querySelector('title');
|
|
131
|
+
var lastVisitedLocal = localStorage.getItem(LAST_VISITED_FLAG);
|
|
132
|
+
useEffect(function () {
|
|
133
|
+
var getInitialPages = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
134
|
+
var firstPages, lastVisited, error_2;
|
|
135
|
+
var _a;
|
|
136
|
+
return __generator(this, function (_b) {
|
|
137
|
+
switch (_b.label) {
|
|
138
|
+
case 0:
|
|
139
|
+
_b.trys.push([0, 4, , 5]);
|
|
140
|
+
if (!!lastVisitedLocal) return [3, 2];
|
|
141
|
+
return [4, get(LAST_VISITED_URL)];
|
|
142
|
+
case 1:
|
|
143
|
+
firstPages = _b.sent();
|
|
144
|
+
if (firstPages) {
|
|
145
|
+
providerState.setLastVisited(firstPages);
|
|
146
|
+
try {
|
|
147
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify(firstPages));
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.error('Unable to load initial last visited pages!', error);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return [3, 3];
|
|
154
|
+
case 2:
|
|
155
|
+
lastVisited = JSON.parse((_a = localStorage.getItem(LAST_VISITED_FLAG)) !== null && _a !== void 0 ? _a : '[]');
|
|
156
|
+
if (!Array.isArray(lastVisited)) {
|
|
157
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify([]));
|
|
158
|
+
providerState.setLastVisited([]);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
providerState.setLastVisited(lastVisited);
|
|
162
|
+
}
|
|
163
|
+
_b.label = 3;
|
|
164
|
+
case 3: return [3, 5];
|
|
165
|
+
case 4:
|
|
166
|
+
error_2 = _b.sent();
|
|
167
|
+
console.error('Unable to parse last visited pages from localStorage!', error_2);
|
|
168
|
+
providerState.setLastVisited([]);
|
|
169
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify([]));
|
|
170
|
+
return [3, 5];
|
|
171
|
+
case 5: return [2];
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}); };
|
|
175
|
+
getInitialPages();
|
|
176
|
+
}, []);
|
|
120
177
|
useEffect(function () {
|
|
121
|
-
var _a;
|
|
122
178
|
var titleObserver;
|
|
123
179
|
var prevTitle;
|
|
124
|
-
var lastVisited = localStorage.getItem(LAST_VISITED_FLAG);
|
|
125
|
-
if (lastVisited) {
|
|
126
|
-
try {
|
|
127
|
-
var lastVisited_1 = JSON.parse((_a = localStorage.getItem(LAST_VISITED_FLAG)) !== null && _a !== void 0 ? _a : '[]');
|
|
128
|
-
if (!Array.isArray(lastVisited_1)) {
|
|
129
|
-
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify([]));
|
|
130
|
-
providerState.setLastVisited([]);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
providerState.setLastVisited(lastVisited_1);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
console.error('Unable to parse last visited pages from localStorage!', error);
|
|
138
|
-
providerState.setLastVisited([]);
|
|
139
|
-
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify([]));
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
180
|
if (titleTarget) {
|
|
143
181
|
titleObserver = new MutationObserver(function (mutations) {
|
|
144
182
|
var _a, _b;
|
|
@@ -174,6 +212,7 @@ var ChromeProvider = function (_a) {
|
|
|
174
212
|
providerState.current = chromeState();
|
|
175
213
|
}
|
|
176
214
|
useLastVisitedLocalStorage(providerState.current);
|
|
215
|
+
useLastPageVisitedUploader(providerState.current);
|
|
177
216
|
useEffect(function () {
|
|
178
217
|
isMounted.current = true;
|
|
179
218
|
if (!initialRequest) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -22,20 +22,20 @@ var chromeState = function () {
|
|
|
22
22
|
visitedBundles: {},
|
|
23
23
|
initialized: false,
|
|
24
24
|
};
|
|
25
|
-
var
|
|
25
|
+
var subscriptions = {
|
|
26
26
|
lastVisited: new Map(),
|
|
27
27
|
favoritePages: new Map(),
|
|
28
28
|
visitedBundles: new Map(),
|
|
29
29
|
};
|
|
30
30
|
function subscribe(event, onUpdate) {
|
|
31
31
|
var id = Symbol(event);
|
|
32
|
-
|
|
32
|
+
subscriptions[event].set(id, { onUpdate: onUpdate });
|
|
33
33
|
onUpdate();
|
|
34
34
|
return id;
|
|
35
35
|
}
|
|
36
36
|
function unsubscribe(id, event) {
|
|
37
|
-
if (
|
|
38
|
-
|
|
37
|
+
if (subscriptions[event].has(id)) {
|
|
38
|
+
subscriptions[event].delete(id);
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
41
|
console.error('Trying to unsubscribe non existing client!');
|
|
@@ -43,7 +43,7 @@ var chromeState = function () {
|
|
|
43
43
|
}
|
|
44
44
|
function update(event, attributes) {
|
|
45
45
|
state = __assign(__assign({}, state), attributes);
|
|
46
|
-
var updateSubscriptions =
|
|
46
|
+
var updateSubscriptions = subscriptions[event];
|
|
47
47
|
if (updateSubscriptions.size === 0) {
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
@@ -65,7 +65,7 @@ var chromeState = function () {
|
|
|
65
65
|
}
|
|
66
66
|
function setIdentity(userIdentity) {
|
|
67
67
|
state = __assign(__assign({}, userIdentity), { initialized: true });
|
|
68
|
-
Object.values(
|
|
68
|
+
Object.values(subscriptions)
|
|
69
69
|
.flat()
|
|
70
70
|
.forEach(function (event) {
|
|
71
71
|
Array.from(event.values()).forEach(function (sub) {
|