summaryrefslogtreecommitdiff
path: root/Pages/Component/LoadingState.razor
diff options
context:
space:
mode:
Diffstat (limited to 'Pages/Component/LoadingState.razor')
-rw-r--r--Pages/Component/LoadingState.razor23
1 files changed, 23 insertions, 0 deletions
diff --git a/Pages/Component/LoadingState.razor b/Pages/Component/LoadingState.razor
new file mode 100644
index 0000000..0a7cffc
--- /dev/null
+++ b/Pages/Component/LoadingState.razor
@@ -0,0 +1,23 @@
+@implements IDisposable
+@typeparam T
+
+@if(Parent.ComponentState == ComponentState.Loading) {
+ @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;
+}