Skip to content

Commit 5acba45

Browse files
authored
feat(TabItem): add ErrorLogger support on TabItem (#6143)
* refactor: 重构 IErrorLogger 数据类型 * refactor: 增加 Tab 组件异常捕获参数 * refactor: TabItem 增加独立捕获异常能力
1 parent 7336b9e commit 5acba45

File tree

4 files changed

+36
-7
lines changed

4 files changed

+36
-7
lines changed

src/BootstrapBlazor/Components/Layout/Layout.razor

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
}
127127
else
128128
{
129-
<ErrorLogger EnableErrorLogger="@EnableErrorLogger" ShowToast="@ShowErrorLoggerToast" ToastTitle="@ErrorLoggerToastTitle"
129+
<ErrorLogger EnableErrorLogger="@_enableErrorLogger" ShowToast="@_showToast" ToastTitle="@ErrorLoggerToastTitle"
130130
OnErrorHandleAsync="OnErrorHandleAsync" OnInitializedCallback="OnErrorLoggerInitialized">
131131
@HandlerMain()
132132
</ErrorLogger>
@@ -147,7 +147,9 @@
147147
RefreshToolbarButtonIcon="@RefreshToolbarButtonIcon" FullscreenToolbarButtonIcon="@FullscreenToolbarButtonIcon"
148148
RefreshToolbarTooltipText="@RefreshToolbarTooltipText" FullscreenToolbarTooltipText="@FullscreenToolbarTooltipText"
149149
OnToolbarRefreshCallback="OnToolbarRefreshCallback" TabHeader="TabHeader"
150-
Body="@Main" NotAuthorized="NotAuthorized!" NotFound="NotFound!" NotFoundTabText="@NotFoundTabText">
150+
Body="@Main" NotAuthorized="NotAuthorized!" NotFound="NotFound!" NotFoundTabText="@NotFoundTabText"
151+
EnableErrorLogger="EnableErrorLogger" ShowErrorLoggerToast="ShowErrorLoggerToast"
152+
ErrorLoggerToastTitle="@ErrorLoggerToastTitle">
151153
</Tab>;
152154

153155
RenderFragment RenderFooter =>

src/BootstrapBlazor/Components/Layout/Layout.razor.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,11 +490,19 @@ public partial class Layout : IHandlerException, ITabHeader
490490
[NotNull]
491491
private IStringLocalizer<Layout>? Localizer { get; set; }
492492

493+
[Inject]
494+
[NotNull]
495+
private IOptionsMonitor<BootstrapBlazorOptions>? Options { get; set; }
496+
493497
private bool _init;
494498
private LayoutHeader? _layoutHeader = null;
495499

496500
private ITabHeader? TabHeader => ShowTabInHeader ? this : null;
497501

502+
private bool _enableErrorLogger => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger;
503+
504+
private bool _showToast => ShowErrorLoggerToast ?? Options.CurrentValue.ShowErrorLoggerToast;
505+
498506
/// <summary>
499507
/// <inheritdoc/>
500508
/// </summary>

src/BootstrapBlazor/Components/Tab/Tab.razor.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,24 @@ public partial class Tab
431431
[Parameter]
432432
public ITabHeader? TabHeader { get; set; }
433433

434+
/// <summary>
435+
/// 获得/设置 是否开启全局异常捕获 默认 null 读取配置文件 EnableErrorLogger 值
436+
/// </summary>
437+
[Parameter]
438+
public bool? EnableErrorLogger { get; set; }
439+
440+
/// <summary>
441+
/// 获得/设置 是否显示 Error 提示弹窗 默认 null 使用 <see cref="BootstrapBlazorOptions.ShowErrorLoggerToast"/> 设置值
442+
/// </summary>
443+
[Parameter]
444+
public bool? ShowErrorLoggerToast { get; set; }
445+
446+
/// <summary>
447+
/// 获得/设置 错误日志 <see cref="Toast"/> 弹窗标题 默认 null
448+
/// </summary>
449+
[Parameter]
450+
public string? ErrorLoggerToastTitle { get; set; }
451+
434452
[CascadingParameter]
435453
private Layout? Layout { get; set; }
436454

src/BootstrapBlazor/Components/Tab/TabItemContent.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77

88
namespace BootstrapBlazor.Components;
99

10-
internal class TabItemContent : IComponent
10+
class TabItemContent : IComponent
1111
{
1212
/// <summary>
1313
/// Gets or sets the component content. Default is null
1414
/// </summary>
1515
[Parameter, NotNull]
1616
public TabItem? Item { get; set; }
1717

18-
[CascadingParameter]
19-
private Layout? Layout { get; set; }
18+
[CascadingParameter, NotNull]
19+
private Tab? TabSet { get; set; }
2020

2121
private RenderHandle _renderHandle;
2222

@@ -55,10 +55,11 @@ private RenderFragment RenderItemContent(RenderFragment? content) => builder =>
5555
builder.OpenComponent<ErrorLogger>(0);
5656
builder.AddAttribute(1, nameof(ErrorLogger.ChildContent), content);
5757

58-
var enableErrorLogger = Layout?.EnableErrorLogger;
59-
var showToast = Layout?.ShowErrorLoggerToast;
58+
var enableErrorLogger = TabSet.EnableErrorLogger;
59+
var showToast = TabSet.ShowErrorLoggerToast;
6060
builder.AddAttribute(2, nameof(ErrorLogger.EnableErrorLogger), enableErrorLogger);
6161
builder.AddAttribute(3, nameof(ErrorLogger.ShowToast), showToast);
62+
builder.AddAttribute(4, nameof(ErrorLogger.ToastTitle), TabSet.ErrorLoggerToastTitle);
6263
builder.CloseComponent();
6364
};
6465

0 commit comments

Comments
 (0)