diff options
| author | Jake Mannens <jake@asger.xyz> | 2026-06-04 13:59:07 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2026-06-11 01:41:01 +1000 |
| commit | f1a5597380a80395b743b2022c18251babb0e9d5 (patch) | |
| tree | 16333fd076b37d146e309984289ac2c9016d870e /Pages/Component/LoadedState.razor | |
| parent | 3263576943a491bcad3aff6c18c166fb1c874619 (diff) | |
Added Razor components for loadable remote content
Diffstat (limited to 'Pages/Component/LoadedState.razor')
| -rw-r--r-- | Pages/Component/LoadedState.razor | 23 |
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; +} |
