flex table track

This commit is contained in:
FrigaT
2026-04-15 18:49:18 +03:00
parent e82dcdeaa4
commit 50ed75b413
2 changed files with 49 additions and 40 deletions

View File

@@ -5,32 +5,35 @@
@inject HttpClient Http @inject HttpClient Http
@inject ISnackbar Snackbar @inject ISnackbar Snackbar
<MudStack> <MudStack Style="height: 100%; overflow: hidden;">
<MudItem>
<MudTextField @bind-Value="_searchQuery" <MudTextField @bind-Value="_searchQuery"
@bind-Value:after="SearchTracks" @bind-Value:after="SearchTracks"
Variant="Variant.Outlined" Variant="Variant.Outlined"
FullWidth FullWidth
Label="Название или ссылка на трек Яндекс.Музыки" Label="Название или ссылка на трек Яндекс.Музыки"
Disabled="@_isSearching" Disabled="@_isSearching"
Adornment="Adornment.End" AdornmentIcon="@Icons.Material.Filled.Search" AdornmentColor="Color.Secondary" Adornment="Adornment.End" AdornmentIcon="@Icons.Material.Filled.Search" AdornmentColor="Color.Secondary" />
/>
<MudToggleGroup T="TrackSearchType" <MudToggleGroup T="TrackSearchType"
@bind-Value="_searchType" @bind-Value="_searchType"
@bind-Value:after="SearchTracks" @bind-Value:after="SearchTracks"
Size="Size.Small" Size="Size.Small"
Color="Color.Primary" Color="Color.Primary"
Disabled="@(_isSearching)" Disabled="@(_isSearching)">
>
<MudToggleItem Value="TrackSearchType.All" Text="Все" /> <MudToggleItem Value="TrackSearchType.All" Text="Все" />
<MudToggleItem Value="TrackSearchType.Track" Text="Трек" /> <MudToggleItem Value="TrackSearchType.Track" Text="Трек" />
<MudToggleItem Value="TrackSearchType.Album" Text="Альбом" /> <MudToggleItem Value="TrackSearchType.Album" Text="Альбом" />
<MudToggleItem Value="TrackSearchType.Artist" Text="Исполнитель" /> <MudToggleItem Value="TrackSearchType.Artist" Text="Исполнитель" />
</MudToggleGroup> </MudToggleGroup>
</MudItem>
<MudTable Items="@_searchResults" <MudTable Items="@_searchResults"
Virtualize Virtualize
Hover="true" Hover
Elevation="0"
Class="d-flex flex-grow-1 flex-column"
Style="min-height: 0;"
Breakpoint="Breakpoint.Sm" Breakpoint="Breakpoint.Sm"
Loading="@_isSearching"> Loading="@_isSearching">
<RowTemplate> <RowTemplate>

View File

@@ -11,7 +11,7 @@
@inject AuthenticationStateProvider AuthProvider @inject AuthenticationStateProvider AuthProvider
@inject IDialogService DialogService @inject IDialogService DialogService
<MudContainer MaxWidth="MaxWidth.ExtraLarge" Class="mt-8"> <MudContainer MaxWidth="MaxWidth.ExtraLarge" Class="pa-4" Style="height: 100%;">
@if (_loading) @if (_loading)
{ {
<MudProgressCircular Indeterminate /> <MudProgressCircular Indeterminate />
@@ -22,21 +22,26 @@
} }
else else
{ {
<MudSplitPanel> <MudSplitPanel Class="flex-grow-1" Style="height: 100%;">
<FirstPanel> <FirstPanel>
<MudCard> <MudCard Class="d-flex flex-column" Style="height: 100%;">
<MudCardHeader> <MudCardHeader>
<CardHeaderContent> <CardHeaderContent>
<PlaylistHeader Playlist="@_playlist" /> <PlaylistHeader Playlist="@_playlist" />
</CardHeaderContent> </CardHeaderContent>
</MudCardHeader> </MudCardHeader>
<MudCardContent> <MudCardContent Class="flex-grow-1 d-flex flex-column" Style="overflow: hidden;">
<MudItem>
<MudIconButton Icon="@Icons.Material.Filled.Refresh" OnClick="LoadTracks" Disabled="@_tracksLoading" Size="Size.Medium" /> <MudIconButton Icon="@Icons.Material.Filled.Refresh" OnClick="LoadTracks" Disabled="@_tracksLoading" Size="Size.Medium" />
</MudItem>
<MudTable Items="@_tracks" <MudTable Items="@_tracks"
Virtualize="true" Virtualize
Height="400px" Hover
Hover="true" Elevation="0"
Class="d-flex flex-grow-1 flex-column"
Style="min-height: 0;"
Breakpoint="Breakpoint.Sm" Breakpoint="Breakpoint.Sm"
Loading="@_tracksLoading"> Loading="@_tracksLoading">
<RowTemplate> <RowTemplate>
@@ -57,13 +62,14 @@
<SecondPanel> <SecondPanel>
@if (_canAdd) @if (_canAdd)
{ {
<MudCard> <MudCard Class="d-flex flex-column" Style="height: 100%;">
<MudCardHeader> <MudCardHeader>
<CardHeaderContent> <CardHeaderContent>
<MudText Typo="Typo.h5" Color="Color.Primary">Добавление треков</MudText> <MudText Typo="Typo.h5" Color="Color.Primary">Добавление треков</MudText>
</CardHeaderContent> </CardHeaderContent>
</MudCardHeader> </MudCardHeader>
<MudCardContent>
<MudCardContent Class="flex-grow-1 d-flex flex-column" Style="overflow: hidden;">
<AddTrackSection ShareToken="Token" OnTrackAdded="LoadTracks" OnTrackRemoved="LoadTracks" ExistingTrackIds="_existingTrackIds" /> <AddTrackSection ShareToken="Token" OnTrackAdded="LoadTracks" OnTrackRemoved="LoadTracks" ExistingTrackIds="_existingTrackIds" />
</MudCardContent> </MudCardContent>
</MudCard> </MudCard>