@redhat-cloud-services/chrome 1.0.7 → 1.0.9
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/ChromeContext/ChromeContext.d.ts +1 -1
- package/ChromeProvider/ChromeProvider.js +111 -69
- package/ChromeProvider/ChromeProvider.js.map +1 -1
- package/ChromeProvider/chromeState.d.ts +1 -1
- package/ChromeProvider/chromeState.js +20 -8
- package/ChromeProvider/chromeState.js.map +1 -1
- package/esm/ChromeProvider/ChromeProvider.js +111 -69
- package/esm/ChromeProvider/ChromeProvider.js.map +1 -1
- package/esm/ChromeProvider/chromeState.js +20 -8
- package/esm/ChromeProvider/chromeState.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
declare const ChromeContext: import("react").Context<{
|
|
3
3
|
getState: () => import("../ChromeProvider/chromeState").UserIdentity;
|
|
4
4
|
setLastVisited: (pages: import("../ChromeProvider/chromeState").LastVisitedPage[]) => void;
|
|
5
|
-
setIdentity: (userIdentity: import("../ChromeProvider/chromeState").UserIdentity) => void;
|
|
5
|
+
setIdentity: ({ lastVisitedPages, ...userIdentity }: import("../ChromeProvider/chromeState").UserIdentity) => void;
|
|
6
6
|
setFavoritePages: (pages: import("../ChromeProvider/chromeState").FavoritePage[]) => void;
|
|
7
7
|
setVisitedBundles: (visitedBundles: import("../ChromeProvider/chromeState").VisitedBundles) => void;
|
|
8
8
|
subscribe: (event: import("../ChromeProvider/chromeState").UpdateEvents, onUpdate: () => void) => symbol;
|
|
@@ -35,6 +35,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
39
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
40
|
+
if (ar || !(i in from)) {
|
|
41
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
42
|
+
ar[i] = from[i];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
46
|
+
};
|
|
38
47
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
48
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
49
|
};
|
|
@@ -43,41 +52,25 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
43
52
|
var react_1 = require("react");
|
|
44
53
|
var react_core_1 = require("@scalprum/react-core");
|
|
45
54
|
var react_router_dom_1 = require("react-router-dom");
|
|
46
|
-
var debounce_1 = __importDefault(require("lodash/debounce"));
|
|
47
55
|
var ChromeContext_1 = require("../ChromeContext");
|
|
48
56
|
var chromeState_1 = __importDefault(require("./chromeState"));
|
|
49
57
|
var fetch_1 = require("../utils/fetch");
|
|
50
58
|
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
59
|
var useLastPageVisitedUploader = function (providerState) {
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
|
|
60
|
+
var inactiveDuration = 1000 * 20;
|
|
61
|
+
var batchUpdateInterval = 1000 * 60 * 3;
|
|
62
|
+
var inactiveTimeout = (0, react_1.useRef)(undefined);
|
|
63
|
+
var postBatchData = function (recentPages) { return __awaiter(void 0, void 0, void 0, function () {
|
|
64
|
+
var error_1;
|
|
71
65
|
return __generator(this, function (_a) {
|
|
72
66
|
switch (_a.label) {
|
|
73
67
|
case 0:
|
|
74
68
|
_a.trys.push([0, 2, , 3]);
|
|
75
|
-
return [4,
|
|
69
|
+
return [4, (0, fetch_1.post)(fetch_1.LAST_VISITED_URL, {
|
|
70
|
+
pages: recentPages,
|
|
71
|
+
})];
|
|
76
72
|
case 1:
|
|
77
|
-
|
|
78
|
-
if (data) {
|
|
79
|
-
providerState.setLastVisited(data);
|
|
80
|
-
}
|
|
73
|
+
_a.sent();
|
|
81
74
|
return [3, 3];
|
|
82
75
|
case 2:
|
|
83
76
|
error_1 = _a.sent();
|
|
@@ -87,63 +80,111 @@ var useLastPageVisitedUploader = function (providerState) {
|
|
|
87
80
|
}
|
|
88
81
|
});
|
|
89
82
|
}); };
|
|
83
|
+
var sanitizeRecentPages = function (recentPages) {
|
|
84
|
+
return recentPages.map(function (_a) {
|
|
85
|
+
var pathname = _a.pathname, title = _a.title, bundle = _a.bundle;
|
|
86
|
+
return ({ pathname: pathname, title: title, bundle: bundle });
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
var clearInactiveTimeout = function () {
|
|
90
|
+
if (inactiveTimeout.current !== undefined) {
|
|
91
|
+
clearTimeout(inactiveTimeout.current);
|
|
92
|
+
inactiveTimeout.current = undefined;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
var updateMostRecentPages = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
96
|
+
var recentPages, sanitizedPages;
|
|
97
|
+
return __generator(this, function (_a) {
|
|
98
|
+
switch (_a.label) {
|
|
99
|
+
case 0:
|
|
100
|
+
recentPages = providerState.getState().lastVisitedPages;
|
|
101
|
+
sanitizedPages = sanitizeRecentPages(recentPages);
|
|
102
|
+
return [4, postBatchData(sanitizedPages)];
|
|
103
|
+
case 1:
|
|
104
|
+
_a.sent();
|
|
105
|
+
return [2];
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}); };
|
|
90
109
|
(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,
|
|
110
|
+
var updateInterval = setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
111
|
+
return __generator(this, function (_a) {
|
|
112
|
+
updateMostRecentPages();
|
|
113
|
+
return [2];
|
|
112
114
|
});
|
|
113
|
-
}
|
|
115
|
+
}); }, batchUpdateInterval);
|
|
116
|
+
var handleVisibilityChange = function () {
|
|
117
|
+
if (document.visibilityState !== 'visible') {
|
|
118
|
+
if (inactiveTimeout.current) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
inactiveTimeout.current = setTimeout(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
122
|
+
return __generator(this, function (_a) {
|
|
123
|
+
updateMostRecentPages();
|
|
124
|
+
return [2];
|
|
125
|
+
});
|
|
126
|
+
}); }, inactiveDuration);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
clearInactiveTimeout();
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
114
133
|
return function () {
|
|
115
|
-
|
|
116
|
-
|
|
134
|
+
clearInterval(updateInterval);
|
|
135
|
+
clearInactiveTimeout();
|
|
136
|
+
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
|
117
137
|
};
|
|
118
|
-
}, [
|
|
138
|
+
}, []);
|
|
119
139
|
};
|
|
120
140
|
var LAST_VISITED_FLAG = 'chrome:lastVisited';
|
|
121
141
|
var useLastVisitedLocalStorage = function (providerState) {
|
|
122
142
|
var pathname = (0, react_router_dom_1.useLocation)().pathname;
|
|
123
143
|
var scalprum = (0, react_core_1.useScalprum)();
|
|
124
144
|
var titleTarget = document.querySelector('title');
|
|
145
|
+
var getInitialPages = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
146
|
+
var localVisited, firstPages, _a, error_2;
|
|
147
|
+
var _b, _c;
|
|
148
|
+
return __generator(this, function (_d) {
|
|
149
|
+
switch (_d.label) {
|
|
150
|
+
case 0:
|
|
151
|
+
localVisited = [];
|
|
152
|
+
try {
|
|
153
|
+
localVisited = JSON.parse((_b = localStorage.getItem(LAST_VISITED_FLAG)) !== null && _b !== void 0 ? _b : '[]');
|
|
154
|
+
if (!Array.isArray(localVisited)) {
|
|
155
|
+
localVisited = [];
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
console.error('Unable to parse last visited pages from localStorage!', error);
|
|
160
|
+
localVisited = [];
|
|
161
|
+
}
|
|
162
|
+
_d.label = 1;
|
|
163
|
+
case 1:
|
|
164
|
+
_d.trys.push([1, 3, , 4]);
|
|
165
|
+
_a = [[]];
|
|
166
|
+
return [4, (0, fetch_1.get)(fetch_1.LAST_VISITED_URL)];
|
|
167
|
+
case 2:
|
|
168
|
+
firstPages = __spreadArray.apply(void 0, [__spreadArray.apply(void 0, _a.concat([((_c = (_d.sent())) !== null && _c !== void 0 ? _c : []), true])), localVisited, true]).slice(0, 10);
|
|
169
|
+
providerState.setLastVisited(firstPages);
|
|
170
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify(firstPages));
|
|
171
|
+
return [3, 4];
|
|
172
|
+
case 3:
|
|
173
|
+
error_2 = _d.sent();
|
|
174
|
+
console.error('Unable to load initial last visited pages!', error_2);
|
|
175
|
+
providerState.setLastVisited(localVisited);
|
|
176
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify(localVisited));
|
|
177
|
+
return [3, 4];
|
|
178
|
+
case 4: return [2];
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}); };
|
|
182
|
+
(0, react_1.useEffect)(function () {
|
|
183
|
+
getInitialPages();
|
|
184
|
+
}, []);
|
|
125
185
|
(0, react_1.useEffect)(function () {
|
|
126
|
-
var _a;
|
|
127
186
|
var titleObserver;
|
|
128
187
|
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
188
|
if (titleTarget) {
|
|
148
189
|
titleObserver = new MutationObserver(function (mutations) {
|
|
149
190
|
var _a, _b;
|
|
@@ -179,6 +220,7 @@ var ChromeProvider = function (_a) {
|
|
|
179
220
|
providerState.current = (0, chromeState_1.default)();
|
|
180
221
|
}
|
|
181
222
|
useLastVisitedLocalStorage(providerState.current);
|
|
223
|
+
useLastPageVisitedUploader(providerState.current);
|
|
182
224
|
(0, react_1.useEffect)(function () {
|
|
183
225
|
isMounted.current = true;
|
|
184
226
|
if (!initialRequest) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export declare enum UpdateEvents {
|
|
|
24
24
|
declare const chromeState: () => {
|
|
25
25
|
getState: () => UserIdentity;
|
|
26
26
|
setLastVisited: (pages: LastVisitedPage[]) => void;
|
|
27
|
-
setIdentity: (userIdentity: UserIdentity) => void;
|
|
27
|
+
setIdentity: ({ lastVisitedPages, ...userIdentity }: UserIdentity) => void;
|
|
28
28
|
setFavoritePages: (pages: FavoritePage[]) => void;
|
|
29
29
|
setVisitedBundles: (visitedBundles: VisitedBundles) => void;
|
|
30
30
|
subscribe: (event: UpdateEvents, onUpdate: () => void) => symbol;
|
|
@@ -10,6 +10,17 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
13
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
25
|
exports.UpdateEvents = void 0;
|
|
15
26
|
var UpdateEvents;
|
|
@@ -25,20 +36,20 @@ var chromeState = function () {
|
|
|
25
36
|
visitedBundles: {},
|
|
26
37
|
initialized: false,
|
|
27
38
|
};
|
|
28
|
-
var
|
|
39
|
+
var subscriptions = {
|
|
29
40
|
lastVisited: new Map(),
|
|
30
41
|
favoritePages: new Map(),
|
|
31
42
|
visitedBundles: new Map(),
|
|
32
43
|
};
|
|
33
44
|
function subscribe(event, onUpdate) {
|
|
34
45
|
var id = Symbol(event);
|
|
35
|
-
|
|
46
|
+
subscriptions[event].set(id, { onUpdate: onUpdate });
|
|
36
47
|
onUpdate();
|
|
37
48
|
return id;
|
|
38
49
|
}
|
|
39
50
|
function unsubscribe(id, event) {
|
|
40
|
-
if (
|
|
41
|
-
|
|
51
|
+
if (subscriptions[event].has(id)) {
|
|
52
|
+
subscriptions[event].delete(id);
|
|
42
53
|
}
|
|
43
54
|
else {
|
|
44
55
|
console.error('Trying to unsubscribe non existing client!');
|
|
@@ -46,7 +57,7 @@ var chromeState = function () {
|
|
|
46
57
|
}
|
|
47
58
|
function update(event, attributes) {
|
|
48
59
|
state = __assign(__assign({}, state), attributes);
|
|
49
|
-
var updateSubscriptions =
|
|
60
|
+
var updateSubscriptions = subscriptions[event];
|
|
50
61
|
if (updateSubscriptions.size === 0) {
|
|
51
62
|
return;
|
|
52
63
|
}
|
|
@@ -66,9 +77,10 @@ var chromeState = function () {
|
|
|
66
77
|
function getState() {
|
|
67
78
|
return state;
|
|
68
79
|
}
|
|
69
|
-
function setIdentity(
|
|
70
|
-
|
|
71
|
-
|
|
80
|
+
function setIdentity(_a) {
|
|
81
|
+
var lastVisitedPages = _a.lastVisitedPages, userIdentity = __rest(_a, ["lastVisitedPages"]);
|
|
82
|
+
state = __assign(__assign(__assign({}, state), userIdentity), { initialized: true });
|
|
83
|
+
Object.values(subscriptions)
|
|
72
84
|
.flat()
|
|
73
85
|
.forEach(function (event) {
|
|
74
86
|
Array.from(event.values()).forEach(function (sub) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chromeState.js","sourceRoot":"","sources":["../src/ChromeProvider/chromeState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chromeState.js","sourceRoot":"","sources":["../src/ChromeProvider/chromeState.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,2CAA2B,CAAA;IAC3B,+CAA+B,CAAA;IAC/B,iDAAiC,CAAA;AACnC,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAED,IAAM,WAAW,GAAG;IAClB,IAAI,KAAK,GAAiB;QACxB,gBAAgB,EAAE,EAAE;QACpB,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,KAAK;KACnB,CAAC;IAGF,IAAM,aAAa,GAEf;QACF,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,cAAc,EAAE,IAAI,GAAG,EAAE;KAC1B,CAAC;IAGF,SAAS,SAAS,CAAC,KAAmB,EAAE,QAAoB;QAG1D,IAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzB,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;QAE3C,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,SAAS,WAAW,CAAC,EAAU,EAAE,KAAmB;QAClD,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAChC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACjC;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC7D;IACH,CAAC;IAGD,SAAS,MAAM,CAAC,KAAmB,EAAE,UAAiC;QACpE,KAAK,yBACA,KAAK,GACL,UAAU,CACd,CAAC;QACF,IAAM,mBAAmB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,mBAAmB,CAAC,IAAI,KAAK,CAAC,EAAE;YAClC,OAAO;SACR;QAGD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU;YAC1D,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,SAAS,cAAc,CAAC,KAAwB;QAC9C,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,SAAS,gBAAgB,CAAC,KAAqB;QAC7C,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,SAAS,iBAAiB,CAAC,cAA8B;QACvD,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS,QAAQ;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,SAAS,WAAW,CAAC,EAAmD;QAAjD,IAAA,gBAAgB,sBAAA,EAAK,YAAY,cAAnC,oBAAqC,CAAF;QACtD,KAAK,kCAAQ,KAAK,GAAK,YAAY,KAAE,WAAW,EAAE,IAAI,GAAE,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;aACzB,IAAI,EAAE;aACN,OAAO,CAAC,UAAC,KAAK;YACb,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBACrC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,OAAO;QACL,QAAQ,UAAA;QACR,cAAc,gBAAA;QACd,WAAW,aAAA;QACX,gBAAgB,kBAAA;QAChB,iBAAiB,mBAAA;QACjB,SAAS,WAAA;QACT,WAAW,aAAA;QACX,MAAM,QAAA;KACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -34,45 +34,38 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
38
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
39
|
+
if (ar || !(i in from)) {
|
|
40
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
41
|
+
ar[i] = from[i];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
45
|
+
};
|
|
37
46
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
38
47
|
import { useEffect, useRef, useState } from 'react';
|
|
39
48
|
import { useScalprum } from '@scalprum/react-core';
|
|
40
49
|
import { useLocation } from 'react-router-dom';
|
|
41
|
-
import debounce from 'lodash/debounce';
|
|
42
50
|
import { ChromeContext } from '../ChromeContext';
|
|
43
51
|
import chromeState from './chromeState';
|
|
44
52
|
import { IDENTITY_URL, LAST_VISITED_URL, get, post } from '../utils/fetch';
|
|
45
53
|
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
54
|
var useLastPageVisitedUploader = function (providerState) {
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
|
|
55
|
+
var inactiveDuration = 1000 * 20;
|
|
56
|
+
var batchUpdateInterval = 1000 * 60 * 3;
|
|
57
|
+
var inactiveTimeout = useRef(undefined);
|
|
58
|
+
var postBatchData = function (recentPages) { return __awaiter(void 0, void 0, void 0, function () {
|
|
59
|
+
var error_1;
|
|
66
60
|
return __generator(this, function (_a) {
|
|
67
61
|
switch (_a.label) {
|
|
68
62
|
case 0:
|
|
69
63
|
_a.trys.push([0, 2, , 3]);
|
|
70
|
-
return [4,
|
|
64
|
+
return [4, post(LAST_VISITED_URL, {
|
|
65
|
+
pages: recentPages,
|
|
66
|
+
})];
|
|
71
67
|
case 1:
|
|
72
|
-
|
|
73
|
-
if (data) {
|
|
74
|
-
providerState.setLastVisited(data);
|
|
75
|
-
}
|
|
68
|
+
_a.sent();
|
|
76
69
|
return [3, 3];
|
|
77
70
|
case 2:
|
|
78
71
|
error_1 = _a.sent();
|
|
@@ -82,63 +75,111 @@ var useLastPageVisitedUploader = function (providerState) {
|
|
|
82
75
|
}
|
|
83
76
|
});
|
|
84
77
|
}); };
|
|
78
|
+
var sanitizeRecentPages = function (recentPages) {
|
|
79
|
+
return recentPages.map(function (_a) {
|
|
80
|
+
var pathname = _a.pathname, title = _a.title, bundle = _a.bundle;
|
|
81
|
+
return ({ pathname: pathname, title: title, bundle: bundle });
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
var clearInactiveTimeout = function () {
|
|
85
|
+
if (inactiveTimeout.current !== undefined) {
|
|
86
|
+
clearTimeout(inactiveTimeout.current);
|
|
87
|
+
inactiveTimeout.current = undefined;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
var updateMostRecentPages = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
91
|
+
var recentPages, sanitizedPages;
|
|
92
|
+
return __generator(this, function (_a) {
|
|
93
|
+
switch (_a.label) {
|
|
94
|
+
case 0:
|
|
95
|
+
recentPages = providerState.getState().lastVisitedPages;
|
|
96
|
+
sanitizedPages = sanitizeRecentPages(recentPages);
|
|
97
|
+
return [4, postBatchData(sanitizedPages)];
|
|
98
|
+
case 1:
|
|
99
|
+
_a.sent();
|
|
100
|
+
return [2];
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}); };
|
|
85
104
|
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,
|
|
105
|
+
var updateInterval = setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
106
|
+
return __generator(this, function (_a) {
|
|
107
|
+
updateMostRecentPages();
|
|
108
|
+
return [2];
|
|
107
109
|
});
|
|
108
|
-
}
|
|
110
|
+
}); }, batchUpdateInterval);
|
|
111
|
+
var handleVisibilityChange = function () {
|
|
112
|
+
if (document.visibilityState !== 'visible') {
|
|
113
|
+
if (inactiveTimeout.current) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
inactiveTimeout.current = setTimeout(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
117
|
+
return __generator(this, function (_a) {
|
|
118
|
+
updateMostRecentPages();
|
|
119
|
+
return [2];
|
|
120
|
+
});
|
|
121
|
+
}); }, inactiveDuration);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
clearInactiveTimeout();
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
109
128
|
return function () {
|
|
110
|
-
|
|
111
|
-
|
|
129
|
+
clearInterval(updateInterval);
|
|
130
|
+
clearInactiveTimeout();
|
|
131
|
+
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
|
112
132
|
};
|
|
113
|
-
}, [
|
|
133
|
+
}, []);
|
|
114
134
|
};
|
|
115
135
|
var LAST_VISITED_FLAG = 'chrome:lastVisited';
|
|
116
136
|
var useLastVisitedLocalStorage = function (providerState) {
|
|
117
137
|
var pathname = useLocation().pathname;
|
|
118
138
|
var scalprum = useScalprum();
|
|
119
139
|
var titleTarget = document.querySelector('title');
|
|
140
|
+
var getInitialPages = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
141
|
+
var localVisited, firstPages, _a, error_2;
|
|
142
|
+
var _b, _c;
|
|
143
|
+
return __generator(this, function (_d) {
|
|
144
|
+
switch (_d.label) {
|
|
145
|
+
case 0:
|
|
146
|
+
localVisited = [];
|
|
147
|
+
try {
|
|
148
|
+
localVisited = JSON.parse((_b = localStorage.getItem(LAST_VISITED_FLAG)) !== null && _b !== void 0 ? _b : '[]');
|
|
149
|
+
if (!Array.isArray(localVisited)) {
|
|
150
|
+
localVisited = [];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
console.error('Unable to parse last visited pages from localStorage!', error);
|
|
155
|
+
localVisited = [];
|
|
156
|
+
}
|
|
157
|
+
_d.label = 1;
|
|
158
|
+
case 1:
|
|
159
|
+
_d.trys.push([1, 3, , 4]);
|
|
160
|
+
_a = [[]];
|
|
161
|
+
return [4, get(LAST_VISITED_URL)];
|
|
162
|
+
case 2:
|
|
163
|
+
firstPages = __spreadArray.apply(void 0, [__spreadArray.apply(void 0, _a.concat([((_c = (_d.sent())) !== null && _c !== void 0 ? _c : []), true])), localVisited, true]).slice(0, 10);
|
|
164
|
+
providerState.setLastVisited(firstPages);
|
|
165
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify(firstPages));
|
|
166
|
+
return [3, 4];
|
|
167
|
+
case 3:
|
|
168
|
+
error_2 = _d.sent();
|
|
169
|
+
console.error('Unable to load initial last visited pages!', error_2);
|
|
170
|
+
providerState.setLastVisited(localVisited);
|
|
171
|
+
localStorage.setItem(LAST_VISITED_FLAG, JSON.stringify(localVisited));
|
|
172
|
+
return [3, 4];
|
|
173
|
+
case 4: return [2];
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}); };
|
|
177
|
+
useEffect(function () {
|
|
178
|
+
getInitialPages();
|
|
179
|
+
}, []);
|
|
120
180
|
useEffect(function () {
|
|
121
|
-
var _a;
|
|
122
181
|
var titleObserver;
|
|
123
182
|
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
183
|
if (titleTarget) {
|
|
143
184
|
titleObserver = new MutationObserver(function (mutations) {
|
|
144
185
|
var _a, _b;
|
|
@@ -174,6 +215,7 @@ var ChromeProvider = function (_a) {
|
|
|
174
215
|
providerState.current = chromeState();
|
|
175
216
|
}
|
|
176
217
|
useLastVisitedLocalStorage(providerState.current);
|
|
218
|
+
useLastPageVisitedUploader(providerState.current);
|
|
177
219
|
useEffect(function () {
|
|
178
220
|
isMounted.current = true;
|
|
179
221
|
if (!initialRequest) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChromeProvider.js","sourceRoot":"","sources":["../../src/ChromeProvider/ChromeProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,17 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
12
23
|
export var UpdateEvents;
|
|
13
24
|
(function (UpdateEvents) {
|
|
14
25
|
UpdateEvents["lastVisited"] = "lastVisited";
|
|
@@ -22,20 +33,20 @@ var chromeState = function () {
|
|
|
22
33
|
visitedBundles: {},
|
|
23
34
|
initialized: false,
|
|
24
35
|
};
|
|
25
|
-
var
|
|
36
|
+
var subscriptions = {
|
|
26
37
|
lastVisited: new Map(),
|
|
27
38
|
favoritePages: new Map(),
|
|
28
39
|
visitedBundles: new Map(),
|
|
29
40
|
};
|
|
30
41
|
function subscribe(event, onUpdate) {
|
|
31
42
|
var id = Symbol(event);
|
|
32
|
-
|
|
43
|
+
subscriptions[event].set(id, { onUpdate: onUpdate });
|
|
33
44
|
onUpdate();
|
|
34
45
|
return id;
|
|
35
46
|
}
|
|
36
47
|
function unsubscribe(id, event) {
|
|
37
|
-
if (
|
|
38
|
-
|
|
48
|
+
if (subscriptions[event].has(id)) {
|
|
49
|
+
subscriptions[event].delete(id);
|
|
39
50
|
}
|
|
40
51
|
else {
|
|
41
52
|
console.error('Trying to unsubscribe non existing client!');
|
|
@@ -43,7 +54,7 @@ var chromeState = function () {
|
|
|
43
54
|
}
|
|
44
55
|
function update(event, attributes) {
|
|
45
56
|
state = __assign(__assign({}, state), attributes);
|
|
46
|
-
var updateSubscriptions =
|
|
57
|
+
var updateSubscriptions = subscriptions[event];
|
|
47
58
|
if (updateSubscriptions.size === 0) {
|
|
48
59
|
return;
|
|
49
60
|
}
|
|
@@ -63,9 +74,10 @@ var chromeState = function () {
|
|
|
63
74
|
function getState() {
|
|
64
75
|
return state;
|
|
65
76
|
}
|
|
66
|
-
function setIdentity(
|
|
67
|
-
|
|
68
|
-
|
|
77
|
+
function setIdentity(_a) {
|
|
78
|
+
var lastVisitedPages = _a.lastVisitedPages, userIdentity = __rest(_a, ["lastVisitedPages"]);
|
|
79
|
+
state = __assign(__assign(__assign({}, state), userIdentity), { initialized: true });
|
|
80
|
+
Object.values(subscriptions)
|
|
69
81
|
.flat()
|
|
70
82
|
.forEach(function (event) {
|
|
71
83
|
Array.from(event.values()).forEach(function (sub) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chromeState.js","sourceRoot":"","sources":["../../src/ChromeProvider/chromeState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chromeState.js","sourceRoot":"","sources":["../../src/ChromeProvider/chromeState.ts"],"names":[],"mappings":"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"}
|