Skip to content

Commit 3a51360

Browse files
Better optimize calls to tornpal.
1 parent e483a9d commit 3a51360

File tree

2 files changed

+47
-35
lines changed

2 files changed

+47
-35
lines changed

extension/changelog.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"logs": {
77
"features": [],
88
"fixes": [{ "message": "Correctly count the supply pack value.", "contributor": "DeKleineKobini" }],
9-
"changes": [],
9+
"changes": [{ "message": "Better optimize calls to tornpal.", "contributor": "DeKleineKobini" }],
1010
"removed": []
1111
}
1212
},

extension/scripts/features/ff-scouter/ttFFScouterGauge.js

+46-34
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
const GREEN_ARROW = chrome.runtime.getURL("resources/images/svg-icons/green-arrow.svg");
1414
const RED_ARROW = chrome.runtime.getURL("resources/images/svg-icons/red-arrow.svg");
1515

16+
let scoutLock = false;
17+
1618
const feature = featureManager.registerFeature(
1719
"FF Scouter Gauge",
1820
"ff-scouter",
@@ -38,9 +40,12 @@
3840
}
3941

4042
async function triggerGauge() {
43+
if (scoutLock) return;
44+
scoutLock = true;
45+
4146
const honorBars = [...document.findAll(".honor-text-wrap")];
4247
if (honorBars) {
43-
applyGauge(honorBars);
48+
applyGauge(honorBars).finally(() => (scoutLock = false));
4449
} else {
4550
let selector;
4651

@@ -72,7 +77,7 @@
7277
return;
7378
}
7479

75-
applyGauge([...document.findAll(selector)]);
80+
applyGauge([...document.findAll(selector)]).finally(() => (scoutLock = false));
7681
}
7782
}
7883

@@ -81,44 +86,51 @@
8186
.filter((element) => !element.classList.contains("tt-ff-scouter-indicator"))
8287
.map((element) => ({ element, id: extractPlayerId(element) }))
8388
.filter(({ id }) => !!id);
84-
if (elements.length === 0) return;
85-
86-
scoutFFGroup(elements.map(({ id }) => id)).then((scouts) => {
87-
if (!scouts.status) return;
89+
if (elements.length === 0) return Promise.resolve();
8890

89-
for (const { element, id } of elements) {
90-
element.classList.add("tt-ff-scouter-indicator");
91-
if (!element.classList.contains("indicator-lines")) {
92-
element.classList.remove("small", "big");
93-
element.classList.add("indicator-lines");
94-
element.style.setProperty("--arrow-width", "20px");
91+
return new Promise((resolve) => {
92+
scoutFFGroup(elements.map(({ id }) => id)).then((scouts) => {
93+
if (!scouts.status) {
94+
resolve();
95+
return;
9596
}
9697

97-
const ff = scouts.results[id]?.result?.value;
98-
if (ff) {
99-
const percent = convertFFToPercentage(ff);
100-
element.style.setProperty("--band-percent", percent);
101-
102-
element.find(".tt-ff-scouter-arrow")?.remove();
103-
104-
let arrow;
105-
if (percent < 33) {
106-
arrow = BLUE_ARROW;
107-
} else if (percent < 66) {
108-
arrow = GREEN_ARROW;
109-
} else {
110-
arrow = RED_ARROW;
98+
for (const { element, id } of elements) {
99+
element.classList.add("tt-ff-scouter-indicator");
100+
if (!element.classList.contains("indicator-lines")) {
101+
element.classList.remove("small", "big");
102+
element.classList.add("indicator-lines");
103+
element.style.setProperty("--arrow-width", "20px");
111104
}
112105

113-
element.appendChild(
114-
document.newElement({
115-
type: "img",
116-
class: "tt-ff-scouter-arrow",
117-
attributes: { src: arrow },
118-
})
119-
);
106+
const ff = scouts.results[id]?.result?.value;
107+
if (ff) {
108+
const percent = convertFFToPercentage(ff);
109+
element.style.setProperty("--band-percent", percent);
110+
111+
element.find(".tt-ff-scouter-arrow")?.remove();
112+
113+
let arrow;
114+
if (percent < 33) {
115+
arrow = BLUE_ARROW;
116+
} else if (percent < 66) {
117+
arrow = GREEN_ARROW;
118+
} else {
119+
arrow = RED_ARROW;
120+
}
121+
122+
element.appendChild(
123+
document.newElement({
124+
type: "img",
125+
class: "tt-ff-scouter-arrow",
126+
attributes: { src: arrow },
127+
})
128+
);
129+
}
120130
}
121-
}
131+
132+
resolve();
133+
});
122134
});
123135
}
124136

0 commit comments

Comments
 (0)