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 @@
-
@@ -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 @@
- {{this.entry.rank}}
- {{this.entry.username}}
- {{this.entry.score}}
+ {{this.entry.rank}}
+ {{this.entry.username}}
+ {{this.entry.score}}