@page "/" @inject TafsirApiClient Api @inject PlayerSessionService Player @inject NavigationManager Nav @implements IDisposable

تفسیر قرآن

@if (Player.HasTrack) { } @if (loading) { } else if (tafsirs.Count == 0) { تفسیر قطره چکانی قرائتی } else {
@foreach (var t in tafsirs) { @t.Title @t.Author }
}
@code { private List tafsirs = []; private bool loading = true; protected override void OnInitialized() => Player.Changed += OnPlayerChanged; protected override async Task OnAfterRenderAsync(bool firstRender) { if (!firstRender) return; try { await Player.EnsureLoadedAsync(); tafsirs = (await Api.GetTafsirsAsync()).ToList(); } catch { tafsirs = []; } finally { loading = false; await InvokeAsync(StateHasChanged); } } private void Resume() => Nav.NavigateTo(Player.ResumeHref); private void OnPlayerChanged() => InvokeAsync(StateHasChanged); public void Dispose() => Player.Changed -= OnPlayerChanged; }