added a last seen version tracker

showing notification when new version is released
This commit is contained in:
Jack 2021-08-29 15:05:38 +01:00
parent d1f7f95059
commit fa7ad4581e
5 changed files with 42 additions and 4 deletions

View file

@ -127,6 +127,7 @@ const refactoredSrc = [
"./src/js/elements/sign-out-button.js",
"./src/js/elements/about-page.js",
"./src/js/elements/psa.js",
"./src/js/elements/new-version-notification.js",
"./src/js/popups/custom-text-popup.js",
"./src/js/popups/quote-search-popup.js",

View file

@ -0,0 +1,30 @@
import * as Notifications from "./notifications";
import * as VersionPopup from "./version-popup";
export async function show(version) {
const memory = await getMemory();
if (memory === "") {
setMemory(version);
return;
}
if (memory === version) return;
Notifications.add(
`Version ${version} has been released. Click to view the changelog.`,
1,
7,
"Announcement",
"code-branch",
() => {
VersionPopup.show();
}
);
setMemory(version);
}
function setMemory(v) {
window.localStorage.setItem("lastSeenVersion", v);
}
function getMemory() {
return window.localStorage.getItem("lastSeenVersion") ?? "";
}

View file

@ -384,8 +384,8 @@ export function median(arr) {
}
}
export function getReleasesFromGitHub() {
$.getJSON(
export async function getReleasesFromGitHub() {
return $.getJSON(
"https://api.github.com/repos/Miodec/monkeytype/releases",
(data) => {
$("#bottom .version .text").text(data[0].name);

View file

@ -1,8 +1,12 @@
$(document.body).on("click", ".version", () => {
export function show() {
$("#versionHistoryWrapper")
.css("opacity", 0)
.removeClass("hidden")
.animate({ opacity: 1 }, 125);
}
$(document.body).on("click", ".version", () => {
show();
});
$(document.body).on("click", "#versionHistoryWrapper", () => {

View file

@ -7,11 +7,14 @@ import * as RouteController from "./route-controller";
import * as UI from "./ui";
import * as SignOutButton from "./sign-out-button";
import * as MonkeyPower from "./monkey-power";
import * as NewVersionNotification from "./new-version-notification";
ManualRestart.set();
Misc.migrateFromCookies();
UpdateConfig.loadFromLocalStorage();
Misc.getReleasesFromGitHub();
Misc.getReleasesFromGitHub().then((v) => {
NewVersionNotification.show(v[0].name);
});
RouteController.handleInitialPageClasses(window.location.pathname);
$(document).ready(() => {