mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-10-29 02:07:55 +08:00
not storing ape keys in snapshot,
redownloading when opening the ape keys popup to get latest dates
This commit is contained in:
parent
8049cb661d
commit
bd0c2b9026
3 changed files with 20 additions and 32 deletions
|
|
@ -183,27 +183,6 @@ export async function getUserResults(): Promise<boolean> {
|
|||
}
|
||||
}
|
||||
|
||||
export async function getUserApeKeys(): Promise<
|
||||
MonkeyTypes.ApeKeys | undefined
|
||||
> {
|
||||
const user = firebase.auth().currentUser;
|
||||
if (user == null) return undefined;
|
||||
if (dbSnapshot === null) return undefined;
|
||||
if (dbSnapshot.apeKeys !== undefined) {
|
||||
return dbSnapshot.apeKeys;
|
||||
} else {
|
||||
const response = await Ape.apeKeys.get();
|
||||
|
||||
if (response.status !== 200) {
|
||||
Notifications.add("Error getting ape keys: " + response.message, -1);
|
||||
return undefined;
|
||||
}
|
||||
|
||||
dbSnapshot.apeKeys = response.data as MonkeyTypes.ApeKeys;
|
||||
return dbSnapshot.apeKeys;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getUserHighestWpm<M extends MonkeyTypes.Mode>(
|
||||
mode: M,
|
||||
mode2: MonkeyTypes.Mode2<M>,
|
||||
|
|
|
|||
|
|
@ -1,10 +1,24 @@
|
|||
import * as DB from "../db";
|
||||
import Ape from "../ape";
|
||||
import * as Loader from "../elements/loader";
|
||||
import * as Notifications from "../elements/notifications";
|
||||
|
||||
let apeKeys: MonkeyTypes.ApeKeys = {};
|
||||
|
||||
async function getData(): Promise<void> {
|
||||
Loader.show();
|
||||
const response = await Ape.apeKeys.get();
|
||||
|
||||
if (response.status !== 200) {
|
||||
Notifications.add("Error getting ape keys: " + response.message, -1);
|
||||
return undefined;
|
||||
}
|
||||
|
||||
apeKeys = response.data as MonkeyTypes.ApeKeys;
|
||||
Loader.hide();
|
||||
}
|
||||
|
||||
function refreshList(): void {
|
||||
const data = DB.getSnapshot().apeKeys;
|
||||
const data = apeKeys;
|
||||
if (!data) return;
|
||||
const table = $("#apeKeysPopupWrapper table tbody");
|
||||
table.empty();
|
||||
|
|
@ -71,9 +85,7 @@ export function hide(): void {
|
|||
//show the popup
|
||||
export async function show(): Promise<void> {
|
||||
if ($("#apeKeysPopupWrapper").hasClass("hidden")) {
|
||||
Loader.show();
|
||||
await DB.getUserApeKeys();
|
||||
Loader.hide();
|
||||
await getData();
|
||||
refreshList();
|
||||
$("#apeKeysPopupWrapper")
|
||||
.stop(true, true)
|
||||
|
|
@ -107,17 +119,15 @@ $(document).on("click", "#apeKeysPopup table .keyButtons .button", () => {
|
|||
|
||||
$(document).on("click", "#apeKeysPopup table .icon-button", async (e) => {
|
||||
const keyId = $(e.target).closest("tr").attr("keyId") as string;
|
||||
const snap = DB.getSnapshot();
|
||||
const key = snap.apeKeys?.[keyId];
|
||||
if (!key || !snap.apeKeys) return;
|
||||
const key = apeKeys?.[keyId];
|
||||
if (!key || !apeKeys) return;
|
||||
Loader.show();
|
||||
const response = await Ape.apeKeys.update(keyId, { enabled: !key.enabled });
|
||||
Loader.hide();
|
||||
if (response.status !== 200) {
|
||||
return Notifications.add("Failed to update key: " + response.message, -1);
|
||||
}
|
||||
snap.apeKeys[keyId].enabled = !key.enabled;
|
||||
DB.setSnapshot(snap);
|
||||
apeKeys[keyId].enabled = !key.enabled;
|
||||
refreshList();
|
||||
if (key.enabled) {
|
||||
Notifications.add("Key active", 1);
|
||||
|
|
|
|||
1
frontend/src/scripts/types/types.d.ts
vendored
1
frontend/src/scripts/types/types.d.ts
vendored
|
|
@ -415,7 +415,6 @@ declare namespace MonkeyTypes {
|
|||
quoteMod?: boolean;
|
||||
discordId?: string;
|
||||
config?: Config;
|
||||
apeKeys?: ApeKeys;
|
||||
}
|
||||
|
||||
type PartialRecord<K extends keyof any, T> = {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue