Front End
- MudBlazor Theme Manager tryout - Navigation bar rework - Icons and styles rework - Track Gallery & Card layout redesign for SPA - Track Player bottom bar
This commit is contained in:
@@ -1,46 +1,37 @@
|
||||
@page "/tracks"
|
||||
@using DeepDrftModels.DTOs
|
||||
@using DeepDrftModels.Entities
|
||||
|
||||
@using DeepDrftWeb.Client.Controls
|
||||
|
||||
<h3>Track Gallery</h3>
|
||||
|
||||
@if (ViewModel.Page != null)
|
||||
{
|
||||
@* <MudTable T="TrackEntity" Items="@ViewModel.Page.Items" Hover="true" Breakpoint="Breakpoint.Sm"> *@
|
||||
@* <HeaderContent> *@
|
||||
@* <MudTh>Name</MudTh> *@
|
||||
@* <MudTh>Artist</MudTh> *@
|
||||
@* <MudTh>Album</MudTh> *@
|
||||
@* <MudTh>Genre</MudTh> *@
|
||||
@* <MudTh>Released</MudTh> *@
|
||||
@* <MudTh>Actions</MudTh> *@
|
||||
@* </HeaderContent> *@
|
||||
@* <RowTemplate> *@
|
||||
@* <MudTd DataLabel="Name">@context.TrackName</MudTd> *@
|
||||
@* <MudTd DataLabel="Artist">@context.Artist</MudTd> *@
|
||||
@* <MudTd DataLabel="Album">@context.Album</MudTd> *@
|
||||
@* <MudTd DataLabel="Genre">@context.Genre</MudTd> *@
|
||||
@* <MudTd DataLabel="Released">@context.ReleaseDate</MudTd> *@
|
||||
@* <MudTd DataLabel="Actions"> *@
|
||||
@* <MudButton Variant="Variant.Text" Color="Color.Primary">View</MudButton> *@
|
||||
@* </MudTd> *@
|
||||
@* </RowTemplate> *@
|
||||
@* </MudTable> *@
|
||||
|
||||
<TracksGallery Tracks="@ViewModel.Page.Items" />
|
||||
|
||||
<MudContainer Class="d-flex justify-center my-4 py-4">
|
||||
<MudPagination Count="@ViewModel.Page.TotalPages"
|
||||
Selected="@ViewModel.Page.Page"
|
||||
SelectedChanged="i => SetPage(i)"
|
||||
BoundaryCount="2"
|
||||
MiddleCount="3"/>
|
||||
</MudContainer>
|
||||
}
|
||||
else
|
||||
{
|
||||
<MudSkeleton Height="650px" Class="pa-2 ma-2"/>
|
||||
<MudSkeleton Height="80px"/>
|
||||
<MudSpacer />
|
||||
}
|
||||
<PageTitle>DeepDrft Track Gallery</PageTitle>
|
||||
|
||||
<div class="tracks-page-wrapper">
|
||||
<div class="tracks-view-container">
|
||||
@if (ViewModel.Page != null)
|
||||
{
|
||||
<div class="tracks-content">
|
||||
<TracksGallery Tracks="@ViewModel.Page.Items"/>
|
||||
</div>
|
||||
|
||||
<div class="tracks-pagination">
|
||||
<MudContainer Class="d-flex justify-center py-2">
|
||||
<MudPagination Count="@ViewModel.Page.TotalPages"
|
||||
Selected="@ViewModel.Page.Page"
|
||||
SelectedChanged="i => SetPage(i)"
|
||||
BoundaryCount="2"
|
||||
MiddleCount="3"/>
|
||||
</MudContainer>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="tracks-content">
|
||||
<MudSkeleton Height="100%" Class="pa-2 ma-2"/>
|
||||
</div>
|
||||
<div class="tracks-pagination">
|
||||
<MudSkeleton Height="60px"/>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
<AudioPlayerBar AudioUrl=""></AudioPlayerBar>
|
||||
</div>
|
||||
@@ -0,0 +1,28 @@
|
||||
.tracks-page-wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: calc(100dvh - 64px); /* Subtract app bar height (pt-16 = 4rem = 64px) */
|
||||
margin: -16px; /* Counteract MudMainContent padding */
|
||||
padding-top: 16px; /* Restore top padding for spacing */
|
||||
}
|
||||
|
||||
.tracks-view-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1 1 auto;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
padding: 0 16px; /* Horizontal padding only */
|
||||
}
|
||||
|
||||
.tracks-content {
|
||||
flex: 1 1 auto;
|
||||
overflow-y: scroll;
|
||||
min-height: 0;
|
||||
padding-top: 16px;
|
||||
}
|
||||
|
||||
.tracks-pagination {
|
||||
flex: 0 0 auto;
|
||||
padding: 8px 0;
|
||||
}
|
||||
Reference in New Issue
Block a user