oqtane.framework/Oqtane.Client/Modules/Controls/Section.razor

58 lines
1.8 KiB
Plaintext

@namespace Oqtane.Modules.Controls
@inherits LocalizableComponent
@if (IsVisible)
{
<div class="d-flex mt-2">
<div>
<a data-bs-toggle="collapse" class="app-link-unstyled" href="#@Name" aria-expanded="@_expanded" aria-controls="@Name" @onclick:preventDefault="true">
<h5>@_heading</h5>
</a>
</div>
<div class="ms-auto">
<a data-bs-toggle="collapse" class="app-link-unstyled float-right" href="#@Name" aria-expanded="@_expanded" aria-controls="@Name" @onclick:preventDefault="true">
<i class="oi oi-chevron-bottom"></i>&nbsp;
</a>
</div>
</div>
<div class="d-flex">
<hr class="app-rule" />
</div>
<div class="collapse @_show" id="@Name">
@if (ChildContent != null)
{
@ChildContent
}
</div>
}
@code {
private string _heading = string.Empty;
private string _expanded = string.Empty;
private string _show = string.Empty;
[Parameter]
public RenderFragment ChildContent { get; set; } = null;
[Parameter]
public string Name { get; set; } // required - the name of the section
[Parameter]
public string Heading { get; set; } // optional - will default to Name if not provided
[Parameter]
public string Expanded { get; set; } // optional - will default to false if not provided
[Parameter]
public bool IsVisible { get; set; } = true;
protected override void OnParametersSet()
{
base.OnParametersSet(); // must be included to call method in LocalizableComponent
_heading = !string.IsNullOrEmpty(Heading) ? Localize(nameof(Heading), Heading) : Localize(nameof(Name), Name);
_expanded = (!string.IsNullOrEmpty(Expanded)) ? Expanded.ToLower() : "false";
if (_expanded == "true") { _show = "show"; }
}
}