only filling releases elements when opening popup

clearing dom element after closing the popup
only requesting one release when setting footer version name
only requesting 5 releases
updated releases api url
This commit is contained in:
Miodec 2022-10-09 01:13:53 +02:00
parent c9d357cf82
commit f09d4bb50f
4 changed files with 45 additions and 23 deletions

View file

@ -1113,6 +1113,13 @@
@extend .ffscroll;
overflow-y: scroll;
.preloader {
color: var(--main-color);
display: grid;
place-content: center center;
font-size: 2rem;
}
.tip {
text-align: center;
color: var(--sub-color);

View file

@ -1,4 +1,29 @@
import format from "date-fns/format";
import { getReleasesFromGitHub } from "../utils/misc";
export function show(): void {
$("#versionHistory").html(`
<div class="preloader">
<i class="fas fa-fw fa-spin fa-circle-notch"></i>
</div
`);
getReleasesFromGitHub().then((releases) => {
$("#versionHistory").html(`<div class="releases"></div`);
releases.forEach((release: MonkeyTypes.GithubRelease) => {
if (!release.draft && !release.prerelease) {
$("#versionHistory .releases").append(`
<div class="release">
<div class="title">${release.name}</div>
<div class="date">${format(
new Date(release.published_at),
"dd MMM yyyy"
)}</div>
<div class="body">${release.body.replace(/\r\n/g, "<br>")}</div>
</div>
`);
}
});
});
$("#versionHistoryWrapper")
.css("opacity", 0)
.removeClass("hidden")
@ -11,6 +36,7 @@ function hide(): void {
.css("opacity", 1)
.animate({ opacity: 0 }, 125, () => {
$("#versionHistoryWrapper").addClass("hidden");
$("#versionHistory").html("");
});
}

View file

@ -18,8 +18,10 @@ if (window.location.hostname === "localhost") {
`<a class='button configureAPI' href='http://localhost:5005/configure/' target='_blank' aria-label="Configure API" data-balloon-pos="right"><i class="fas fa-fw fa-server"></i></a>`
);
} else {
Misc.getReleasesFromGitHub().then((v) => {
NewVersionNotification.show(v[0].name);
Misc.getLatestReleaseFromGitHub().then((v) => {
$("#bottom .version .text").text(v);
$("#bottom .version").css("opacity", 1);
NewVersionNotification.show(v);
});
}

View file

@ -1,5 +1,4 @@
import * as Loader from "../elements/loader";
import format from "date-fns/format";
function hexToHSL(hex: string): {
hue: number;
@ -344,30 +343,18 @@ export function median(arr: number[]): number {
}
}
export async function getLatestReleaseFromGitHub(): Promise<string> {
const releases = await $.getJSON(
"https://api.github.com/repos/monkeytypegame/monkeytype/releases?per_page=1"
);
return releases[0].name;
}
export async function getReleasesFromGitHub(): Promise<
MonkeyTypes.GithubRelease[]
> {
return $.getJSON(
"https://api.github.com/repos/Miodec/monkeytype/releases",
(data) => {
$("#bottom .version .text").text(data[0].name);
$("#bottom .version").css("opacity", 1);
$("#versionHistory .releases").empty();
data.forEach((release: MonkeyTypes.GithubRelease) => {
if (!release.draft && !release.prerelease) {
$("#versionHistory .releases").append(`
<div class="release">
<div class="title">${release.name}</div>
<div class="date">${format(
new Date(release.published_at),
"dd MMM yyyy"
)}</div>
<div class="body">${release.body.replace(/\r\n/g, "<br>")}</div>
</div>
`);
}
});
}
"https://api.github.com/repos/monkeytypegame/monkeytype/releases?per_page=5"
);
}