49 lines
No EOL
1.3 KiB
Text
49 lines
No EOL
1.3 KiB
Text
@using LANCommander.UI.Providers
|
|
@using Microsoft.JSInterop
|
|
@inject IJSRuntime JS
|
|
@namespace LANCommander.UI.Components
|
|
|
|
<ErrorBoundary>
|
|
<ChildContent>
|
|
@Body
|
|
</ChildContent>
|
|
<ErrorContent>
|
|
<Result Status="ResultStatus.Error"
|
|
Title="@Title"
|
|
SubTitle="@_randomQuip"
|
|
Class="crash-error">
|
|
<Extra>
|
|
@if (Extra is not null)
|
|
{
|
|
@Extra
|
|
}
|
|
|
|
<Button OnClick="() => CopyError(context)">Copy Error</Button>
|
|
</Extra>
|
|
<ChildContent>
|
|
<code>
|
|
@context.Message
|
|
@context.StackTrace
|
|
</code>
|
|
</ChildContent>
|
|
</Result>
|
|
</ErrorContent>
|
|
</ErrorBoundary>
|
|
|
|
@code {
|
|
[Parameter] public string? Title { get; set; }
|
|
[Parameter] public RenderFragment? Body { get; set; }
|
|
[Parameter] public RenderFragment? Extra { get; set; }
|
|
|
|
string _randomQuip = "";
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
_randomQuip = QuipProvider.GetCrashQuip();
|
|
}
|
|
|
|
async Task CopyError(Exception ex)
|
|
{
|
|
await JS.InvokeVoidAsync("navigator.clipboard.writeText", ex.Message + "\n" + ex.StackTrace);
|
|
}
|
|
} |