From 6a94e967e1d2952dbc05164dcb545fa7d184be6f Mon Sep 17 00:00:00 2001 From: s-prechtl Date: Tue, 24 Jan 2023 10:38:12 +0100 Subject: [PATCH] leaderboard better --- frontend/src/components/Leaderboard.vue | 26 +++++++++++++------- frontend/src/components/LeaderboardEntry.vue | 16 ++++++++---- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/frontend/src/components/Leaderboard.vue b/frontend/src/components/Leaderboard.vue index 2ee7b32..88ba767 100644 --- a/frontend/src/components/Leaderboard.vue +++ b/frontend/src/components/Leaderboard.vue @@ -9,9 +9,12 @@ -
+
+
+ Loading... +
@@ -39,11 +42,7 @@ export default { }, created() { this.updatePage(); - window.addEventListener('itemInserted', (event) => { - if (event.key === 'game-isRunning' && event.value === 'false'){ - this.updatePage(); - } - }, false) + window.addEventListener('itemInserted', event => this.onItemInserted(event), false); }, methods: { async fetchPage() { @@ -54,20 +53,29 @@ export default { return this.type === "totalplaytime" ? "Total Playtime" : "Highscore"; }, nextPage() { + if (this.page.length !== this.entriesPerPage) return; + this.pageNumber++; this.updatePage(); }, prevPage() { - if (this.pageNumber > 0) this.pageNumber--; + if (this.pageNumber <= 0) return; + + this.pageNumber--; this.updatePage(); }, async updatePage() { let tempPage = await this.fetchPage(); for (let i = 0; i < this.entriesPerPage; i++) { - this.page.pop() + this.page.pop(); } for (const entry of tempPage) { - this.page.push(entry) + this.page.push(entry); + } + }, + onItemInserted(event) { + if (event.key === 'game-isRunning' && event.value === 'false') { + this.updatePage(); } } } diff --git a/frontend/src/components/LeaderboardEntry.vue b/frontend/src/components/LeaderboardEntry.vue index 7f37210..d39a95f 100644 --- a/frontend/src/components/LeaderboardEntry.vue +++ b/frontend/src/components/LeaderboardEntry.vue @@ -1,17 +1,18 @@