Files
deepdrft/DeepDrftWeb.Client/Pages/TracksView.razor.cs
T
daniel-c-harvey 0951514778 Front End Work
- Colors & Styles
 - Fonts
 - Small Layout Adjustments
2025-09-06 15:21:03 -04:00

42 lines
1.3 KiB
C#

using DeepDrftModels.Entities;
using DeepDrftModels.Models;
using DeepDrftWeb.Client.Services;
using DeepDrftWeb.Client.ViewModels;
using Microsoft.AspNetCore.Components;
namespace DeepDrftWeb.Client.Pages;
public partial class TracksView : ComponentBase
{
[Inject] public required TracksViewModel ViewModel { get; set; }
[Inject] public required AudioPlaybackEngine AudioPlaybackEngine { get; set; }
private TrackEntity? _selectedTrack = null;
protected override async Task OnInitializedAsync()
{
await SetPage(1);
if (!RendererInfo.IsInteractive) return;
await AudioPlaybackEngine.InitializeAudioPlayer();
}
private async Task SetPage(int newPage)
{
var result = await ViewModel.TrackClient.GetPage(newPage, ViewModel.PageSize, ViewModel.SortBy, ViewModel.IsDescending);
if (result is { Success: true, Value: PagedResult<TrackEntity> pageResult })
{
ViewModel.Page = pageResult;
ViewModel.PageSize = pageResult.PageSize;
}
}
private async Task PlayTrack(TrackEntity? track)
{
if (track == null && _selectedTrack == null || track?.Id == _selectedTrack?.Id) return;
await AudioPlaybackEngine.LoadTrack(track);
StateHasChanged();
}
}