summary refs log tree commit diff
path: root/testFrontend/SafeNSound.Demo/Pages/Home.razor
diff options
context:
space:
mode:
Diffstat (limited to 'testFrontend/SafeNSound.Demo/Pages/Home.razor')
-rw-r--r--testFrontend/SafeNSound.Demo/Pages/Home.razor50
1 files changed, 50 insertions, 0 deletions
diff --git a/testFrontend/SafeNSound.Demo/Pages/Home.razor b/testFrontend/SafeNSound.Demo/Pages/Home.razor
new file mode 100644

index 0000000..ae35214 --- /dev/null +++ b/testFrontend/SafeNSound.Demo/Pages/Home.razor
@@ -0,0 +1,50 @@ +@page "/" +@using System.Text.Json.Nodes +@implements IDisposable + +<PageTitle>Home</PageTitle> + +<h1>SafeNSound</h1> + +<p>Welcome to SafeNSound! This application is purely a demonstration of the basic concepts in SafeNSound!</p> +<p>Here be dragons!</p> + +<pre> + @serverStatus?.ToJson(indent: true) +</pre> + +@code { + + private bool running = true; + private JsonObject? serverStatus { get; set; } + + protected override async Task OnInitializedAsync() { + _ = PollServerStatus(); + } + + private async Task PollServerStatus() { + while (running) { + try { + serverStatus = await App.UserClient.HttpClient.GetFromJsonAsync<JsonObject>("/status"); + } + catch (Exception ex) { + serverStatus = new JsonObject { + ["error"] = ex.Message + }; + } + StateHasChanged(); + await Task.Delay(1000); + } + } + + private void ReleaseUnmanagedResources() { + running = false; + } + + public void Dispose() { + ReleaseUnmanagedResources(); + GC.SuppressFinalize(this); + } + + ~Home() => ReleaseUnmanagedResources(); +} \ No newline at end of file