summaryrefslogtreecommitdiff
path: root/Pages/Component/LoadedState.razor
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2026-06-04 13:59:07 +1000
committerJake Mannens <jake@asger.xyz>2026-06-15 10:45:44 +1000
commitb40ec1bad71651ff11650cfc38b829bd25822cce (patch)
tree00549e006400911fe48c8f2b7fe1bad50432ba5f /Pages/Component/LoadedState.razor
parent9074829bd3863ed2bc05658db1c26f80f52dd5f1 (diff)
Added Razor components for loadable remote content
Diffstat (limited to 'Pages/Component/LoadedState.razor')
-rw-r--r--Pages/Component/LoadedState.razor23
1 files changed, 23 insertions, 0 deletions
diff --git a/Pages/Component/LoadedState.razor b/Pages/Component/LoadedState.razor
new file mode 100644
index 0000000..fce18d8
--- /dev/null
+++ b/Pages/Component/LoadedState.razor
@@ -0,0 +1,23 @@
+@implements IDisposable
+@typeparam T
+
+@if(Parent.ComponentState == ComponentState.Loaded) {
+ @ChildContent
+}
+
+@code {
+ [Parameter]
+ public RenderFragment? ChildContent { get; set; }
+
+ [CascadingParameter]
+ public LoadableContent<T> Parent { get; set; }
+
+ protected override void OnInitialized() =>
+ Parent.OnStateChanged += OnStateChanged;
+
+ public void OnStateChanged(object? sender, EventArgs e) =>
+ InvokeAsync(StateHasChanged);
+
+ public void Dispose() =>
+ Parent.OnStateChanged -= OnStateChanged;
+}