@if (IsActive)
{
    <div class="tab-pane fade show active">
        @ChildContent
    </div>
}


@code {
    [CascadingParameter]
    public required TabControl Parent { get; init; }

    [Parameter]
    public RenderFragment? ChildContent { get; set; }

    [Parameter]
    [EditorRequired]
    public required string Name { get; set; }

    private bool IsActive => Parent.ActiveTab == Name;

    protected override void OnInitialized()
    {
        if (Parent is null)
        {
            throw new Exception("TabContent must be contained in a TabControl.");
        }

        base.OnInitialized();
    }
}
