Skip to content

Commit ad503f4

Browse files
committed
Cache changelog upon retrieving it initially
So that no further requests need to be made on subsequent opens.
1 parent 2f932f3 commit ad503f4

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

src/index.ts

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,30 +1027,31 @@ document.addEventListener("DOMContentLoaded", async () => {
10271027
const changelogTapThreshold = 5;
10281028
const changelogTapTimeout = 1000;
10291029
let changelogTapTimer: NodeJS.Timeout;
1030+
let changelogFetchSuccess = false;
1031+
let changelogHTML: string;
10301032

10311033
const changelogLink = document.querySelector("#changelog-link") as HTMLAnchorElement;
10321034
changelogLink.addEventListener("click", async (e) => {
10331035
e.preventDefault();
1034-
// Fetch changelog
1035-
// TODO: Cache it
1036-
let changelog: string;
1037-
let changelogFetchSuccess = false;
1038-
try {
1039-
const res = await fetch("CHANGELOG.html");
1040-
if (res.status !== 200) {
1041-
console.error("Could not fetch changelog:", res.statusText);
1042-
changelog = `<p class="changelog-error">Could not retrieve changelog.</p>`;
1043-
} else {
1044-
changelog = await res.text();
1045-
changelogFetchSuccess = true;
1036+
// Fetch changelog (or use cached version if already fetched)
1037+
if (!changelogFetchSuccess) {
1038+
try {
1039+
const res = await fetch("CHANGELOG.html");
1040+
if (res.status !== 200) {
1041+
console.error("Could not fetch changelog:", res.statusText);
1042+
changelogHTML = `<p class="changelog-error">Could not retrieve changelog.</p>`;
1043+
} else {
1044+
changelogHTML = await res.text();
1045+
changelogFetchSuccess = true;
1046+
}
1047+
} catch (e) {
1048+
console.error("Could not fetch changelog:", e);
1049+
changelogHTML = `<p class="changelog-error">Could not retrieve changelog.</p>`;
10461050
}
1047-
} catch (e) {
1048-
console.error("Could not fetch changelog:", e);
1049-
changelog = `<p class="changelog-error">Could not retrieve changelog.</p>`;
10501051
}
10511052
const dialogElem = createDialogContentFromTemplate("#changelog-content");
10521053
const changelogElem = dialogElem.querySelector("#changelog-text") as HTMLElement;
1053-
changelogElem.innerHTML = changelog;
1054+
changelogElem.innerHTML = changelogHTML;
10541055
if (changelogFetchSuccess) {
10551056
// Capitalize title
10561057
(changelogElem.children.item(0) as HTMLElement).style.textTransform = "uppercase";

0 commit comments

Comments
 (0)