@using TIAMWebApp.Shared.Application.Utility @using AyCode.Core.Extensions @using AyCode.Services.Loggers @using AyCode.Utils.Extensions @inject IJSRuntime jsRuntime @inject IEnumerable LogWriters @inherits ErrorBoundary @if (_currentError != null) { @* *@

An error has occurred: @_currentError.Message

@*
*@ } else { @ChildContent } @code { private Exception? _currentError; private LoggerClient _logger; //public PopupMessageBox PopupMessageBox { get; private set; } = default!; [Parameter] public string LoggerCategory { get; set; } [Parameter] public EventCallback OnError { get; set; } protected override void OnInitialized() { _logger = new LoggerClient(LoggerCategory, LogWriters.ToArray()); base.OnInitialized(); } // private void HandleError(Exception exception) //, [CallerMemberName] string? memberName = null) // { // } protected override Task OnErrorAsync(Exception exception) { _currentError = exception; exception.GetCategoryAndMemberNameFromStackTraceString(out var memberName, out var categoryName); if (memberName.IsNullOrWhiteSpace()) memberName = "..."; //ne az "OnErrorAsync" memberName-el logoljunk! - J. try { _logger.Error($"An error occurred: {exception.Message}", exception, categoryName, memberName); } catch (Exception loggerException) { jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->OnErrorAsync; Logger error! {loggerException}"); jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->{memberName}; An error occurred: {exception}"); //jsRuntime.InvokeVoidAsync("console.warn", $"{nameof(TiamErrorBoundaryComponent)}->{memberName}; Error details: {exception.StackTrace}"); } //ShowErrorNotification("An unexpected error occurred. Please try again later."); return OnError.HasDelegate ? OnError.InvokeAsync(exception) : base.OnErrorAsync(exception); } // private void ShowErrorNotification(string message) // { // jsRuntime.InvokeVoidAsync("alert", message); // } protected override void OnParametersSet() { _currentError = null; } }