Good day, kindly assist. I have a Dashboard.razor file. When the user logon the Dashboard is shown with pie, bar and doughnut charts. When user navigate away and back to the Dashboard the charts are not displayed. Blazor.Bootstrap 3.4.0 Webassembly standalone, .Net 8.0 Part of code below ` @code { private bool isLoading = true; private bool _hasRenderedOnce = false; private bool _isInitialLoadComplete = false; private IDisposable? _locationChangingHandler; private PieChart expensesPieChart = default!;private PieChart incomePieChart = default!;private LineChart commissionLineChart = default!;private BarChart _lifecycleBarChart = default!;private DoughnutChart _salesStatusChart = default!; private PieChart _contractTypesPieChart = default!;private BarChart _contractLifecycleBarChart = default!;private PieChart _supplierPieChart = default!;private ProgressBar _commissionProgressBar = default!;private ProgressBar _membershipProgressBar = default!;private bool isExpensesChartInitialized = false;private bool isIncomeChartInitialized = false;private bool isCommissionChartInitialized = false;private bool isLifecycleChartInitialized = false;private bool isSalesStatusChartInitialized = false;private bool isContractTypesChartInitialized = false;private bool isContractLifecycleChartInitialized = false;private bool isSupplierChartInitialized = false;private string SelectedPeriod = "Last3Months";private string[]? backgroundColors;private List<Transaction> expenseTransactions = new();private List<Transaction> incomeTransactions = new();private List<SalesTransaction> salesTransactions = new();private List<Rental> rentals = new();private List<Contract> contracts = new();private List<(string Category, decimal AverageAmount)> averageExpensesByCategory = new();private decimal TotalAgentCommission = 0m;private enum CommissionPeriod { PreviousMonth, CurrentMonth, Last3Months, Last6Months, Last12Months }private CommissionPeriod SelectedCommissionPeriod = CommissionPeriod.Last12Months;// Capping variablesprivate bool _isCappingLoading = true;private string _cappingErrorMessage = string.Empty;private decimal _totalCompanyCommission;private decimal _companyCommissionInPipeline;private decimal _capThreshold = 150000m;private decimal _remainingToCap;private double _commissionProgress;private string _cappingStatus = string.Empty;private string _membershipYear = string.Empty;private DateTime _membershipStart;private DateTime _membershipEnd;private double _membershipProgressWidth;private int _daysElapsed;private double _totalDays;// Sales Summary variablesprivate int _soldPropertiesCount;private decimal _soldPropertiesTotal;private decimal _soldPropertiesCommissionTotal;private decimal _soldPropertiesCommissionAvg;private int _pipelinePropertiesCount;private decimal _pipelinePropertiesTotal;private decimal _pipelinePropertiesCommissionTotal;private decimal _pipelinePropertiesCommissionAvg;// Rental Summary variablesprivate int _activeRentalsCount;private decimal _rentalCommissionTotal;private int _lifecycle90PlusDays;private int _lifecycle60To90Days;private int _lifecycle30To60Days;private int _lifecycle0To30Days;private int _lifecycleExpired;// Contract Summary variablesprivate int _activeContractsCount = 0;private decimal _totalContractAmount;private int _contractTypesCount = 0;private int _supplierCount = 0;private List<(string Type, int Count)> _contractTypesData = new();private List<(string Supplier, int Count)> _supplierData = new();private int _contractLifecycle90PlusDays;private int _contractLifecycle60To90Days;private int _contractLifecycle30To60Days;private int _contractLifecycle0To30Days;private int _contractLifecycleExpired;private string PreviousMonthName => DateTime.Now.AddMonths(-1).ToString("MMMM");private string CurrentMonthName => DateTime.Now.ToString("MMMM");private string CommissionPeriodLabel => SelectedCommissionPeriod switch { CommissionPeriod.PreviousMonth => PreviousMonthName, CommissionPeriod.CurrentMonth => CurrentMonthName, CommissionPeriod.Last3Months => "Last 3 Months", CommissionPeriod.Last6Months => "Last 6 Months", CommissionPeriod.Last12Months => "Last 12 Months", _ => CurrentMonthName };private string SelectedPeriodLabel => SelectedPeriod switch { "LastMonth" => "Last Month", "Last6Months" => "Last 6 Months", "Last12Months" => "Last 12 Months", _ => "Last 3 Months" };protected override void OnInitialized(){ backgroundColors = ColorUtility.CategoricalTwelveColors;}protected override async Task OnAfterRenderAsync(bool firstRender){ await JSRuntime.InvokeVoidAsync("console.log", $"[DEBUG] Dashboard.razor: OnInitializedAsync started at {DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}"); try { await AuthState.InitializeAsync(); if (!AuthState.IsAuthenticated) { await JSRuntime.InvokeVoidAsync("console.log", "[DEBUG] Dashboard: User not authenticated, redirecting to /"); NavigationManager.NavigateTo("/"); return; } if (firstRender) { await LoadTransactions(); await LoadCommissionData(); await LoadCappingData(); await LoadSalesSummaryData(); await LoadSalesStatusChart(); await LoadRentalSummaryData(); await LoadContractsData(); } await base.OnAfterRenderAsync(firstRender); } catch (Exception ex) { await JSRuntime.InvokeVoidAsync("console.log", $"[ERROR] Dashboard: OnInitializedAsync failed: {ex.Message}\nStackTrace: {ex.StackTrace}"); _cappingErrorMessage = $"Error initializing dashboard: {ex.Message}"; _isCappingLoading = false; StateHasChanged(); }}`
|