App.razor 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. @using Microsoft.JSInterop
  2. @using WarcViewerBlazorWinForm.Backend.Logging
  3. @implements IDisposable
  4. @inject ILogger<App> Logger
  5. @inject IJSRuntime JsRuntime
  6. @inject IEventBus EventBus
  7. <BootstrapBlazorRoot>
  8. <Tab IsCard IsOnlyRenderActiveTab class="h-100vh">
  9. <TabItem Text="Open Archive">
  10. <ArchiveView></ArchiveView>
  11. </TabItem>
  12. <TabItem Text="Indexer">
  13. <IndexerStatusLabel></IndexerStatusLabel>
  14. </TabItem>
  15. <TabItem Text="Viewer">
  16. <Split Basis="30%">
  17. <FirstPaneTemplate>
  18. <div class="d-flex justify-content-center align-items-center h-100">我是左侧面板</div>
  19. </FirstPaneTemplate>
  20. <SecondPaneTemplate>
  21. <div class="d-flex justify-content-center align-items-center h-100">我是右侧面板</div>
  22. </SecondPaneTemplate>
  23. </Split>
  24. </TabItem>
  25. </Tab>
  26. </BootstrapBlazorRoot>
  27. @code
  28. {
  29. protected override void OnInitialized()
  30. {
  31. base.OnInitialized();
  32. EventBus.Subscript<LoggingEvent>(HandleLogging);
  33. Logger.LogInformation("App UI started");
  34. }
  35. private void HandleLogging(LoggingEvent obj)
  36. {
  37. switch (obj.LogLevel)
  38. {
  39. case LogLevel.Debug:
  40. JsRuntime.InvokeVoidAsync("console.debug", obj.Content);
  41. break;
  42. case LogLevel.Information:
  43. JsRuntime.InvokeVoidAsync("console.info", obj.Content);
  44. break;
  45. case LogLevel.Warning:
  46. JsRuntime.InvokeVoidAsync("console.warn", obj.Content);
  47. break;
  48. case LogLevel.Critical:
  49. case LogLevel.Error:
  50. JsRuntime.InvokeVoidAsync("console.error", obj.Content);
  51. break;
  52. case LogLevel.Trace:
  53. case LogLevel.None:
  54. default:
  55. JsRuntime.InvokeVoidAsync("console.log", $"{obj.LogLevel} {obj.Content}");
  56. break;
  57. }
  58. }
  59. public void Dispose()
  60. {
  61. EventBus.UnSubscript<LoggingEvent>(HandleLogging);
  62. }
  63. }