Skip to content

Commit

Permalink
Merge pull request #194 from DennisvHest/191-add-more-stats-to-the-si…
Browse files Browse the repository at this point in the history
…debar-of-the-homepage

Added more stats on the homepage + added scrollbar to sidebar on homepage
  • Loading branch information
DennisvHest committed Jun 30, 2024
2 parents 1190e90 + d33261c commit 4ab719e
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 21 deletions.
58 changes: 49 additions & 9 deletions MapMaven/Pages/Dashboard.razor
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
<MudProgressLinear Color="MudBlazor.Color.Primary" Class="fixed" Indeterminate="true" />
}

<MudContainer MaxWidth="MaxWidth.ExtraLarge" Class="full-height" Style="padding-top: 24px; padding-bottom: 24px;">
<MudContainer MaxWidth="MaxWidth.ExtraLarge" Class="full-height" Style="padding-top: 24px; padding-bottom: 24px; height: 100vh;">
@if (Player is not null)
{
<div class="d-flex align-start">
<MudCard Style="width: 250px; min-width: 250px;">
<div class="d-flex align-start full-height">
<MudCard Style="width: 250px; min-width: 250px; max-height: 100%; overflow-y: auto;">
<MudCardHeader Class="card-header-highlight justify-space-between">
<div class="d-flex flex-column align-center">
<span>
Expand Down Expand Up @@ -62,14 +62,54 @@
</MudCardHeader>
<MudCardContent>
<MudList Dense="true" DisableGutters="true" DisablePadding="true">
<MudListItem>
<div class="d-flex align-center justify-space-between">
<MudListItem InitiallyExpanded="true">
<ChildContent>
<div class="d-flex align-center gap-2">
<MudIcon Size="MudBlazor.Size.Small" Icon="@Icons.Material.Filled.PlayCircle" />
<b>Plays</b>
</div>
</ChildContent>
<NestedList>
<MudListItem Class="pl-0">
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.caption">Ranked play count</MudText>
<MudText Typo="Typo.caption"><b>@(TotalRankedPlays?.ToString("#0.##") ?? "-")</b></MudText>
</div>
</MudListItem>
<MudListItem Class="pl-0">
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.caption">Unranked play count</MudText>
<MudText Typo="Typo.caption"><b>@(TotalUnrankedPlays?.ToString("#0.##") ?? "-")</b></MudText>
</div>
</MudListItem>
<MudListItem Class="pl-0">
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.caption">Total play count</MudText>
<MudText Typo="Typo.caption"><b>@((TotalUnrankedPlays + TotalRankedPlays)?.ToString("#0.##") ?? "-")</b></MudText>
</div>
</MudListItem>
</NestedList>
</MudListItem>
<MudListItem InitiallyExpanded="true">
<ChildContent>
<div class="d-flex align-center gap-2">
<b>pp</b>
<MudText Typo="Typo.caption">Top PP</MudText>
</div>
<MudText Typo="Typo.caption"><b>@(TopPp?.ToString("#0.##") ?? "-")</b></MudText>
</div>
</ChildContent>
<NestedList>
<MudListItem Class="pl-0">
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.caption">Average pp (top 30)</MudText>
<MudText Typo="Typo.caption"><b>@(AveragePp?.ToString("#0.##") ?? "-")</b></MudText>
</div>
</MudListItem>
<MudListItem Class="pl-0">
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.caption">Top pp</MudText>
<MudText Typo="Typo.caption"><b>@(TopPp?.ToString("#0.##") ?? "-")</b></MudText>
</div>
</MudListItem>
</NestedList>
</MudListItem>
<MudListItem InitiallyExpanded="true">
<ChildContent>
Expand Down Expand Up @@ -103,7 +143,7 @@
<NestedList>
<MudListItem Class="pl-0">
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.caption">Average star difficulty</MudText>
<MudText Typo="Typo.caption">Average star difficulty (top 30)</MudText>
<MudText Typo="Typo.caption"><b>@(AverageStarDifficulty?.ToString("#0.##") ?? "-")</b></MudText>
</div>
</MudListItem>
Expand Down
38 changes: 26 additions & 12 deletions MapMaven/Pages/Dashboard.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,10 @@ public partial class Dashboard
double? CountryRankChange { get; set; }
double? PpChange { get; set; }

double? TotalUnrankedPlays { get; set; }
double? TotalRankedPlays { get; set; }
double? TopPp { get; set; }
double? AveragePp { get; set; }
double? AverageStarDifficulty { get; set; }
double? TopStarDifficulty { get; set; }
double? AverageRankedAccuracy { get; set; }
Expand Down Expand Up @@ -194,23 +197,34 @@ protected override void OnInitialized()
var rankedScores = scores.Where(s => s.Leaderboard.Stars > 0);
if (!rankedScores.Any())
return;
if (rankedScores.Any())
{
TotalRankedPlays = rankedScores.Count();
TopPp = rankedScores.Max(s => s.Score.Pp);
TopPp = rankedScores.Max(s => s.Score.Pp);
AveragePp = rankedScores
.OrderByDescending(s => s.Score.Pp)
.Take(30)
.Average(s => s.Score.Pp);
AverageStarDifficulty = rankedScores
.OrderByDescending(s => s.Score.Pp)
.Take(30)
.Average(s => s.Leaderboard.Stars);
AverageStarDifficulty = rankedScores
.OrderByDescending(s => s.Score.Pp)
.Take(30)
.Average(s => s.Leaderboard.Stars);
TopStarDifficulty = rankedScores.Max(s => s.Leaderboard.Stars);
TopStarDifficulty = rankedScores.Max(s => s.Leaderboard.Stars);
AverageRankedAccuracy = rankedScores
.OrderByDescending(s => s.Score.Pp)
.Average(s => s.Score.Accuracy);
TopRankedAccuracy = rankedScores.Max(s => s.Score.Accuracy);
}
AverageRankedAccuracy = rankedScores
.OrderByDescending(s => s.Score.Pp)
.Average(s => s.Score.Accuracy);
var unrankedScores = scores.Where(x => x.Leaderboard.Stars == 0);
TopRankedAccuracy = rankedScores.Max(s => s.Score.Accuracy);
TotalUnrankedPlays = unrankedScores.Count();
});

var mapsAndHistory = Observable.CombineLatest(MapService.RankedMaps, LeaderboardService.PlayerProfile, _dashboardDateRange, (rankedMaps, playerProfile, dateRange) => (rankedMaps, playerProfile, dateRange));
Expand Down

0 comments on commit 4ab719e

Please sign in to comment.