@implements IDisposable @typeparam T @if(Parent.ComponentState == ComponentState.Loading) { @ChildContent } @code { [Parameter] public RenderFragment? ChildContent { get; set; } [CascadingParameter] public LoadableContent 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; }