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 @ref="TabControl" IsCard IsOnlyRenderActiveTab>
  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. private Tab TabControl;
  30. protected override void OnInitialized()
  31. {
  32. base.OnInitialized();
  33. EventBus.Subscript<LoggingEvent>(HandleLogging);
  34. Logger.LogInformation("App UI started");
  35. }
  36. private void HandleLogging(LoggingEvent obj)
  37. {
  38. switch (obj.LogLevel)
  39. {
  40. case LogLevel.Debug:
  41. JsRuntime.InvokeVoidAsync("console.debug", obj.Content);
  42. break;
  43. case LogLevel.Information:
  44. JsRuntime.InvokeVoidAsync("console.info", obj.Content);
  45. break;
  46. case LogLevel.Warning:
  47. JsRuntime.InvokeVoidAsync("console.warn", obj.Content);
  48. break;
  49. case LogLevel.Critical:
  50. case LogLevel.Error:
  51. JsRuntime.InvokeVoidAsync("console.error", obj.Content);
  52. break;
  53. case LogLevel.Trace:
  54. case LogLevel.None:
  55. default:
  56. JsRuntime.InvokeVoidAsync("console.log", $"{obj.LogLevel} {obj.Content}");
  57. break;
  58. }
  59. }
  60. public void Dispose()
  61. {
  62. EventBus.UnSubscript<LoggingEvent>(HandleLogging);
  63. }
  64. }