@using NexusReader.UI.Shared.Services @inject IReaderNavigationService NavigationService @implements IDisposable @code { protected override void OnInitialized() { NavigationService.OnNavigationChanged += HandleNavigationChanged; } private async Task HandleNavigationChanged() { await InvokeAsync(StateHasChanged); } private int CalculateProgress() { if (NavigationService.TotalChapters <= 1) return 0; return (int)((NavigationService.CurrentChapterIndex / (float)(NavigationService.TotalChapters - 1)) * 100); } public void Dispose() { NavigationService.OnNavigationChanged -= HandleNavigationChanged; } }