Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Components/Layout/Layout.razor
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@
RefreshToolbarTooltipText="@RefreshToolbarTooltipText" FullscreenToolbarTooltipText="@FullscreenToolbarTooltipText"
OnToolbarRefreshCallback="OnToolbarRefreshCallback" TabHeader="TabHeader"
Body="@Main" NotAuthorized="NotAuthorized!" NotFound="NotFound!" NotFoundTabText="@NotFoundTabText"
EnableErrorLogger="EnableErrorLogger" ShowErrorLoggerToast="ShowErrorLoggerToast"
EnableErrorLogger="@_enableErrorLogger" ShowErrorLoggerToast="@_showToast"
ErrorLoggerToastTitle="@ErrorLoggerToastTitle">
</Tab>;

Expand Down
29 changes: 28 additions & 1 deletion src/BootstrapBlazor/Components/Tab/TabItemContent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace BootstrapBlazor.Components;

class TabItemContent : IComponent
class TabItemContent : IComponent, IHandlerException, IDisposable
{
/// <summary>
/// Gets or sets the component content. Default is null
Expand All @@ -18,6 +18,11 @@
[CascadingParameter, NotNull]
private Tab? TabSet { get; set; }

[Inject, NotNull]
private DialogService? DialogService { get; set; }

private ErrorLogger? _logger;

private RenderHandle _renderHandle;

void IComponent.Attach(RenderHandle renderHandle)
Expand Down Expand Up @@ -60,6 +65,12 @@
builder.AddAttribute(2, nameof(ErrorLogger.EnableErrorLogger), enableErrorLogger);
builder.AddAttribute(3, nameof(ErrorLogger.ShowToast), showToast);
builder.AddAttribute(4, nameof(ErrorLogger.ToastTitle), TabSet.ErrorLoggerToastTitle);
builder.AddAttribute(5, nameof(ErrorLogger.OnInitializedCallback), new Func<ErrorLogger, Task>(logger =>
{
_logger = logger;
_logger.Register(this);
return Task.CompletedTask;
}));
builder.CloseComponent();
};

Expand All @@ -75,4 +86,20 @@
_key = new object();
RenderContent();
}

/// <summary>
/// HandlerException 错误处理方法
/// </summary>
/// <param name="ex"></param>
/// <param name="errorContent"></param>
public Task HandlerException(Exception ex, RenderFragment<Exception> errorContent) => DialogService.ShowErrorHandlerDialog(errorContent(ex));

Check warning on line 95 in src/BootstrapBlazor/Components/Tab/TabItemContent.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/Tab/TabItemContent.cs#L95

Added line #L95 was not covered by tests

/// <summary>
/// IDispose 方法用于释放资源
/// </summary>
public void Dispose()
{
_logger?.UnRegister(this);
GC.SuppressFinalize(this);
}
}