@inherits DComponentBase
@* daisyUI Swap: https://daisyui.com/components/swap/ . A label around daisyUI's hidden checkbox: clicking anywhere on
it toggles the checkbox, whose state is bound to Active (@bind-Active); On shows while checked, Off otherwise. *@
@code {
[Parameter] public RenderFragment On { get; set; }
[Parameter] public RenderFragment Off { get; set; }
[Parameter] public bool Active { get; set; }
[Parameter] public EventCallback ActiveChanged { get; set; }
[Parameter] public DSwapEffect Effect { get; set; }
[Parameter] public bool Disabled { get; set; }
/// Accessible name of the checkbox (aria-label), for swaps that show only icons.
[Parameter] public string LabelText { get; set; }
string CssClass => Cx("swap", EffectClass, Disabled ? "cursor-not-allowed opacity-50" : null, Class);
string EffectClass => Effect switch
{
DSwapEffect.Rotate => "swap-rotate",
DSwapEffect.Flip => "swap-flip",
_ => null
};
async Task OnChange(ChangeEventArgs e)
{
Active = e.Value is true;
await ActiveChanged.InvokeAsync(Active);
}
}