Feature-based folder structure
1. Created feature-based folder structure - Components now organized by domain feature 2. Moved all components - 20+ files moved to new locations 3. Updated _Imports.razor - Added all new namespace paths for global component access 4. Updated CustomThemes.cs namespace - Changed from WebApp.Components.Layout to WebApp.Components.Shared.Layout 5. Removed old using directives - Cleaned up Login.razor and Routes.razor 6. Removed empty directories - Cleaned up old folder structure
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
@if (Title != null)
|
||||
{
|
||||
<MudText Typo="@TitleTypo">@Title</MudText>
|
||||
}
|
||||
|
||||
<MudToggleGroup T="Student"
|
||||
SelectionMode="SelectionMode.ToggleSelection"
|
||||
Value="@SelectedCaptain"
|
||||
ValueChanged="@OnSelectedCaptainChanged"
|
||||
CheckMark>
|
||||
@foreach (var student in Students.OrderBy(e => e.FirstName))
|
||||
{
|
||||
<MudToggleItem Value="@student" Text="@student.Name" />
|
||||
}
|
||||
</MudToggleGroup>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public IEnumerable<Student> Students { get; set; } = [];
|
||||
|
||||
[Parameter]
|
||||
public Student? SelectedCaptain { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<Student?> SelectedCaptainChanged { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public string? Title { get; set; } = "Captain";
|
||||
|
||||
[Parameter]
|
||||
public Typo TitleTypo { get; set; } = Typo.body1;
|
||||
|
||||
private async Task OnSelectedCaptainChanged(Student? value)
|
||||
{
|
||||
SelectedCaptain = value;
|
||||
await SelectedCaptainChanged.InvokeAsync(value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<MudSelect
|
||||
T="Team"
|
||||
MultiSelection="true"
|
||||
@bind-SelectedValues="@SelectedTeams"
|
||||
ToStringFunc="e => e.ToString()"
|
||||
Label="@Label">
|
||||
|
||||
@foreach (var evt in Teams.OrderBy(e => e.ToString()))
|
||||
{
|
||||
<MudSelectItem T="Team" Value="@evt">@evt.ToString()</MudSelectItem>
|
||||
}
|
||||
</MudSelect>
|
||||
|
||||
@code {
|
||||
[Parameter] public Team[]? Teams { get; set; }
|
||||
[Parameter] public required IEnumerable<Team> SelectedTeams { get; set; }
|
||||
[Parameter] public string Label { get; set; } = "Teams";
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
@using WebApp.Models
|
||||
@foreach (var student in
|
||||
Team.Students
|
||||
.OrderBy(e =>
|
||||
e.EventRankings
|
||||
.Find(er => er.EventDefinition == Team.Event)?.Rank ?? 10)
|
||||
.ThenBy(s => s.Grade + s.TsaYear))
|
||||
{
|
||||
var eventRank =
|
||||
student.EventRankings
|
||||
.Find(e => e.EventDefinition == Team.Event)?.Rank;
|
||||
var color = AppIcons.RankedEventColor(eventRank ?? 0);
|
||||
var captain = Team.Captain != null && Team.Captain.Equals(student);
|
||||
|
||||
<MudPaper Class="d-inline-flex pa-2 mx-3 my-1" Style="@($"background:{color};")">
|
||||
@student.FirstName
|
||||
@if (captain)
|
||||
{
|
||||
<span> (Cpt)</span>
|
||||
}
|
||||
</MudPaper>
|
||||
}
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public Team Team { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
@if (Title != null)
|
||||
{
|
||||
<MudText Typo="Typo.h4">@Title</MudText>
|
||||
}
|
||||
|
||||
<MudToggleGroup T="Team"
|
||||
SelectionMode="SelectionMode.MultiSelection"
|
||||
Values="@SelectedTeams"
|
||||
ValuesChanged="@OnSelectedTeamsChanged"
|
||||
Vertical="true"
|
||||
CheckMark>
|
||||
@foreach (var team in Teams.OrderBy(e => e.Event.Name))
|
||||
{
|
||||
<MudToggleItem Value="@team" Style="font-size: .75rem;">
|
||||
<MudTooltip Text="@team.StudentsFirstNames">
|
||||
<div class="d-flex align-center justify-space-between flex-wrap">
|
||||
<MudText Class="ellipsis">@team.ToString()</MudText>
|
||||
@if (ShowEventAttributes)
|
||||
{
|
||||
<EventAttributes EventDefinition="@team.Event"></EventAttributes>
|
||||
}
|
||||
</div>
|
||||
</MudTooltip>
|
||||
</MudToggleItem>
|
||||
}
|
||||
</MudToggleGroup>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public IEnumerable<Team> Teams { get; set; } = [];
|
||||
|
||||
[Parameter]
|
||||
public IEnumerable<Team> SelectedTeams { get; set; } = [];
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<IEnumerable<Team>> SelectedTeamsChanged { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public string? Title { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public bool ShowEventAttributes { get; set; } = true;
|
||||
|
||||
private async Task OnSelectedTeamsChanged(IEnumerable<Team> value)
|
||||
{
|
||||
SelectedTeams = value;
|
||||
await SelectedTeamsChanged.InvokeAsync(value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user