42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
/**
|
|
* @file This file provides the user with their profilescreen, where they can see their own tests
|
|
* @author Arlo Filley
|
|
*
|
|
* TODO:
|
|
* - change button name
|
|
* - provide filters for tests
|
|
* - implement a way to scroll through tests
|
|
* - create a way to have personal bests and track them
|
|
* - store tests in localstorage.
|
|
* - show user tests even if they are not logged in
|
|
*/
|
|
|
|
/**
|
|
* This class displays all of the test data for a given user
|
|
*/
|
|
class ProfileScreen {
|
|
constructor() {
|
|
this.menu = new Menu();
|
|
api.getUserTests();
|
|
}
|
|
|
|
draw() {
|
|
background("#eeeee4");
|
|
textSize(100);
|
|
textAlign(CENTER, CENTER);
|
|
fill("#000");
|
|
text("Profile", 0, 100, windowWidth, 120);
|
|
|
|
this.menu.draw();
|
|
|
|
textSize(20);
|
|
fill("#000");
|
|
if (user.tests != undefined) {
|
|
for (let i = 0; i < user.tests.length; i++) {
|
|
text(`Test ${i+1}: ${user.tests[i].wpm}wpm | Characters Typed: ${user.tests[i].test_length}`, 0, i*30+300, windowWidth, 30);
|
|
}
|
|
}
|
|
fill("#000");
|
|
text(`Logged in as ${user.username}`, windowWidth-400, 15);
|
|
}
|
|
} |